]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire-item.cc
SmartConfigure and SmartUnPack have got smarter! The full descriptions of what they...
[apt.git] / apt-pkg / acquire-item.cc
index 6df915d8eeea893e4ee5df6464bf83fb6e2ed822..c3817f6ee08231591dea0e4212e1d0f8ff5e2535 100644 (file)
@@ -271,7 +271,7 @@ void pkgAcqSubIndex::Done(string Message,unsigned long Size,string Md5Hash, /*{{
 
    string FinalFile = _config->FindDir("Dir::State::lists")+URItoFileName(Desc.URI);
 
-   /* Downloaded invalid transindex => Error (LP: #346386) (Closes: #195301) */
+   /* Downloaded invalid transindex => Error (LP: #346386) (Closes: #627642) */
    indexRecords SubIndexParser;
    if (FileExists(DestFile) == true && !SubIndexParser.Load(DestFile)) {
       Status = StatError;
@@ -904,23 +904,26 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash,
       }
 
       /* Verify the index file for correctness (all indexes must
-       * have a Package field) (LP: #346386) (Closes: #195301) */
+       * have a Package field) (LP: #346386) (Closes: #627642) */
       {
         FileFd fd(DestFile, FileFd::ReadOnly);
         pkgTagSection sec;
         pkgTagFile tag(&fd);
 
-        if (_error->PendingError() || !tag.Step(sec)) {
-           Status = StatError;
-           _error->DumpErrors();
-           Rename(DestFile,DestFile + ".FAILED");
-           return;
-        } else if (!sec.Exists("Package")) {
-           Status = StatError;
-           ErrorText = ("Encountered a section with no Package: header");
-           Rename(DestFile,DestFile + ".FAILED");
-           return;
-        }
+         // Only test for correctness if the file is not empty (empty is ok)
+         if (fd.Size() > 0) {
+            if (_error->PendingError() || !tag.Step(sec)) {
+               Status = StatError;
+               _error->DumpErrors();
+               Rename(DestFile,DestFile + ".FAILED");
+               return;
+            } else if (!sec.Exists("Package")) {
+               Status = StatError;
+               ErrorText = ("Encountered a section with no Package: header");
+               Rename(DestFile,DestFile + ".FAILED");
+               return;
+            }
+         }
       }
        
       // Done, move it into position
@@ -1360,7 +1363,7 @@ void pkgAcqMetaIndex::AuthDone(string Message)                            /*{{{*/
 void pkgAcqMetaIndex::QueueIndexes(bool verify)                                /*{{{*/
 {
 #if 0
-   /* Reject invalid, existing Release files (LP: #346386) (Closes: #195301)
+   /* Reject invalid, existing Release files (LP: #346386) (Closes: #627642)
     * FIXME: Disabled; it breaks unsigned repositories without hashes */
    if (!verify && FileExists(DestFile) && !MetaIndexParser->Load(DestFile))
    {
@@ -1533,7 +1536,7 @@ void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
         RunScripts("APT::Update::Auth-Failure");
         return;
       } else if (LookupTag(Message,"Message").find("NODATA") != string::npos) {
-        /* Invalid signature file, reject (LP: #346386) (Closes: #195301) */
+        /* Invalid signature file, reject (LP: #346386) (Closes: #627642) */
         _error->Error(_("GPG error: %s: %s"),
                         Desc.Description.c_str(),
                         LookupTag(Message,"Message").c_str());