|
Message-ID: <20010525220552.A75706@messi.uku.fi> Date: Fri, 25 May 2001 22:05:53 +0300 From: Jarno Huuskonen <Jarno.Huuskonen@....fi> To: owl-users@...ts.openwall.com Subject: gawk (igawk) tempfiles Hi, igawk from gawk-3.0.6 uses /tmp/ig.s.$$ for tempfile. I made this (not tested) patch so igawk'll use mktemp: -------------------- --- gawk-3.0.6/awklib/eg/prog/igawk.sh Tue Aug 8 02:03:36 2000 +++ gawk-3.0.6-jh/awklib/eg/prog/igawk.sh Fri May 25 18:34:21 2001 @@ -4,13 +4,32 @@ # Arnold Robbins, arnold@....org, Public Domain # July 1993 +if [ ! -x /bin/mktemp ]; then + echo "$0 needs mktemp to create temporary files." + exit 1 +fi + +STEMPFILE=`/bin/mktemp /tmp/igawk.s.XXXXXX` +#STEMPFILE=`/bin/mktemp ${TMPDIR:-/tmp}/igawk.s.XXXXXX` +if [ $? -ne 0 ]; then + echo "$0: mktemp cannot create temporary file." + exit 1 +fi + +ETEMPFILE=`/bin/mktemp /tmp/igawk.e.XXXXXX` +#ETEMPFILE=`/bin/mktemp ${TMPDIR:-/tmp}/igawk.e.XXXXXX` +if [ $? -ne 0 ]; then + echo "$0: mktemp cannot create temporary file." + exit 1 +fi + if [ "$1" = debug ] then set -x shift else # cleanup on exit, hangup, interrupt, quit, termination - trap 'rm -f /tmp/ig.[se].$$' 0 1 2 3 15 + trap 'rm -f $STEMPFILE $ETEMPFILE' 0 1 2 3 15 fi while [ $# -ne 0 ] # loop over arguments @@ -27,26 +46,26 @@ -[vF]*) opts="$opts '$1'" ;; - -f) echo @include "$2" >> /tmp/ig.s.$$ + -f) echo @include "$2" >> $STEMPFILE shift;; -f*) f=`echo "$1" | sed 's/-f//'` - echo @include "$f" >> /tmp/ig.s.$$ ;; + echo @include "$f" >> $STEMPFILE ;; -?file=*) # -Wfile or --file f=`echo "$1" | sed 's/-.file=//'` - echo @include "$f" >> /tmp/ig.s.$$ ;; + echo @include "$f" >> $STEMPFILE ;; -?file) # get arg, $2 - echo @include "$2" >> /tmp/ig.s.$$ + echo @include "$2" >> $STEMPFILE shift;; -?source=*) # -Wsource or --source t=`echo "$1" | sed 's/-.source=//'` - echo "$t" >> /tmp/ig.s.$$ ;; + echo "$t" >> $STEMPFILE ;; -?source) # get arg, $2 - echo "$2" >> /tmp/ig.s.$$ + echo "$2" >> $STEMPFILE shift;; -?version) @@ -61,19 +80,19 @@ shift done -if [ ! -s /tmp/ig.s.$$ ] +if [ ! -s $STEMPFILE ] then if [ -z "$1" ] then echo igawk: no program! 1>&2 exit 1 else - echo "$1" > /tmp/ig.s.$$ + echo "$1" > $STEMPFILE shift fi fi -# at this point, /tmp/ig.s.$$ has the program +# at this point, $STEMPFILE has the program gawk -- ' # process @include directives function pathto(file, i, t, junk) @@ -123,7 +142,7 @@ } close(input[stackptr]) } -}' /tmp/ig.s.$$ > /tmp/ig.e.$$ -eval gawk -f /tmp/ig.e.$$ $opts -- "$@" +}' $STEMPFILE > $ETEMPFILE +eval gawk -f $ETEMPFILE $opts -- "$@" exit $? -------------------- Also some scripts from gzip (zdiff, znew) use similar tempfiles. ( At least Michal Zalewski has found the same problems a while ago: http://security-archive.merton.ox.ac.uk/linux-security-199803/0031.html ) -Jarno
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.