Thomas Rast <trast@xxxxxxxxxxx> wrote: > Closing stderr is a bad idea anyway: there is a very real chance that > we print fatal error messages to some other file that just happens to > be opened on the now-free FD 2. So let's not do that. 100% agreed. FD 0, 1, and 2 should not be closed, way too much potential for triggering rare bugs and interop issues like these to be worth it. > --- a/perl/Git.pm > +++ b/perl/Git.pm > @@ -1495,6 +1495,9 @@ sub _command_common_pipe { > if ($opts{STDERR}) { > open (STDERR, '>&', $opts{STDERR}) > or die "dup failed: $!"; > + } elsif (defined $opts{STDERR}) { > + open (STDERR, '>', '/dev/null') > + or die "opening /dev/null failed: $!"; > } > _cmd_exec($self, $cmd, @args); > } Perhaps we should also do the following: --- a/perl/Git.pm +++ b/perl/Git.pm @@ -1489,9 +1489,6 @@ sub _command_common_pipe { if (not defined $pid) { throw Error::Simple("open failed: $!"); } elsif ($pid == 0) { - if (defined $opts{STDERR}) { - close STDERR; - } if ($opts{STDERR}) { open (STDERR, '>&', $opts{STDERR}) or die "dup failed: $!"; -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html