Hi,
attached is the new patch which has just been uploaded.
Thanks for your help in this issue!
Nico

-- 
Nico Golde - http://ngolde.de - [EMAIL PROTECTED] - GPG: 0x73647CFF
For security reasons, all text in this mail is double-rot13 encrypted.
diff -u guilt-0.27/debian/changelog guilt-0.27/debian/changelog
--- guilt-0.27/debian/changelog
+++ guilt-0.27/debian/changelog
@@ -1,3 +1,20 @@
+guilt (0.27-1.2) unstable; urgency=high
+
+  * Non-maintainer upload by testing security team
+  * Updated patch to fix insecure file handling
+    (CVE-2007-5207) provided by upstream author since the last
+    patch introduces some problems (Closes: #445308).
+
+ -- Nico Golde <[EMAIL PROTECTED]>  Sat, 06 Oct 2007 18:31:30 +0200
+
+guilt (0.27-1.1) unstable; urgency=high
+
+  * Non-maintainer upload by testing security team.
+  * Included CVE-2007-5207.patch to fix insecure handling
+    of temporary files (CVE-2007-5207) (Closes: #445308).
+
+ -- Nico Golde <[EMAIL PROTECTED]>  Sat, 06 Oct 2007 12:47:08 +0200
+
 guilt (0.27-1) unstable; urgency=low
 
   * New upstream release
only in patch2:
unchanged:
--- guilt-0.27.orig/guilt-header
+++ guilt-0.27/guilt-header
@@ -38,16 +38,21 @@
 
 # FIXME: warn if we're editing an applied patch
 
+TMP_MSG=`get_tmp_file msg`
+TMP_DIFF=`get_tmp_file diff`
+
 if [ -z "$edit" ]; then
 	do_get_header "$GUILT_DIR/$branch/$patch"
 else
-	do_get_full_header "$GUILT_DIR/$branch/$patch" > /tmp/guilt.msg.$$
-	do_get_patch "$GUILT_DIR/$branch/$patch" > /tmp/guilt.diff.$$
-	$editor "/tmp/guilt.msg.$$"
+	do_get_full_header "$GUILT_DIR/$branch/$patch" > "$TMP_MSG"
+	do_get_patch "$GUILT_DIR/$branch/$patch" > "$TMP_DIFF"
+	$editor "$TMP_MSG"
 	mv "$GUILT_DIR/$branch/$patch" "$GUILT_DIR/$branch/$patch~"
 
 	(
-		cat /tmp/guilt.msg.$$
-		cat /tmp/guilt.diff.$$
+		cat "$TMP_MSG"
+		cat "$TMP_DIFF"
 	) > "$GUILT_DIR/$branch/$patch"
 fi
+
+rm -f "$TMP_MSG" "$TMP_DIFF"
only in patch2:
unchanged:
--- guilt-0.27.orig/guilt
+++ guilt-0.27/guilt
@@ -378,6 +378,9 @@
 	__push_patch_bail=0
 
 	(
+		TMP_LOG=`get_tmp_file log`
+		TMP_MSG=`get_tmp_file msg`
+
 		p="$GUILT_DIR/$branch/$1"
 		pname="$1"
 		bail_action="$2"
@@ -392,23 +395,23 @@
 				reject=""
 			fi
 			git-apply -C$guilt_push_diff_context --index \
-				$reject "$p" > /dev/null 2> /tmp/guilt.log.$$
+				$reject "$p" > /dev/null 2> "$TMP_LOG"
 			__push_patch_bail=$?
 
 			if [ $__push_patch_bail -ne 0 ]; then
-				cat /tmp/guilt.log.$$ >&2
+				cat "$TMP_LOG" >&2
 				if [ "$bail_action" = "abort" ]; then
-					rm -f /tmp/guilt.log.$$ /tmp/guilt.msg.$$
+					rm -f "$TMP_LOG" "$TMP_MSG"
 					return $__push_patch_bail
 				fi
 			fi
 		fi
 
 		# grab a commit message out of the patch
-		do_get_header "$p" > /tmp/guilt.msg.$$
+		do_get_header "$p" > "$TMP_MSG"
 
 		# make a default commit message if patch doesn't contain one
-		[ ! -s /tmp/guilt.msg.$$ ] && echo "patch $pname" > /tmp/guilt.msg.$$
+		[ ! -s "$TMP_MSG" ] && echo "patch $pname" > "$TMP_MSG"
 
 		# extract a From line from the patch header, and set
 		# GIT_AUTHOR_{NAME,EMAIL}
@@ -423,11 +426,13 @@
 
 		# commit
 		treeish=`git-write-tree`
-		commitish=`git-commit-tree $treeish -p HEAD < /tmp/guilt.msg.$$`
+		commitish=`git-commit-tree $treeish -p HEAD < "$TMP_MSG"`
 		echo $commitish > $GIT_DIR/`git-symbolic-ref HEAD`
 
 		# mark patch as applied
 		echo "$commitish:$pname" >> $applied
+
+		rm -f "$TMP_MSG" "$TMP_LOG"
 	)
 
 	# sub-shell funky-ness
@@ -436,7 +441,6 @@
 	# update references to top, bottom, and base of the stack
 	update_stack_tags
 
-	rm -f /tmp/guilt.msg.$$ /tmp/guilt.log.$$
 	return $__push_patch_bail
 }
 
@@ -474,13 +478,15 @@
 	assert_head_check
 
 	(
+		TMP_DIFF=`get_tmp_file diff`
+
 		cd "$TOP_DIR"
 		p="$GUILT_DIR/$branch/$1"
 
 		git-diff-files --name-only | (while read n; do git-update-index "$n" ; done)
 
 		# get the patch header
-		do_get_full_header "$p" > /tmp/guilt.diff.$$
+		do_get_full_header "$p" > "$TMP_DIFF"
 
 		[ ! -z "$4" ] && diffopts="-C -M --find-copies-harder"
 		
@@ -489,15 +495,15 @@
 				echo "---"
 				git-diff --stat $diffopts "$2"
 				echo ""
-			) >> /tmp/guilt.diff.$$
+			) >> "$TMP_DIFF"
 		fi
 
 		# get the new patch
