Hi Zoran, Reviewed and tested the patch. Ack from me.
BR, Hung Nguyen - DEK Technologies -------------------------------------------------------------------------------- From: Zoran Milinkovic zoran.milinko...@ericsson.com Sent: Saturday, January 14, 2017 9:04PM To: Neelakanta Reddy reddy.neelaka...@oracle.com Cc: Opensaf-devel opensaf-devel@lists.sourceforge.net Subject: [devel] [PATCH 1 of 1] imm: fix memory leak in PBE [#2260] src/imm/immpbed/immpbe_daemon.cc | 34 ++++++++++++++++++---------------- 1 files changed, 18 insertions(+), 16 deletions(-) Fix memory leak in PBE when admin op for resource display is invoked. Additional indentation fix is added to the patch. diff --git a/src/imm/immpbed/immpbe_daemon.cc b/src/imm/immpbed/immpbe_daemon.cc --- a/src/imm/immpbed/immpbe_daemon.cc +++ b/src/imm/immpbed/immpbe_daemon.cc @@ -1119,9 +1119,9 @@ static void saImmOiAdminOperationCallbac resparams = (SaImmAdminOperationParamsT_2 *) malloc(sizeof(SaImmAdminOperationParamsT_2)); opName=(*(SaStringT *)params[i]->paramBuffer); resparams->paramName = strdup(SA_IMM_PARAM_ADMOP_NAME); - resparams->paramType = SA_IMM_ATTR_SASTRINGT; - resparams->paramBuffer = malloc(sizeof(SaStringT)); - *((SaStringT *)(resparams->paramBuffer)) = strdup(opName); + resparams->paramType = SA_IMM_ATTR_SASTRINGT; + resparams->paramBuffer = malloc(sizeof(SaStringT)); + *((SaStringT *)(resparams->paramBuffer)) = strdup(opName); rparams[param_len -1]=resparams; rparams[param_len]=NULL; break; @@ -1130,22 +1130,22 @@ static void saImmOiAdminOperationCallbac } i=0; while (params[i]) { - if ((strcmp(params[i]->paramName, "resource"))==0){ + if ((strcmp(params[i]->paramName, "resource"))==0){ param_len++; rparams = (SaImmAdminOperationParamsT_2 **) realloc (rparams, (param_len+1) * sizeof(SaImmAdminOperationParamsT_2 *)); resparams = (SaImmAdminOperationParamsT_2 *) malloc(sizeof(SaImmAdminOperationParamsT_2)); - res=(*(SaStringT *)params[i]->paramBuffer); - resparams->paramName = strdup("resource"); - resparams->paramType = SA_IMM_ATTR_SASTRINGT; - resparams->paramBuffer = malloc(sizeof(SaStringT)); - *((SaStringT *)(resparams->paramBuffer)) = strdup(res); + res=(*(SaStringT *)params[i]->paramBuffer); + resparams->paramName = strdup("resource"); + resparams->paramType = SA_IMM_ATTR_SASTRINGT; + resparams->paramBuffer = malloc(sizeof(SaStringT)); + *((SaStringT *)(resparams->paramBuffer)) = strdup(res); rparams[param_len -1]=resparams; rparams[param_len]=NULL; - break; - } - i++; - } + break; + } + i++; + } if (opName) { if ((strcmp(opName,"display")==0) || (strcmp(opName,"displayverbose")==0)|| @@ -1165,9 +1165,11 @@ static void saImmOiAdminOperationCallbac while (rparams[i]) { resparams = rparams[i]; if(resparams->paramName) - free(resparams->paramName); - if(resparams->paramBuffer) - free(resparams->paramBuffer); + free(resparams->paramName); + if(resparams->paramBuffer) { + free(*((SaStringT *)(resparams->paramBuffer))); + free(resparams->paramBuffer); + } free(resparams); i++; } ------------------------------------------------------------------------------ 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 Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel ------------------------------------------------------------------------------ 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 Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel