osaf/services/saf/cpsv/cpd/cpd_db.c | 11 +++++++----
osaf/services/saf/cpsv/cpd/cpd_sbevt.c | 16 ++++++++++------
2 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/osaf/services/saf/cpsv/cpd/cpd_db.c
b/osaf/services/saf/cpsv/cpd/cpd_db.c
--- a/osaf/services/saf/cpsv/cpd/cpd_db.c
+++ b/osaf/services/saf/cpsv/cpd/cpd_db.c
@@ -439,7 +439,7 @@ uint32_t cpd_ckpt_reploc_node_delete(CPD
/* goto reploc_node_add_fail; */
TRACE_4("cpd db node add failed ");
}
- rc = NCSCC_RC_FAILURE;
+ return NCSCC_RC_FAILURE;
}
/* Free the Client Node */
@@ -989,8 +989,10 @@ void cpd_ckpt_ref_info_add(CPD_CPND_INFO
cref = node_info->ckpt_ref_list;
while (cref) {
- if (cref->ckpt_node->ckpt_id == cref_info->ckpt_node->ckpt_id)
+ if (cref->ckpt_node->ckpt_id == cref_info->ckpt_node->ckpt_id) {
+ m_MMGR_FREE_CPD_CKPT_REF_INFO(cref_info);
return;
+ }
cref = cref->next;
}
@@ -1055,9 +1057,10 @@ void cpd_node_ref_info_add(CPD_CKPT_INFO
TRACE_ENTER();
nref = ckpt_node->node_list;
while (nref) {
- if (nref->dest == nref_info->dest)
+ if (nref->dest == nref_info->dest) {
+ m_MMGR_FREE_CPD_NODE_REF_INFO(nref_info);
return;
-
+ }
nref = nref->next;
}
diff --git a/osaf/services/saf/cpsv/cpd/cpd_sbevt.c
b/osaf/services/saf/cpsv/cpd/cpd_sbevt.c
--- a/osaf/services/saf/cpsv/cpd/cpd_sbevt.c
+++ b/osaf/services/saf/cpsv/cpd/cpd_sbevt.c
@@ -175,8 +175,6 @@ uint32_t cpd_sb_proc_ckpt_create(CPD_CB
if (!node_info) {
TRACE_4("cpd standby create evt failed for mdsdest:
%"PRIu64,msg->info.ckpt_create.dest_list[count].dest);
proc_rc = NCSCC_RC_OUT_OF_MEM;
- if (nref_info)
- m_MMGR_FREE_CPD_NODE_REF_INFO(nref_info);
goto cpd_cpnd_node_find_fail;
}
add_flag = true;
@@ -240,8 +238,12 @@ uint32_t cpd_sb_proc_ckpt_create(CPD_CB
/* Failed some where in the for loop or in ckpt node add */
cpd_ckpt_node_add_fail:
+ if (cref_info)
+ m_MMGR_FREE_CPD_CKPT_REF_INFO(cref_info);
cluster_node_get_fail:
cpd_cpnd_node_find_fail:
+ if (nref_info)
+ m_MMGR_FREE_CPD_NODE_REF_INFO(nref_info);
nref_info_alloc_fail:
if (ckpt_node) {
@@ -498,7 +500,8 @@ uint32_t cpd_sb_proc_ckpt_dest_add(CPD_C
cpd_node_ref_info_add(ckpt_node, nref_info);
else {
TRACE_4("cpd standby dest add evt failed for ckptid:
%llx",msg->info.dest_add.ckpt_id);
- return NCSCC_RC_OUT_OF_MEM;
+ proc_rc = NCSCC_RC_OUT_OF_MEM;
+ goto free_mem;
}
cpd_cpnd_info_node_find_add(&cb->cpnd_tree,
&msg->info.dest_add.mds_dest, &node_info, &add_flag);
@@ -555,15 +558,16 @@ uint32_t cpd_sb_proc_ckpt_dest_add(CPD_C
cref_info->ckpt_node = ckpt_node;
cpd_ckpt_ref_info_add(node_info, cref_info);
-
TRACE_1("cpd standby destadd evt success ckpt_id %llx mdsdest:
%"PRIu64, msg->info.dest_add.ckpt_id, msg->info.dest_add.mds_dest);
free_mem:
if (node_info == NULL) {
cpd_node_ref_info_del(ckpt_node, nref_info);
- m_MMGR_FREE_CPD_NODE_REF_INFO(nref_info);
- m_MMGR_FREE_CPD_CKPT_REF_INFO(cref_info);
+ if (nref_info)
+ m_MMGR_FREE_CPD_NODE_REF_INFO(nref_info);
+ if (cref_info)
+ m_MMGR_FREE_CPD_CKPT_REF_INFO(cref_info);
}
TRACE_LEAVE();
return proc_rc;
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel