]> granicus.if.org Git - postgresql/commitdiff
Create temporary files securely.
authorBruce Momjian <bruce@momjian.us>
Wed, 3 Nov 2004 22:46:15 +0000 (22:46 +0000)
committerBruce Momjian <bruce@momjian.us>
Wed, 3 Nov 2004 22:46:15 +0000 (22:46 +0000)
contrib/findoidjoins/make_oidjoins_check

index 5106eb1bfd940c1aefdb59852745616158ba89ad..4fc9e61875e080d915bfd80d18b044de58d3f132 100755 (executable)
 # 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