psub: Use explicit command

This would have prevented #6323.

While we don't want to pepper `command` everywhere, `psub` is kind of
a core thing, so we should try to proof it against common problems.
This commit is contained in:
Fabian Homborg 2019-11-14 17:13:39 +01:00
parent e18fd3cddb
commit 7527fc265b

View file

@ -28,18 +28,18 @@ function psub --description "Read from stdin into a file and output the filename
set dirname (mktemp -d $tmpdir/.psub.XXXXXXXXXX)
or return
set filename $dirname/psub.fifo"$_flag_suffix"
mkfifo $filename
command mkfifo $filename
# Note that if we were to do the obvious `cat >$filename &`, we would deadlock
# because $filename may be opened before the fork. Use tee to ensure it is opened
# after the fork.
tee $filename >/dev/null &
command tee $filename >/dev/null &
else if test -z "$_flag_suffix"
set filename (mktemp $tmpdir/.psub.XXXXXXXXXX)
cat >$filename
command cat >$filename
else
set dirname (mktemp -d $tmpdir/.psub.XXXXXXXXXX)
set filename "$dirname/psub$_flag_suffix"
cat >$filename
command cat >$filename
end
# Write filename to stdout