aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/store-api.cc
diff options
context:
space:
mode:
authoreldritch horrors <pennae@lix.systems>2024-03-04 08:16:28 +0100
committereldritch horrors <pennae@lix.systems>2024-03-04 08:16:28 +0100
commit298db5d1cdbbd3198b8b08ae63fcea7c701cac22 (patch)
treeb98b8f25fecb0081bdbde6a68c12ca7cac234e27 /src/libstore/store-api.cc
parent68f148ed45da0a8b827a96611e7825d5d2396454 (diff)
Merge pull request #9804 from edolstra/missing-nar-crash
Fix crash when NAR is missing from binary cache (cherry picked from commit 3b20cca9625a1701a10a883735e7315185629563) Change-Id: I50ff18f4a6de69c323473b4a8e3e098d1f365145
Diffstat (limited to 'src/libstore/store-api.cc')
-rw-r--r--src/libstore/store-api.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc
index 958691256..b787ac2f2 100644
--- a/src/libstore/store-api.cc
+++ b/src/libstore/store-api.cc
@@ -1069,6 +1069,11 @@ void copyStorePath(
RepairFlag repair,
CheckSigsFlag checkSigs)
{
+ /* Bail out early (before starting a download from srcStore) if
+ dstStore already has this path. */
+ if (!repair && dstStore.isValidPath(storePath))
+ return;
+
auto srcUri = srcStore.getUri();
auto dstUri = dstStore.getUri();
auto storePathS = srcStore.printStorePath(storePath);