On Fri, Jan 10, 2025 at 04:09:42PM +0100, Ingo Schwarze wrote:
<SNIP>
> That "do something better" did indeed happen later, specifically,
> three years later. In rev. 1.30 (June 26, 2014), i finally got
> rid of the STDERR trashing at the higher level and instead
> added the ">& /dev/null" to check_csh(). Not adding anything
> to the check_sh() and check_ksh() functions was intentional
> because STDERR trouble had only been observed with csh + tset,
> not with ksh.
>
> Maybe we could also investigate whether things have changed in that
> decade so that we can now make check_csh() more strict, too,
> and change ">& /dev/null" to just "> /dev/null" there.
> But that's a separate question and not for this patch.
>
> Any OKs for the following patch?
This seems OK to me.
Starting a background process that outputs to STDOUT seems like a
strange choice, but since we were planning to throw away any extra
output anyway, why not do it earlier and be more robust.
> Ingo
>
>
> Index: security
> ===================================================================
> RCS file: /cvs/src/libexec/security/security,v
> diff -u -p -r1.45 security
> --- security 10 Jan 2025 10:16:48 -0000 1.45
> +++ security 10 Jan 2025 13:53:12 -0000
> @@ -256,7 +256,8 @@ sub check_sh {
> $umaskset ||= check_umask($filename);
>
> nag !(open my $fh, '-|', qw(/bin/sh -c),
> - ". $filename; echo ENV=\$ENV; echo PATH=\$PATH"),
> + ". $filename > /dev/null; " .
> + "echo ENV=\$ENV; echo PATH=\$PATH"),
> "cannot spawn /bin/sh: $!"
> and next;
> my @output = <$fh>;
> @@ -290,7 +291,7 @@ sub check_ksh {
> check_umask($filename);
>
> nag !(open my $fh, '-|', qw(/bin/ksh -c),
> - ". $filename; echo PATH=\$PATH"),
> + ". $filename > /dev/null; echo PATH=\$PATH"),
> "cannot spawn /bin/ksh: $!"
> and next;
> my @output = <$fh>;
>
--