libstore: simplify makeTemp{,Sibling}Path callers

There is now no risk of race conditions on a system with a functioning
entropy source, and the bespoke prefixes are either redundant to the
default or unnecessary.

Change-Id: I6a6a69648a3b8060333e97269ea8b72499614559
This commit is contained in:
Emily
2025-08-18 09:27:31 +00:00
committed by emilazy
parent 03beb9a1d3
commit 24ccf500d1
3 changed files with 3 additions and 9 deletions
+1 -5
View File
@@ -761,11 +761,7 @@ void replaceValidPath(const Path & storePath, const Path & tmpPath)
we're repairing (say) Glibc, we end up with a broken system. */
Path oldPath;
if (pathExists(storePath)) {
do {
oldPath = makeTempSiblingPath(storePath);
// store paths are often directories so we can't just unlink() it
// let's make sure the path doesn't exist before we try to use it
} while (pathExists(oldPath));
oldPath = makeTempSiblingPath(storePath);
movePath(storePath, oldPath);
}
+1 -2
View File
@@ -42,7 +42,6 @@ static void makeSymlink(const Path & link, const Path & target)
/* Create the new symlink. */
Path tempLink = makeTempPath(link);
unlink(tempLink.c_str()); // just in case; ignore errors
createSymlink(target, tempLink);
/* Atomically replace the old one. */
@@ -97,7 +96,7 @@ void LocalStore::createTempRootsFile()
/* Create the temporary roots file for this process. */
while (true) {
auto tmp = makeTempPath(fnTempRoots, ".tmp");
auto tmp = makeTempPath(fnTempRoots);
AutoCloseFD fd{open(tmp.c_str(), O_RDWR | O_CREAT | O_EXCL | O_CLOEXEC, 0600)};
if (!fd && errno != EEXIST) {
throw SysError("opening lock file '%1%'", tmp);
+1 -2
View File
@@ -218,8 +218,7 @@ void LocalStore::optimisePath_(Activity * act, OptimiseStats & stats,
its timestamp back to 0. */
MakeReadOnly makeReadOnly(mustToggle ? dirOfPath : "");
Path tempLink = makeTempPath(config().realStoreDir, "/.tmp-link");
unlink(tempLink.c_str()); // just in case; ignore errors
Path tempLink = makeTempPath(config().realStoreDir + "/");
if (link(linkPath.c_str(), tempLink.c_str()) == -1) {
if (errno == EMLINK) {