This commit is contained in:
Eelco Dolstra 2023-03-20 18:06:08 +01:00
parent 16db8dc96f
commit 515662ad70
4 changed files with 7 additions and 8 deletions

View file

@ -35,7 +35,10 @@ HookInstance::HookInstance()
/* Fork the hook. */ /* Fork the hook. */
pid = startProcess([&]() { pid = startProcess([&]() {
commonChildInit(fromHook.writeSide.get()); if (dup2(fromHook.writeSide.get(), STDERR_FILENO) == -1)
throw SysError("cannot pipe standard error into log file");
commonChildInit();
if (chdir("/") == -1) throw SysError("changing into /"); if (chdir("/") == -1) throw SysError("changing into /");

View file

@ -1656,7 +1656,7 @@ void LocalDerivationGoal::runChild()
try { /* child */ try { /* child */
commonChildInit(-1); commonChildInit();
try { try {
setupSeccomp(); setupSeccomp();

View file

@ -1968,7 +1968,7 @@ std::string showBytes(uint64_t bytes)
// FIXME: move to libstore/build // FIXME: move to libstore/build
void commonChildInit(int stderrFd) void commonChildInit()
{ {
logger = makeSimpleLogger(); logger = makeSimpleLogger();
@ -1982,10 +1982,6 @@ void commonChildInit(int stderrFd)
if (setsid() == -1) if (setsid() == -1)
throw SysError("creating a new session"); throw SysError("creating a new session");
/* Dup the write side of the logger pipe into stderr. */
if (stderrFd != -1 && dup2(stderrFd, STDERR_FILENO) == -1)
throw SysError("cannot pipe standard error into log file");
/* Dup stderr to stdout. */ /* Dup stderr to stdout. */
if (dup2(STDERR_FILENO, STDOUT_FILENO) == -1) if (dup2(STDERR_FILENO, STDOUT_FILENO) == -1)
throw SysError("cannot dup stderr into stdout"); throw SysError("cannot dup stderr into stdout");

View file

@ -704,7 +704,7 @@ typedef std::function<bool(const Path & path)> PathFilter;
extern PathFilter defaultPathFilter; extern PathFilter defaultPathFilter;
/* Common initialisation performed in child processes. */ /* Common initialisation performed in child processes. */
void commonChildInit(int stderrFd); void commonChildInit();
/* Create a Unix domain socket. */ /* Create a Unix domain socket. */
AutoCloseFD createUnixDomainSocket(); AutoCloseFD createUnixDomainSocket();