-		git-diff $diffopts "$2" >> /tmp/guilt.diff.$$
+		git-diff $diffopts "$2" >> "$TMP_DIFF"
 
 		# move the new patch in
 		mv "$p" "$p~"
-		mv /tmp/guilt.diff.$$ $p
+		mv "$TMP_DIFF" $p
 	)
 
 	# drop the currently applied patch, pop_many_patches does it's own
@@ -541,6 +547,16 @@
 	return 0
 }
 
+# usage: get_tmp_file <prefix>
+#
+# Get a unique filename and create the file in a non-racy way
+get_tmp_file()
+{
+	while true; do
+		mktemp "/tmp/guilt.$1.XXXXXXXXXXXXXXX" && break
+	done
+}
+
 # usage: guilt_hook <hook name> <args....>
 guilt_hook()
 {
only in patch2:
unchanged:
--- guilt-0.27.orig/guilt-patchbomb
+++ guilt-0.27/guilt-patchbomb
@@ -8,6 +8,8 @@
 USAGE="[-n] [--in-reply-to <msgid>] [<hash> | <since>..[<until>] | ..<until>]"
 . `dirname $0`/guilt
 
+TMP_FILE=`get_tmp_file file`
+
 while [ $# -gt 0 ]; do
 	case "$1" in
 		-n)
@@ -83,15 +85,15 @@
 	x
 	s/\n/, /g
 	p
-}' > /tmp/guilt.$$.tmp
-	if [ -s /tmp/guilt.$$.tmp ]; then
+}' > "$TMP_FILE"
+	if [ -s "$TMP_FILE" ]; then
 		head -1 "$fulln" > "$fulln~"
 		echo -n "Cc: " >> "$fulln~"
-		cat /tmp/guilt.$$.tmp >> "$fulln~"
+		cat "$TMP_FILE" >> "$fulln~"
 		tail -n +2 "$fulln" >> "$fulln~"
 		mv "$fulln~" "$fulln"
 		echo "${n:0:4}: Including Cc from patch description"
-		rm -f /tmp/guilt.$$.tmp
+		rm -f "$TMP_FILE"
 	else
 		echo "${n:0:4}: No Cc found in patch description"
 	fi

Attachment: pgpmjmdMwKIZX.pgp
Description: PGP signature

Reply via email to