summaryrefslogtreecommitdiff
path: root/cmdline/apt-helper.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cmdline/apt-helper.cc')
-rw-r--r--cmdline/apt-helper.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/cmdline/apt-helper.cc b/cmdline/apt-helper.cc
index c1c8b2178..e3652d1ee 100644
--- a/cmdline/apt-helper.cc
+++ b/cmdline/apt-helper.cc
@@ -44,6 +44,9 @@ bool DoDownloadFile(CommandLine &CmdL)
Fetcher.Setup(&Stat);
std::string download_uri = CmdL.FileList[1];
std::string targetfile = CmdL.FileList[2];
+ HashString hash;
+ if (CmdL.FileSize() > 3)
+ hash = HashString(CmdL.FileList[3]);
new pkgAcqFile(&Fetcher, download_uri, "", 0, "desc", "short-desc",
"dest-dir-ignored", targetfile);
Fetcher.Run();
@@ -52,6 +55,15 @@ bool DoDownloadFile(CommandLine &CmdL)
_error->Error(_("Download Failed"));
return false;
}
+ if(hash.empty() == false)
+ {
+ if(hash.VerifyFile(targetfile) == false)
+ {
+ _error->Error(_("HashSum Failed"));
+ Rename(targetfile, targetfile+".failed");
+ return false;
+ }
+ }
return true;
}