From 8a3a96dd5b009d337c0cd12b58a41c943d0aa516 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 17 Feb 2005 13:55:18 +0000 Subject: [PATCH] * Switch to the calling user context for some more operations in a setuid installation. --- src/libstore/gc.cc | 7 +++++-- src/nix-store/main.cc | 1 + 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;