Do not use the PID as a way of generating a "random" filename.
authorPascal Stumpf <Pascal.Stumpf@cubes.de>
Sun, 12 Aug 2012 18:27:32 +0000 (20:27 +0200)
committerJon Trulson <jon@radscan.com>
Sun, 12 Aug 2012 20:20:57 +0000 (14:20 -0600)
This script did not even check for the file's existence prior to cat'ing
random stuff into it.  Ouch.

cde/admin/IntegTools/dbTools/udbToAny.ksh

index 4c26e8bf182868d5e582a31d27bdfad57f301884..655b627f6b8f23fec139543dd785644a5f4c15de 100755 (executable)
@@ -142,7 +142,7 @@ ConvertRoutine()
        ;;
     esac
 
-   cat > /tmp/awk$$ <<EOF
+   cat > $TMPFILE <<EOF
 #
 # The function name "PRTREC" is used by the parsing routines
 # to do the output. By providing a custom output function you
@@ -166,8 +166,8 @@ EOF
    # Create a single awk file for use with the "-f" parameter.
    # IBM's awk only allows one "-f"
    #
-    cat "$UDB_PARSE_LIB" >> /tmp/awk$$
-    [ -z "$CUSTOM_PRINT" ]  || cat "$CUSTOM_PRINT_LIB" >> /tmp/awk$$
+    cat "$UDB_PARSE_LIB" >> $TMPFILE
+    [ -z "$CUSTOM_PRINT" ]  || cat "$CUSTOM_PRINT_LIB" >> $TMPFILE
 
     $AWK -v mailTo="$Administrator" \
         -v action="$DoAction" \
@@ -176,7 +176,7 @@ EOF
         -v UseDefaultBlocks="$UseDefaultBlocks" \
         -v DeBugFile="$DEBUGFILE" \
         -v DeBug="$DEBUGLEVEL" \
-        -f /tmp/awk$$ $*
+        -f $TMPFILE $*
 
 
 #
@@ -185,7 +185,7 @@ EOF
 #       -f "$UDB_PARSE_LIB" \
 #
 
-     rm /tmp/awk$$
+     rm $TMPFILE
 }
 
 #
@@ -246,6 +246,7 @@ typeset UDB_PARSE_LIB="$DBTOOLSRC/udbParseLib.awk"
 typeset CUSTOM_PRINT_LIB=""
 typeset DEBUGFILE="/dev/tty"
 typeset DEBUGLEVEL=0
+typeset TMPFILE=`mktemp /tmp/awkXXXXXXXXXXXXXXXXXXXXX`
 
 if [ $# -gt 2 ]; then 
     while [ $# -gt 0 ]