about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libstore/download.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libstore/download.cc b/src/libstore/download.cc
index 2954b221d80f..4d7f5690192d 100644
--- a/src/libstore/download.cc
+++ b/src/libstore/download.cc
@@ -726,8 +726,13 @@ Path Downloader::downloadCached(ref<Store> store, const string & url_, bool unpa
         storePath = unpackedStorePath;
     }
 
-    if (expectedStorePath != "" && storePath != expectedStorePath)
-        throw nix::Error("store path mismatch in file downloaded from '%s'", url);
+    if (expectedStorePath != "" && storePath != expectedStorePath) {
+        Hash gotHash = unpack
+            ? hashPath(expectedHash.type, store->toRealPath(storePath)).first
+            : hashFile(expectedHash.type, store->toRealPath(storePath));
+        throw nix::Error("hash mismatch in file downloaded from '%s': expected hash '%s', got '%s'",
+            url, expectedHash.to_string(), gotHash.to_string());
+    }
 
     return store->toRealPath(storePath);
 }