The cpg service stores a copy of conn_info for distribution of multicast
messages and configuration change messages.  It is possible that cpg can
access this conn_info structure after it has been freed.  This patch
locks the ipc connection into memory until lib_exit_fn has been called
(and the conn_info structure has been deleted from the internal cpg
distribution list).

Regards
-steve
Index: exec/cpg.c
===================================================================
--- exec/cpg.c	(revision 1733)
+++ exec/cpg.c	(working copy)
@@ -487,6 +487,7 @@
 		cpg_node_joinleave_send(gi, pi, MESSAGE_REQ_EXEC_CPG_PROCLEAVE, CONFCHG_CPG_REASON_PROCDOWN);
 		list_del(&pi->list);
 	}
+	openais_conn_refcount_dec (conn);
 	return (0);
 }
 
@@ -992,7 +993,7 @@
 	struct process_info *pi = (struct process_info *)openais_conn_private_data_get (conn);
 	pi->conn = conn;
 
-//	openais_conn_info_refcnt_inc (conn);
+	openais_conn_refcount_inc (conn);
 	log_printf(LOG_LEVEL_DEBUG, "lib_init_fn: conn=%p, pi=%p\n", conn, pi);
 	return (0);
 }
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to