[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#476760: mkrboot: bashism in /bin/sh script



tags 476760 + patch
thanks

Patch attached. It also fixes a problem where temporary directories with
easily-guessable names are used.


Regards,

-- 
Chris Lamb, UK                                       chris@chris-lamb.co.uk
                                                            GPG: 0x634F9A20
diff -urNad mkrboot-0.95.orig/mkrboot mkrboot-0.95/mkrboot
--- mkrboot-0.95.orig/mkrboot	2008-04-22 16:34:23.000000000 +0100
+++ mkrboot-0.95/mkrboot	2008-04-22 16:38:44.000000000 +0100
@@ -76,26 +76,30 @@
 	# Prepare archive
 	rm $FILE.zip 2>/dev/null
 	set -e
-	mkdir /tmp/$$
-	cp $ROOTIMAGE /tmp/$$/root.bin
-	cp $KERNEL /tmp/$$/linux
-	cp $LIB/loadlin/* /tmp/$$
+	DIR="$(mktemp -d)"
+	cp $ROOTIMAGE "${DIR}/root.bin"
+	cp $KERNEL "${DIR}/linux"
+	cp $LIB/loadlin/* "${DIR}"
 	if [ -f /usr/lib/loadlin/loadlin.exe.gz ]; then
-		zcat /usr/lib/loadlin/loadlin.exe.gz > /tmp/$$/loadlin.exe
+		zcat /usr/lib/loadlin/loadlin.exe.gz > "${DIR}/loadlin.exe"
 	else
-		cp /usr/lib/loadlin/loadlin.exe /tmp/$$/loadlin.exe
+		cp /usr/lib/loadlin/loadlin.exe "${DIR}/loadlin.exe"
 	fi
-	if [ ! -f /tmp/$$/loadlin.exe ]; then
+	if [ ! -f "${DIR}/loadlin.exe" ]; then
 		echo "mkrboot: ERROR: con't find loadlin.exe or loadlin.exe.gz!"
 		exit 1
 	fi
 	# Prepare linux kernel
-	/usr/sbin/rdev /tmp/$$/linux /dev/ram0
-	/usr/sbin/ramsize /tmp/$$/linux 0
-	unix2dos /tmp/$$/*.bat
-	zip -j $FILE /tmp/$$/{linux,root.bin,install.bat,loadlin.exe} >/dev/null
+	/usr/sbin/rdev "${DIR}/linux" /dev/ram0
+	/usr/sbin/ramsize "${DIR}/linux" 0
+	unix2dos "${DIR}/*.bat"
+	zip -j $FILE \
+		${DIR}/linux
+		${DIR}/root.bin
+		${DIR}/install.bat
+		${DIR}/loadlin.exe >/dev/null
 	echo "$FILE.zip preparation finished. Size=`du $FILE.zip|awk '{ print $1 }'`k."
-	rm -rf /tmp/$$
+	rm -rf "${DIR}"
 	exit 0
 fi
 

Attachment: signature.asc
Description: PGP signature


Reply to: