about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-09-08T12·48+0200
committerEelco Dolstra <edolstra@gmail.com>2017-09-08T12·48+0200
commit6a888ec29a6724f916f96508b3a94a86c643c18e (patch)
tree20a033d255cfa0bbe1cabe0987991c1e92091ade
parent3cf1705583ee64137cdebf8f4e50ccffdaf7c756 (diff)
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.
-rw-r--r--src/libstore/store-api.cc6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc
index 7a8a3f7dee04..fa6ade75002a 100644
--- a/src/libstore/store-api.cc
+++ b/src/libstore/store-api.cc
@@ -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);
 }