X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/3826564e07eaffb05eca5af34a0e76f6f161b89c..22dcc318d978813b3c4d1ae1a1f41933d0e1d69b:/apt-pkg/contrib/fileutl.cc diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 7c9f5c0dd..0ce0c9b9d 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -306,7 +306,7 @@ bool WaitFd(int Fd,bool write,unsigned long timeout) /* This is used if you want to cleanse the environment for the forked child, it fixes up the important signals and nukes all of the fds, otherwise acts like normal fork. */ -pid_t ExecFork() +pid_t ExecFork(int dontCloseThisFd) { // Fork off the process pid_t Process = fork(); @@ -329,7 +329,8 @@ pid_t ExecFork() // Close all of our FDs - just in case for (int K = 3; K != 40; K++) - fcntl(K,F_SETFD,FD_CLOEXEC); + if(K != dontCloseThisFd) + fcntl(K,F_SETFD,FD_CLOEXEC); } return Process; @@ -355,7 +356,7 @@ bool ExecWait(pid_t Pid,const char *Name,bool Reap) if (Reap == true) return false; - return _error->Error(_("Waited, for %s but it wasn't there"),Name); + return _error->Error(_("Waited for %s but it wasn't there"),Name); }