From 0b76df438470977010b2548082237febc7991448 Mon Sep 17 00:00:00 2001
From: Jesse Norell <jesse@kci.net>
Date: Wed, 23 Dec 2015 16:28:49 -0500
Subject: [PATCH] use mktemp in update scripts to avoid race conditions

---
 server/scripts/update_from_dev.sh |   20 ++++++++++++++++----
 server/scripts/update_from_tgz.sh |   30 +++++++++++++++++-------------
 2 files changed, 33 insertions(+), 17 deletions(-)

diff --git a/server/scripts/update_from_dev.sh b/server/scripts/update_from_dev.sh
old mode 100644
new mode 100755
index 98adb17..fe2f6ef
--- a/server/scripts/update_from_dev.sh
+++ b/server/scripts/update_from_dev.sh
@@ -1,17 +1,29 @@
 #!/bin/bash
 
-cd /tmp
-rm -f ispconfig3-dev.tar.gz
+{
+    umask 0077 \
+    && tmpdir=`mktemp -dt "$(basename $0).XXXXXXXXXX"` \
+    && test -d "${tmpdir}" \
+    && cd "${tmpdir}"
+} || {
+    echo 'mktemp failed'
+    exit 1
+}
+
 wget -O ispconfig3-dev.tar.gz "http://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=master"
-rm -rf ispconfig3-master*
 tar xzf ispconfig3-dev.tar.gz
+
+echo -n "Latest git version:  "
+ls -1d ispconfig3-master*
 cd ispconfig3-master*/install
+
 php -q \
     -d disable_classes= \
     -d disable_functions= \
     -d open_basedir= \
     update.php
+
 cd /tmp
-rm -rf /tmp/ispconfig3-master* /tmp/ispconfig3-dev.tar.gz
+rm -rf "${tmpdir}"
 
 exit 0
diff --git a/server/scripts/update_from_tgz.sh b/server/scripts/update_from_tgz.sh
index 7d59e40..9dcf52d 100644
--- a/server/scripts/update_from_tgz.sh
+++ b/server/scripts/update_from_tgz.sh
@@ -1,11 +1,14 @@
 #!/bin/bash
 
-cd /tmp
-
-if [ -f ISPConfig-3-stable.tar.gz ]
-then
-rm -f ISPConfig-3-stable.tar.gz
-fi
+{
+    umask 0077 \
+    && tmpdir=`mktemp -dt "$(basename $0).XXXXXXXXXX"` \
+    && test -d "${tmpdir}" \
+    && cd "${tmpdir}"
+} || {
+    echo 'mktemp failed'
+    exit 1
+}
 
 wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
 if [ -f ISPConfig-3-stable.tar.gz ]
@@ -13,14 +16,15 @@
 	tar xvfz ISPConfig-3-stable.tar.gz
 	cd ispconfig3_install/install/
 	php -q \
-    -d disable_classes= \
-    -d disable_functions= \
-    -d open_basedir= \
-    update.php
-	rm -rf /tmp/ispconfig3_install/install
-	rm -f ISPConfig-3-stable.tar.gz
+        -d disable_classes= \
+        -d disable_functions= \
+        -d open_basedir= \
+        update.php
+    cd /tmp
+    rm -rf "${tmpdir}"
 else
 	echo "Unable to download the update."
+    exit 1
 fi
 
-exit 0
\ No newline at end of file
+exit 0

--
Gitblit v1.9.1