From 3aa33913384d5dd99ac274f96e49115b56ba36ac Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Wed, 19 Aug 2009 12:36:26 +0200
Subject: [PATCH] Do not use temp file in iscsi_discovery

The iscsi_discovery shell script, typically run as root, contains the
following code:

  df=/tmp/discovered.$$

  dbg "starting discovery to $ip"
  iscsiadm -m discovery --type sendtargets --portal ${ip}:${port} > ${df}

This is a standard security vulnerability and should be replaced by use of
mktemp or shell variables.

References: bnc#528711

Signed-off-by: Hannes Reinecke <hare@suse.de>
---
 utils/iscsi_discovery |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

Index: open-iscsi-2.0-865/utils/iscsi_discovery
===================================================================
--- open-iscsi-2.0-865.orig/utils/iscsi_discovery
+++ open-iscsi-2.0-865/utils/iscsi_discovery
@@ -65,24 +65,22 @@ discover()
 {
 	connected=0
 	discovered=0
-	df=/tmp/discovered.$$
 
 	dbg "starting discovery to $ip"
-	iscsiadm -m discovery --type sendtargets --portal ${ip}:${port} > ${df}
-	while read portal target
+	disc="$(iscsiadm -m discovery --type sendtargets --portal ${ip}:${port})"
+	echo "${disc}" | while read portal target
 	do
 		portal=${portal%,*}
 		select_transport
-	done < ${df}
+	done
 
-	discovered=$(cat ${df} | wc -l)
+	discovered=$(echo "${disc}" | wc -l)
 	if [ ${discovered} = 0 ]; then
 		echo "failed to discover targets at ${ip}"
 		exit 2
 	else 
 		echo "discovered ${discovered} targets at ${ip}, connected to ${connected}"
 	fi
-	/bin/rm -f ${df}
 }
 
 set_auto_if_login()
