X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/b84fa7158d04f8b2136f01dda106ba0272027887..36b8ebbb4a5db4909c3cf739d8ea472f70703662:/apt-inst/contrib/arfile.cc diff --git a/apt-inst/contrib/arfile.cc b/apt-inst/contrib/arfile.cc index a1fb97b48..8018f4d30 100644 --- a/apt-inst/contrib/arfile.cc +++ b/apt-inst/contrib/arfile.cc @@ -87,7 +87,7 @@ bool ARArchive::LoadHeaders() StrToNum(Head.Size,Memb->Size,sizeof(Head.Size)) == false) { delete Memb; - return _error->Error(_("Invalid archive member header")); + return _error->Error(_("Invalid archive member header %s"), Head.Name); } // Check for an extra long name string @@ -96,7 +96,7 @@ bool ARArchive::LoadHeaders() char S[300]; unsigned long Len; if (StrToNum(Head.Name+3,Len,sizeof(Head.Size)-3) == false || - Len >= strlen(S)) + Len >= sizeof(S)) { delete Memb; return _error->Error(_("Invalid archive member header")); @@ -111,7 +111,7 @@ bool ARArchive::LoadHeaders() else { unsigned int I = sizeof(Head.Name) - 1; - for (; Head.Name[I] == ' '; I--); + for (; Head.Name[I] == ' ' || Head.Name[I] == '/'; I--); Memb->Name = string(Head.Name,I+1); }