[Libvir] [patch 7/9] Fix our FD_CLOEXEC usage
Jim Meyering
jim at meyering.net
Fri Feb 16 18:35:31 UTC 2007
Mark McLoughlin <markmc at redhat.com> wrote:
> Implement a sane policy around our use of FD_CLOEXEC:
>
> 1) Every descriptor which shouldn't be passed to
> child processes should have the flag set
>
> 2) Let exec() do the descriptor closing, rather
> than us doing it ourselves
...
> - for (i = 0; i < open_max; i++) {
> - if (i != STDOUT_FILENO &&
> - i != STDERR_FILENO &&
> - i != STDIN_FILENO)
> - close(i);
> - else if (errors == NO_ERRORS)
> - dup2(null, i);
> + if (errors == NO_ERRORS) {
> + dup2(null, STDIN_FILENO);
> + dup2(null, STDOUT_FILENO);
> + dup2(null, STDERR_FILENO);
> + close(null);
> }
True, dup2 failure wasn't checked before either,
but it *can* fail. Best to diagnose it, just in case.
More information about the libvir-list
mailing list