Re: [PATCH] perl: redirect stderr to /dev/null instead of closing
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Apr 4, 2013, 01:16 UTC
- Message-ID
- <20130404011653.GA28492@dcvr.yhbt.net>
- In-Reply-To
- <f3d238a4c6cfbc6d68f2c4fa285aefa93acf4b7d.1365027616.git.trast@inf.ethz.ch>
Thomas Rast <trast@inf.ethz.ch> 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.
Show 12 quoted lines
> --- 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: $!";