1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-14 22:42:41 +01:00

download: improve error for hash mismatch ("store mismatch")

Fixes #1905

(cherry picked from commit 74da813912)
This commit is contained in:
Will Dietz 2018-03-22 09:56:54 -05:00 committed by Eelco Dolstra
parent 300594f053
commit 2a2b1ac083
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE

View file

@ -725,8 +725,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);
}