]> git.saurik.com Git - apt.git/commitdiff
add verify for the .diff/Index download and add FIXME for pkgAcqIndexDiffs/pkgAcqMerg...
authorMichael Vogt <mvo@ubuntu.com>
Wed, 1 Oct 2014 09:20:08 +0000 (11:20 +0200)
committerMichael Vogt <mvo@ubuntu.com>
Wed, 1 Oct 2014 09:20:08 +0000 (11:20 +0200)
apt-pkg/acquire-item.cc

index 5beb7e190141033bbda8693a00ae80a6d4f9508c..4a684f40cf03642433b98d5973770b5a87b12034 100644 (file)
@@ -527,6 +527,21 @@ void pkgAcqDiffIndex::Done(string Message,unsigned long long Size,HashStringList
 
    Item::Done(Message, Size, Hashes, Cnf);
 
+   // verify the index target
+   if(Target && Target->MetaKey != "" && MetaIndexParser && Hashes.size() > 0)
+   {
+      std::string IndexMetaKey  = Target->MetaKey + ".diff/Index";
+      indexRecords::checkSum *Record = MetaIndexParser->Lookup(IndexMetaKey);
+      if(Record && Record->Hashes.usable() && Hashes != Record->Hashes)
+      {
+         RenameOnError(HashSumMismatch);
+         printHashSumComparision(RealURI, Record->Hashes, Hashes);
+         Failed(Message, Cnf);
+         return;
+      }
+
+   }
+
    string FinalFile;
    FinalFile = _config->FindDir("Dir::State::lists")+URItoFileName(RealURI);
 
@@ -715,6 +730,8 @@ void pkgAcqIndexDiffs::Done(string Message,unsigned long long Size, HashStringLi
 
    Item::Done(Message, Size, Hashes, Cnf);
 
+   // FIXME: verify this download too before feeding it to rred
+
    string FinalFile;
    FinalFile = _config->FindDir("Dir::State::lists")+"partial/"+URItoFileName(RealURI);
 
@@ -836,6 +853,8 @@ void pkgAcqIndexMergeDiffs::Done(string Message,unsigned long long Size,HashStri
 
    Item::Done(Message,Size,Hashes,Cnf);
 
+   // FIXME: verify download before feeding it to rred
+
    string const FinalFile = _config->FindDir("Dir::State::lists") + "partial/" + URItoFileName(RealURI);
 
    if (State == StateFetchDiff)