about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libstore/build.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 5a75403cfc98..cccf0c7c687b 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -2190,11 +2190,13 @@ void DerivationGoal::startBuilder()
 
     std::string slaveName(ptsname(builderOut.readSide.get()));
 
-    if (chmod(slaveName.c_str(), 0600))
-        throw SysError("changing mode of pseudoterminal slave");
+    if (buildUser) {
+        if (chmod(slaveName.c_str(), 0600))
+            throw SysError("changing mode of pseudoterminal slave");
 
-    if (buildUser && chown(slaveName.c_str(), buildUser->getUID(), 0))
-        throw SysError("changing owner of pseudoterminal slave");
+        if (chown(slaveName.c_str(), buildUser->getUID(), 0))
+            throw SysError("changing owner of pseudoterminal slave");
+    }
 
     #if 0
     // Mount the pt in the sandbox so that the "tty" command works.