copyStorePath(): Fill in missing narHash regardless of checkSigs
I don't remember what the reasoning was here, but security is provided by the signatures, not by whether the hash is provided by the other store.
This commit is contained in:
parent
3cf1705583
commit
6a888ec29a
|
@ -593,23 +593,19 @@ void copyStorePath(ref<Store> srcStore, ref<Store> dstStore,
|
|||
MyStringSink sink(progress);
|
||||
srcStore->narFromPath({storePath}, sink);
|
||||
|
||||
if (!info->narHash && !checkSigs) {
|
||||
if (!info->narHash) {
|
||||
auto info2 = make_ref<ValidPathInfo>(*info);
|
||||
info2->narHash = hashString(htSHA256, *sink.s);
|
||||
if (!info->narSize) info2->narSize = sink.s->size();
|
||||
info = info2;
|
||||
}
|
||||
|
||||
assert(info->narHash);
|
||||
|
||||
if (info->ultimate) {
|
||||
auto info2 = make_ref<ValidPathInfo>(*info);
|
||||
info2->ultimate = false;
|
||||
info = info2;
|
||||
}
|
||||
|
||||
assert(info->narHash);
|
||||
|
||||
dstStore->addToStore(*info, sink.s, repair, checkSigs);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue