This is the mail archive of the
cluster-cvs@sourceware.org
mailing list for the cluster.
master - rgmanager: randomize ASEHAagent temp files
- From: "Fabio M. Di Nitto" <fabbione at fedoraproject dot org>
- To: cluster-cvs-relay at redhat dot com
- Date: Wed, 22 Oct 2008 07:41:25 +0000 (UTC)
- Subject: master - rgmanager: randomize ASEHAagent temp files
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=f8943d17d4c108d44af7a42ad0fd646d4e75990e
Commit: f8943d17d4c108d44af7a42ad0fd646d4e75990e
Parent: 868089af45ccf544ca6062cd6801b1b8deb51193
Author: Fabio M. Di Nitto <fdinitto@redhat.com>
AuthorDate: Wed Oct 22 09:40:08 2008 +0200
Committer: Fabio M. Di Nitto <fdinitto@redhat.com>
CommitterDate: Wed Oct 22 09:40:08 2008 +0200
rgmanager: randomize ASEHAagent temp files
by using a static path to /tmp, the operation can be used to trigger
a local DoS by a normal user.
Mitigate the issue by randomizing the temp files with pid.
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
---
rgmanager/src/resources/ASEHAagent.sh | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/rgmanager/src/resources/ASEHAagent.sh b/rgmanager/src/resources/ASEHAagent.sh
index 4f709e9..35f3fa1 100644
--- a/rgmanager/src/resources/ASEHAagent.sh
+++ b/rgmanager/src/resources/ASEHAagent.sh
@@ -781,8 +781,8 @@ deep_probe()
ocf_log debug "ASEHAagent: Start 'deep_probe'."
# Declare two temporary files which will be used in this probe.
- tmpfile1="/tmp/ASEHAagent.1"
- tmpfile2="/tmp/ASEHAagent.2"
+ tmpfile1="/tmp/ASEHAagent.1.$$"
+ tmpfile2="/tmp/ASEHAagent.2.$$"
# Get the login_string by analyzing the login_file.
get_login_string
@@ -794,6 +794,7 @@ deep_probe()
fi
rm -f $tmpfile1
+ rm -f $tmpfile2
# The login file is correct. We have gotten the login account and password from it.
# Run isql command in background.
@@ -842,11 +843,17 @@ EOF
# Read the process id of isql process from tmpfile2
pid=`cat $tmpfile2 | awk '{print $1}'`
+ rm -f $tmpfile1
+ rm -f $tmpfile2
+
# Kill the isql process directly.
kill -9 $pid
return 1
fi
+ rm -f $tmpfile1
+ rm -f $tmpfile2
+
ocf_log debug "ASEHAagent: End 'deep_probe'."
return 0