X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/24a67e0954716697e87f68384eb415e0e0a5796c..3465138575e1fd0d5892d9b6be1ae232eb873460:/apt-inst/contrib/arfile.cc diff --git a/apt-inst/contrib/arfile.cc b/apt-inst/contrib/arfile.cc index d7ee528ba..905110781 100644 --- a/apt-inst/contrib/arfile.cc +++ b/apt-inst/contrib/arfile.cc @@ -6,7 +6,7 @@ AR File - Handle an 'AR' archive AR Archives have plain text headers at the start of each file - section. The headers are aligned on a 2 byte boundry. + section. The headers are aligned on a 2 byte boundary. Information about the structure of AR files can be found in ar(5) on a BSD system, or in the binutils source. @@ -21,7 +21,9 @@ #include #include -#include +#include +#include +#include #include /*}}}*/ @@ -64,7 +66,7 @@ ARArchive::~ARArchive() byte plain text header then the file data, another header, data, etc */ bool ARArchive::LoadHeaders() { - signed long Left = File.Size(); + off_t Left = File.Size(); // Check the magic byte char Magic[8]; @@ -123,7 +125,7 @@ bool ARArchive::LoadHeaders() } // Account for the AR header alignment - unsigned Skip = Memb->Size % 2; + off_t Skip = Memb->Size % 2; // Add it to the list Memb->Next = List; @@ -131,7 +133,7 @@ bool ARArchive::LoadHeaders() Memb->Start = File.Tell(); if (File.Skip(Memb->Size + Skip) == false) return false; - if (Left < (signed)(Memb->Size + Skip)) + if (Left < (off_t)(Memb->Size + Skip)) return _error->Error(_("Archive is too short")); Left -= Memb->Size + Skip; }