HomeFreeBSD

Fix some cases where file descriptors from redirections leak to programs.

Description

Fix some cases where file descriptors from redirections leak to programs.

  • Redirecting fds that were not open before kept two copies of the redirected file. sh -c '{ :; } 7>/dev/null; fstat -p $$; true' (both fd 7 and 10 remained open)
  • File descriptors used to restore things after redirection were not set close-on-exec, instead they were explicitly closed before executing a program normally and before executing a shell procedure. The latter must remain but the former is replaced by close-on-exec. sh -c 'exec 7</; { exec fstat -p $$; } 7>/dev/null; true' (fd 10 remained open)

The examples above are simpler than the testsuite because I do not want to
use fstat or procstat in the testsuite.

Details

Provenance
jillesAuthored on Nov 29 2009, 10:33 PM
Parents
rGfbd69dff689d: Correct typo.
Branches
Unknown
Tags
Unknown

Event Timeline