# Caution: you may need to use GNU awk.
AWK=${AWK:-awk}
-INPUTFILE="tmp$$a"
-DUPSFILE="tmp$$b"
-NONDUPSFILE="tmp$$c"
-rm -f $INPUTFILE $DUPSFILE $NONDUPSFILE
+TMP="/tmp/$$"
+trap "rm -rf $TMP" 0 1 2 3 15
-trap "rm -f $INPUTFILE $DUPSFILE $NONDUPSFILE" 0 1 2 3 15
+# Create a temporary directory with the proper permissions so no one can
+# intercept our temporary files and cause a security breach.
+OMASK="`umask`"
+umask 077
+if ! mkdir $TMP
+then echo "Can't create temporary directory $TMP." 1>&2
+ exit 1
+fi
+umask "$OMASK"
+unset OMASK
+
+INPUTFILE="$TMP/a"
+DUPSFILE="$TMP/b"
+NONDUPSFILE="$TMP/c"
# Read input
cat "$@" >$INPUTFILE