Blame aview-1.3.0-tmpvuln.diff

Adrian Schröter f12995
--- aview-1.3.0/asciiview
Adrian Schröter f12995
+++ aview-1.3.0/asciiview
Adrian Schröter f12995
@@ -1,13 +1,19 @@
Adrian Schröter f12995
 #!/bin/bash
Adrian Schröter f12995
 # asciiview - an ascii art image browser script. Front end for aview/aaflip
Adrian Schröter f12995
+
Adrian Schröter f12995
 clear()
Adrian Schröter f12995
 {
Adrian Schröter f12995
   kill $! 2>/dev/null
Adrian Schröter f12995
-  rm -f /tmp/aview$$.pgm 2>/dev/null
Adrian Schröter f12995
+  if [ -n $ATMPDIR -a -d $ATMPDIR ]; then
Adrian Schröter f12995
+	rm -f $ATMPDIR/aview$$.pgm 2>/dev/null && rmdir $ATMPDIR 2>/dev/null
Adrian Schröter f12995
+  else
Adrian Schröter f12995
+	echo "Cannot remove temporary directory $ATMPDIR"
Adrian Schröter f12995
+	exit 1
Adrian Schröter f12995
+  fi
Adrian Schröter f12995
 }
Adrian Schröter f12995
 myconvert()
Adrian Schröter f12995
 {
Adrian Schröter f12995
-   if anytopnm $1 >/tmp/aview$$.pgm 2>/dev/null ; then
Adrian Schröter f12995
+   if anytopnm $1 >$ATMPDIR/aview$$.pgm 2>/dev/null ; then
Adrian Schröter f12995
      exit
Adrian Schröter f12995
    elif convert -colorspace gray $1 pgm:- 2>/dev/null ; then
Adrian Schröter f12995
      exit
Adrian Schröter f12995
@@ -50,9 +56,10 @@
Adrian Schröter f12995
       ;;
Adrian Schröter f12995
   esac
Adrian Schröter f12995
 done
Adrian Schröter f12995
+ATMPDIR=`mktemp -d` || exit 1 
Adrian Schröter f12995
 trap clear 0
Adrian Schröter f12995
-mkfifo /tmp/aview$$.pgm
Adrian Schröter f12995
-outfile=/tmp/aview$$.pgm
Adrian Schröter f12995
+mkfifo $ATMPDIR/aview$$.pgm
Adrian Schröter f12995
+outfile=$ATMPDIR/aview$$.pgm
Adrian Schröter f12995
 for name in $filenames ; do
Adrian Schröter f12995
 if test -r $name ; then
Adrian Schröter f12995
 case $name in
Adrian Schröter f12995
@@ -61,10 +68,10 @@
Adrian Schröter f12995
   aaflip $options $name
Adrian Schröter f12995
   ;;
Adrian Schröter f12995
 *)
Adrian Schröter f12995
-  myconvert $name >/tmp/aview$$.pgm &
Adrian Schröter f12995
+  myconvert $name >$ATMPDIR/aview$$.pgm &
Adrian Schröter f12995
   pid=$!
Adrian Schröter f12995
   PATH="$PATH:."
Adrian Schröter f12995
-  aview  $options /tmp/aview$$.pgm
Adrian Schröter f12995
+  aview  $options $ATMPDIR/aview$$.pgm
Adrian Schröter f12995
   kill $pid 2>/dev/null
Adrian Schröter f12995
 esac
Adrian Schröter f12995
 else