aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2004-11-03 22:46:15 +0000
committerBruce Momjian <bruce@momjian.us>2004-11-03 22:46:15 +0000
commit0f7a2a5fbeca9c25546c062b598b14feac73c7cf (patch)
tree8bfa05d66ad60f25e794c9d31d2c327178409685
parenta80989968078dcfd5f3c8470f2cc47b1988135e3 (diff)
downloadpostgresql-0f7a2a5fbeca9c25546c062b598b14feac73c7cf.tar.gz
postgresql-0f7a2a5fbeca9c25546c062b598b14feac73c7cf.zip
Create temporary files securely.
-rwxr-xr-xcontrib/findoidjoins/make_oidjoins_check21
1 files changed, 16 insertions, 5 deletions
diff --git a/contrib/findoidjoins/make_oidjoins_check b/contrib/findoidjoins/make_oidjoins_check
index 5106eb1bfd9..4fc9e61875e 100755
--- a/contrib/findoidjoins/make_oidjoins_check
+++ b/contrib/findoidjoins/make_oidjoins_check
@@ -10,12 +10,23 @@
# 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