harden psub again an undef TMPDIR

This commit is contained in:
Kurtis Rader 2017-07-04 16:35:32 -07:00
parent bdee54bd10
commit 4853ec0281

View file

@ -51,25 +51,24 @@ function psub --description "Read from stdin into a file and output the filename
return 1
end
set -l TMPDIR $TMPDIR
if test -z "$TMPDIR[1]"
set TMPDIR /tmp
end
set -l tmpdir /tmp
set -q TMPDIR
and set tmpdir $TMPDIR
if test use_fifo = 1
# Write output to pipe. This needs to be done in the background so
# that the command substitution exits without needing to wait for
# all the commands to exit
set dirname (mktemp -d "$TMPDIR[1]"/.psub.XXXXXXXXXX)
set dirname (mktemp -d $tmpdir/.psub.XXXXXXXXXX)
or return
set filename $dirname/psub.fifo"$suffix"
mkfifo $filename
cat >$filename &
else if test -z $suffix
set filename (mktemp "$TMPDIR[1]"/.psub.XXXXXXXXXX)
set filename (mktemp $tmpdir/.psub.XXXXXXXXXX)
cat >$filename
else
set dirname (mktemp -d "$TMPDIR[1]"/.psub.XXXXXXXXXX)
set dirname (mktemp -d $tmpdir/.psub.XXXXXXXXXX)
set filename $dirname/psub"$suffix"
cat >$filename
end