src/ckpt/agent/cpa_proc.c | 22 ++++++++++++++++------
1 files changed, 16 insertions(+), 6 deletions(-)
Allocated memory in cpa_proc_build_data_access_evt() is freed.
diff --git a/src/ckpt/agent/cpa_proc.c b/src/ckpt/agent/cpa_proc.c
--- a/src/ckpt/agent/cpa_proc.c
+++ b/src/ckpt/agent/cpa_proc.c
@@ -1124,11 +1124,13 @@ uint32_t cpa_proc_build_data_access_evt(
SaSizeT maxSectionSize, SaUint32T
*errflag, CPSV_CKPT_DATA **ckpt_data)
{
CPSV_CKPT_DATA *tmp_ckpt_data = NULL;
+ *ckpt_data = NULL;
if (numberOfElements > 0) {
while (numberOfElements > 0) {
tmp_ckpt_data = m_MMGR_ALLOC_CPSV_CKPT_DATA;
- if (tmp_ckpt_data == NULL)
- return NCSCC_RC_FAILURE;
+ if (tmp_ckpt_data == NULL) {
+ goto free_mem;
+ }
memset(tmp_ckpt_data, '\0', sizeof(CPSV_CKPT_DATA));
switch (data_access_type) {
@@ -1150,7 +1152,7 @@ uint32_t cpa_proc_build_data_access_evt(
ioVector[numberOfElements -
1].dataSize) > maxSectionSize) {
if (errflag != NULL)
*errflag =
(numberOfElements - 1);
- return NCSCC_RC_FAILURE;
+ goto free_mem;
} else
tmp_ckpt_data->dataSize =
ioVector[numberOfElements - 1].dataSize;
}
@@ -1159,7 +1161,7 @@ uint32_t cpa_proc_build_data_access_evt(
break;
default:
- return NCSCC_RC_FAILURE;
+ goto free_mem;
}
if (*ckpt_data == NULL)
@@ -1171,9 +1173,17 @@ uint32_t cpa_proc_build_data_access_evt(
numberOfElements--;
}
return NCSCC_RC_SUCCESS;
- } else {
- return NCSCC_RC_FAILURE;
}
+
+free_mem:
+ free(tmp_ckpt_data);
+ while(*ckpt_data) {
+ tmp_ckpt_data = *ckpt_data;
+ *ckpt_data = tmp_ckpt_data->next;
+ m_MMGR_FREE_CPSV_CKPT_DATA(tmp_ckpt_data);
+ }
+
+ return NCSCC_RC_FAILURE;
}
/****************************************************************************
------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel