This prevents a shared mem leak if corosync dies while clients
are connected.

Calling cpg_finalize() did not release the shared mem as
coroipcc_msg_send_reply_receive() returned an error and
thus coroipcc_service_disconnect() did not get called.

Signed-off-by: Angus Salkeld <[email protected]>
---
 lib/cpg.c |   11 +----------
 1 files changed, 1 insertions(+), 10 deletions(-)

diff --git a/lib/cpg.c b/lib/cpg.c
index 11bae38..f61efde 100644
--- a/lib/cpg.c
+++ b/lib/cpg.c
@@ -239,22 +239,13 @@ cs_error_t cpg_finalize (
                &iov,
                1,
                &res_lib_cpg_finalize,
-               sizeof (struct req_lib_cpg_finalize));
-
-       if (error != CS_OK) {
-               goto error_put;
-       }
+               sizeof (struct res_lib_cpg_finalize));
 
        coroipcc_service_disconnect (cpg_inst->handle);
 
        cpg_inst_finalize (cpg_inst, handle);
        hdb_handle_put (&cpg_handle_t_db, handle);
 
-       return (CPG_OK);
-
-error_put:
-       hdb_handle_put (&cpg_iteration_handle_t_db, handle);
-       cpg_inst->finalize = 0;
        return (error);
 }
 
-- 
1.7.3.1

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to