Hi Thuan,

Ack (Not tested).

B.R/Thang

-----Original Message-----
From: Thuan Tran <thuan.t...@dektech.com.au> 
Sent: Tuesday, August 18, 2020 3:54 PM
To: Thang Duc Nguyen <thang.d.ngu...@dektech.com.au>; Minh Hon Chau 
<minh.c...@dektech.com.au>
Cc: opensaf-devel@lists.sourceforge.net; Thuan Tran <thuan.t...@dektech.com.au>
Subject: [PATCH 1/1] imm: fix memleak detected by valgrind [#3213]

---
 src/imm/immd/immd_evt.c   |  3 +++
 src/imm/immnd/immnd_evt.c | 16 ++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/src/imm/immd/immd_evt.c b/src/imm/immd/immd_evt.c index 
de247c9fa..8d789249d 100644
--- a/src/imm/immd/immd_evt.c
+++ b/src/imm/immd/immd_evt.c
@@ -256,6 +256,9 @@ void immd_process_evt(void)
                    rc, evt->info.immd.type);
        }
 
+       if (evt->info.immd.type == IMMD_EVT_ND2D_ADMINIT_REQ)
+               osaf_extended_name_free(
+                   &evt->info.immd.info.admown_init.i.adminOwnerName);
        /* Free the Event */
        free(evt);
        TRACE_LEAVE();
diff --git a/src/imm/immnd/immnd_evt.c b/src/imm/immnd/immnd_evt.c index 
ff2538d15..afc2106a0 100644
--- a/src/imm/immnd/immnd_evt.c
+++ b/src/imm/immnd/immnd_evt.c
@@ -566,6 +566,22 @@ uint32_t immnd_evt_destroy(IMMSV_EVT *evt, bool onheap, 
uint32_t line)
                free(evt->info.immnd.info.ccbUpcallRsp.errorString.buf);
                evt->info.immnd.info.ccbUpcallRsp.errorString.buf = NULL;
                evt->info.immnd.info.ccbUpcallRsp.errorString.size = 0;
+               if (evt->info.immnd.type ==
+                   IMMND_EVT_A2ND_CCB_OBJ_DELETE_RSP_2)
+                       osaf_extended_name_free(
+                           &evt->info.immnd.info.ccbUpcallRsp.name);
+       } else if ((evt->info.immnd.type ==
+                   IMMND_EVT_A2ND_CCB_OBJ_DELETE_RSP) ||
+                   (evt->info.immnd.type ==
+                   IMMND_EVT_A2ND_OI_CCB_AUG_INIT)) {
+               osaf_extended_name_free(
+                   &evt->info.immnd.info.ccbUpcallRsp.name);
+       } else if (evt->info.immnd.type == IMMND_EVT_A2ND_IMM_ADMINIT) {
+               osaf_extended_name_free(
+                   &evt->info.immnd.info.adminitReq.i.adminOwnerName);
+       } else if (evt->info.immnd.type == IMMND_EVT_D2ND_ADMINIT) {
+               osaf_extended_name_free(
+                   &evt->info.immnd.info.adminitGlobal.i.adminOwnerName);
        } else if (evt->info.immnd.type == IMMND_EVT_D2ND_IMPLDELETE) {
                for(uint32_t i=0; i<evt->info.immnd.info.impl_delete.size; ++i) 
{
                        
free(evt->info.immnd.info.impl_delete.implNameList[i].buf);
--
2.17.1



_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to