aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2020-08-03 18:33:39 +0200
committerEelco Dolstra <edolstra@gmail.com>2020-08-03 18:34:52 +0200
commit24e07c428f21f28df2a41a7a9851d5867f34753a (patch)
tree00029d8f48f097b764252f75ac6651a75cb121c3
parenta2842588ec86a0f488a385d453eda86e1f52f05a (diff)
Delete compressed NARs
Fixes #3891.
-rw-r--r--src/libstore/binary-cache-store.cc2
-rw-r--r--src/libutil/util.cc1
2 files changed, 3 insertions, 0 deletions
diff --git a/src/libstore/binary-cache-store.cc b/src/libstore/binary-cache-store.cc
index 30150eeba..3d3195e03 100644
--- a/src/libstore/binary-cache-store.cc
+++ b/src/libstore/binary-cache-store.cc
@@ -153,6 +153,8 @@ void BinaryCacheStore::addToStore(const ValidPathInfo & info, Source & narSource
auto [fdTemp, fnTemp] = createTempFile();
+ AutoDelete autoDelete(fnTemp);
+
auto now1 = std::chrono::steady_clock::now();
/* Read the NAR simultaneously into a CompressionSink+FileSink (to
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 97d278581..8bc60ec2d 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -494,6 +494,7 @@ std::pair<AutoCloseFD, Path> createTempFile(const Path & prefix)
{
Path tmpl(getEnv("TMPDIR").value_or("/tmp") + "/" + prefix + ".XXXXXX");
// Strictly speaking, this is UB, but who cares...
+ // FIXME: use O_TMPFILE.
AutoCloseFD fd(mkstemp((char *) tmpl.c_str()));
if (!fd)
throw SysError("creating temporary file '%s'", tmpl);