File 0024-Medium-aws-vpc-route53-Fix-tempfile-race-bsc-1059312.patch of Package resource-agents.8843

From e660628d816928f61c578f1af334bba51b0ee2d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kristoffer=20Gr=C3=B6nlund?= <krig@koru.se>
Date: Mon, 23 Oct 2017 13:59:30 +0200
Subject: [PATCH 24/27] Medium: aws-vpc-route53: Fix tempfile race
 (bsc#1059312)

---
 heartbeat/aws-vpc-route53 | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/heartbeat/aws-vpc-route53 b/heartbeat/aws-vpc-route53
index d9b6d84b..3c31f6c4 100755
--- a/heartbeat/aws-vpc-route53
+++ b/heartbeat/aws-vpc-route53
@@ -215,7 +215,11 @@ ec2ip_stop() {
 		# Patch file
 		ocf_log debug "function ec2ip_stop: will delete IP address to ${IPADDRESS}"
 		ocf_log info "EC2: Updating Route53 $OCF_RESKEY_hostedzoneid with $IPADDRESS for $OCF_RESKEY_fullname"
-		ROUTE53RECORD="/var/tmp/route53-${OCF_RESKEY_hostedzoneid}-${IPADDRESS}.json"
+		ROUTE53RECORD="$(maketempfile)"
+		if [ $? -ne 0 ] || [ -z "$ROUTE53RECORD" ]; then
+			ocf_exit_reason "Failed to create temporary file for record update"
+			exit $OCF_ERR_GENERIC
+		fi
 		echo "{ " > ${ROUTE53RECORD}
 		echo "	  \"Comment\": \"Update record to reflect new IP address for a system \", " >>	${ROUTE53RECORD}
 		echo "	  \"Changes\": [ " >>  ${ROUTE53RECORD}
@@ -239,7 +243,7 @@ ec2ip_stop() {
 		ocf_log debug "function ec2ip_start: executing command: $cmd"
 		CHANGEID=$($cmd | grep CHANGEINFO |	 /usr/bin/awk -F'\t' '{ print $3 }' )
 		ocf_log debug "Change id: ${CHANGEID}"
-		rm ${ROUTE53RECORD}
+		rmtempfile ${ROUTE53RECORD}
 		CHANGEID=$(echo $CHANGEID |cut -d'/' -f 3 |cut -d'"' -f 1 )
 		ocf_log debug "Change id: ${CHANGEID}"
 		STATUS="PENDING"
@@ -262,7 +266,11 @@ ec2ip_start() {
 	# Patch file
 	ocf_log debug "function ec2ip_start: will update IP address to ${IPADDRESS}"
 	ocf_log info "EC2: Updating Route53 $OCF_RESKEY_hostedzoneid with $IPADDRESS for $OCF_RESKEY_fullname"
-	ROUTE53RECORD="/var/tmp/route53-${OCF_RESKEY_hostedzoneid}-${IPADDRESS}.json"
+	ROUTE53RECORD="$(maketempfile)"
+	if [ $? -ne 0 ] || [ -z "$ROUTE53RECORD" ]; then
+		ocf_exit_reason "Failed to create temporary file for record update"
+		exit $OCF_ERR_GENERIC
+	fi
 	echo "{ " > ${ROUTE53RECORD}
 	echo "    \"Comment\": \"Update record to reflect new IP address for a system \", " >>  ${ROUTE53RECORD}
 	echo "    \"Changes\": [ " >>  ${ROUTE53RECORD}
@@ -286,7 +294,7 @@ ec2ip_start() {
 	ocf_log debug "function ec2ip_start: executing command: $cmd"
 	CHANGEID=$($cmd | grep CHANGEINFO |  /usr/bin/awk -F'\t' '{ print $3 }' )
 	ocf_log debug "Change id: ${CHANGEID}"
-	rm ${ROUTE53RECORD}
+	rmtempfile ${ROUTE53RECORD}
 	CHANGEID=$(echo $CHANGEID |cut -d'/' -f 3 |cut -d'"' -f 1 )
 	ocf_log debug "Change id: ${CHANGEID}"
 	STATUS="PENDING"
-- 
2.15.1

openSUSE Build Service is sponsored by