[sudo-workers] execve() failure & closefrom() in fork_cmnd()
Todd C. Miller
Todd.Miller at courtesan.com
Tue Nov 29 19:53:05 EST 2011
On Tue, 29 Nov 2011 17:47:46 +0100, Daniel Kopecek wrote:
> It seems that the usage of closefrom() in the fork_cmnd() function
> (http://www.sudo.ws/repos/sudo/file/ec0f2beaad36/src/exec.c#l140) should
> take into consideration that the execve() call might fail and ensure
> that the sv descriptor used for sending the cstat structure back to
> the parent process stays open. In the current state and with
> def_closefrom not set to some higher number than sv, the descriptor
> gets closed and sudo doesn't report an error.
Good catch. I've just committed a fix that uses dup2() + FD_CLOEXEC
to avoid closing sv in the closefrom() call.
More information about the sudo-workers