cluster: RHEL58 - cman: Clean shutdown_con if the controlling process is killed.

Fabio M. Di Nitto fabbione at fedoraproject.org
Mon Oct 17 08:12:11 UTC 2011


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=8034c6d0c7f68e6e8d823d65edda986b4a4f510b
Commit:        8034c6d0c7f68e6e8d823d65edda986b4a4f510b
Parent:        523abe7c546805181ea3969b61d01aa23402335e
Author:        Christine Caulfield <ccaulfie at redhat.com>
AuthorDate:    Fri Sep 19 13:02:40 2008 +0100
Committer:     Fabio M. Di Nitto <fdinitto at redhat.com>
CommitterDate: Mon Oct 17 10:09:53 2011 +0200

cman: Clean shutdown_con if the controlling process is killed.

If a shutdown is initiated by a process that is then killed, the
shutdown_con isn't cleared. So if another process replies to the
shutdown request cman could segfault.

Resolves: rhbz#590101

Signed-off-by: Christine Caulfield <ccaulfie at redhat.com>
Signed-off-by: Fabio M. Di Nitto <fdintto at redhat.com>
---
 cman/daemon/commands.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/cman/daemon/commands.c b/cman/daemon/commands.c
index ddc85ec..1fafdac 100644
--- a/cman/daemon/commands.c
+++ b/cman/daemon/commands.c
@@ -1541,6 +1541,11 @@ void unbind_con(struct connection *con)
 
 		check_shutdown_status();
 	}
+
+	/* If the controlling shutdown process has quit, then cancel the
+	   shutdown session */
+	if (con == shutdown_con)
+		shutdown_con = NULL;
 }
 
 /* Post a PORT OPEN/CLOSE event to anyone listening on this end */


More information about the cluster-commits mailing list