aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libstore/gc.cc7
-rw-r--r--src/nix-store/main.cc1
2 files changed, 6 insertions, 2 deletions
diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc
index e0de6a968..e1075d025 100644
--- a/src/libstore/gc.cc
+++ b/src/libstore/gc.cc
@@ -87,8 +87,11 @@ Path addPermRoot(const Path & _storePath, const Path & _gcRoot,
string hash = printHash32(hashString(htSHA1, gcRoot));
Path realRoot = canonPath((format("%1%/%2%/auto/%3%")
% nixStateDir % gcRootsDir % hash).str());
-
- createSymlink(gcRoot, storePath, true);
+
+ {
+ SwitchToOriginalUser sw;
+ createSymlink(gcRoot, storePath, true);
+ }
createSymlink(realRoot, gcRoot, false);
}
diff --git a/src/nix-store/main.cc b/src/nix-store/main.cc
index a93956ab7..4227f0cca 100644
--- a/src/nix-store/main.cc
+++ b/src/nix-store/main.cc
@@ -25,6 +25,7 @@ static bool indirectRoot = false;
static Path fixPath(Path path)
{
+ SwitchToOriginalUser sw;
path = absPath(path);
while (!isInStore(path)) {
if (!isLink(path)) break;