Valgrind reports mismatched free() / delete / delete []. --- src/imm/immnd/ImmModel.cc | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-)
diff --git a/src/imm/immnd/ImmModel.cc b/src/imm/immnd/ImmModel.cc index 80ba6efac..145c60d6c 100644 --- a/src/imm/immnd/ImmModel.cc +++ b/src/imm/immnd/ImmModel.cc @@ -6744,8 +6744,8 @@ SaAisErrorT ImmModel::ccbTerminate(SaUint32T ccbId) { errStr->next = NULL; free(errStr); } - free(ccb->mAugCcbParent); - ccb->mAugCcbParent = NULL; + delete ccb->mAugCcbParent; + ccb->mAugCcbParent = nullptr; } // TODO(?) Would be neat to store ccb outcomes in the OpenSafImm object. } @@ -8532,7 +8532,8 @@ SaAisErrorT ImmModel::ccbObjectCreate( continue; } - p = new immsv_attr_values_list; + p = static_cast<immsv_attr_values_list* >( + calloc(1, sizeof(immsv_attr_values_list))); (*trailing_p) = p; p->n.attrName.size = (SaUint32T)attrName.size() + 1; p->n.attrName.buf = strdup(attrName.c_str()); @@ -11275,8 +11276,8 @@ void ImmModel::ccbObjDelContinuation(immsv_oi_ccb_upcall_rsp* rsp, ccb->mAugCcbParent->mErrorStrings = NULL; ccb->mAugCcbParent->mContinuationId = 0; - free(ccb->mAugCcbParent); - ccb->mAugCcbParent = NULL; + delete ccb->mAugCcbParent; + ccb->mAugCcbParent = nullptr; } ObjectMutationMap::iterator omuti = ccb->mMutations.find(objectName); @@ -11360,8 +11361,8 @@ void ImmModel::ccbCompletedContinuation(immsv_oi_ccb_upcall_rsp* rsp, ccb->mAugCcbParent->mErrorStrings = NULL; ccb->mAugCcbParent->mContinuationId = 0; - free(ccb->mAugCcbParent); - ccb->mAugCcbParent = NULL; + delete ccb->mAugCcbParent; + ccb->mAugCcbParent = nullptr; } if (ccb->mState == IMM_CCB_VALIDATED) { @@ -11545,8 +11546,8 @@ void ImmModel::ccbObjCreateContinuation(SaUint32T ccbId, SaUint32T invocation, ccb->mAugCcbParent->mErrorStrings = NULL; ccb->mAugCcbParent->mContinuationId = 0; - free(ccb->mAugCcbParent); - ccb->mAugCcbParent = NULL; + delete ccb->mAugCcbParent; + ccb->mAugCcbParent = nullptr; } /* Only send response when ccb continuation is not purged */ @@ -11650,8 +11651,8 @@ void ImmModel::ccbObjModifyContinuation(SaUint32T ccbId, SaUint32T invocation, ccb->mAugCcbParent->mErrorStrings = NULL; ccb->mAugCcbParent->mContinuationId = 0; - free(ccb->mAugCcbParent); - ccb->mAugCcbParent = NULL; + delete ccb->mAugCcbParent; + ccb->mAugCcbParent = nullptr; } /* Only send response when ccb continuation is not purged */ @@ -16751,7 +16752,8 @@ SaAisErrorT ImmModel::rtObjectCreate( */ attrValue->setValueC_str( object->mImplementer->mImplementerName.c_str()); - p = new immsv_attr_values_list; + p = static_cast<immsv_attr_values_list* >( + calloc(1, sizeof(immsv_attr_values_list))); p->n.attrName.size = (SaUint32T)attrName.size() + 1; p->n.attrName.buf = strdup(attrName.c_str()); p->n.attrValueType = SA_IMM_ATTR_SASTRINGT; @@ -16771,7 +16773,8 @@ SaAisErrorT ImmModel::rtObjectCreate( Class-name is needed by special aplier, will be ignored by PBE if not persistent. */ - p = new immsv_attr_values_list; + p = static_cast<immsv_attr_values_list* >( + calloc(1, sizeof(immsv_attr_values_list))); p->n.attrName.size = (SaUint32T)attrName.size() + 1; p->n.attrName.buf = strdup(attrName.c_str()); p->n.attrValueType = SA_IMM_ATTR_SASTRINGT; @@ -16842,7 +16845,8 @@ SaAisErrorT ImmModel::rtObjectCreate( attrValues = attrValues->next; } if (!attrValues) { - p = new immsv_attr_values_list; + p = static_cast<immsv_attr_values_list* >( + calloc(1, sizeof(immsv_attr_values_list))); p->n.attrName.size = (SaUint32T)attrName.size() + 1; p->n.attrName.buf = strdup(attrName.c_str()); p->n.attrValueType = (SaImmValueTypeT)attr->mValueType; -- 2.18.0 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel