]> git.saurik.com Git - apt.git/commitdiff
* don't forget the final md5sum checking!
authorMichael Vogt <michael.vogt@ubuntu.com>
Fri, 9 Sep 2005 00:06:10 +0000 (00:06 +0000)
committerMichael Vogt <michael.vogt@ubuntu.com>
Fri, 9 Sep 2005 00:06:10 +0000 (00:06 +0000)
apt-pkg/acquire-item.cc

index c4c0b73a98e2d468d4e406eaa0bb736cad770289..8a9a4c5bb34520d7b1c78911c0dc66d0a92fe760 100644 (file)
@@ -375,9 +375,26 @@ void pkgAcqIndexDiffs::Finish(bool allDone)
    // we restore the original name, this is required, otherwise
    // the file will be cleaned
    if(allDone) {
-      // this is for the "real" finish
       DestFile = _config->FindDir("Dir::State::lists");
       DestFile += URItoFileName(RealURI);
+
+      // do the final md5sum checking
+      MD5Summation sum;
+      FileFd Fd(DestFile, FileFd::ReadOnly);
+      sum.AddFD(Fd.Fd(), Fd.Size());
+      Fd.Close();
+      string MD5 = (string)sum.Result();
+
+      if (!ExpectedMD5.empty() && MD5 != ExpectedMD5)
+      {
+        Status = StatAuthError;
+        ErrorText = _("MD5Sum mismatch");
+        Rename(DestFile,DestFile + ".FAILED");
+        Dequeue();
+        return;
+      }
+
+      // this is for the "real" finish
       Complete = true;
       Status = StatDone;
       Dequeue();