osaf/tools/safimm/src/immutil.c |  11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)


Fix missing handle finalization in immutil_get_className() and 
immutil_get_attrValueType() in immutil.c

diff --git a/osaf/tools/safimm/src/immutil.c b/osaf/tools/safimm/src/immutil.c
--- a/osaf/tools/safimm/src/immutil.c
+++ b/osaf/tools/safimm/src/immutil.c
@@ -509,16 +509,15 @@ SaAisErrorT immutil_update_one_rattr(SaI
 SaImmClassNameT immutil_get_className(const SaNameT *objectName)
 {
        SaImmHandleT omHandle;
-       SaImmClassNameT className;
+       SaImmClassNameT className = NULL;
        SaImmAccessorHandleT accessorHandle;
        SaImmAttrValuesT_2 **attributes;
        SaImmAttrNameT attributeNames[] = { "SaImmAttrClassName", NULL };
 
        (void)immutil_saImmOmInitialize(&omHandle, NULL, &immVersion);
        (void)immutil_saImmOmAccessorInitialize(omHandle, &accessorHandle);
-        if (immutil_saImmOmAccessorGet_2(accessorHandle, objectName, 
attributeNames, &attributes) != SA_AIS_OK)
-                return NULL;
-       className = strdup(*((char **)attributes[0]->attrValues[0]));
+        if (immutil_saImmOmAccessorGet_2(accessorHandle, objectName, 
attributeNames, &attributes) == SA_AIS_OK)
+               className = strdup(*((char **)attributes[0]->attrValues[0]));
        (void)immutil_saImmOmAccessorFinalize(accessorHandle);
        (void)immutil_saImmOmFinalize(omHandle);
 
@@ -538,7 +537,7 @@ SaAisErrorT immutil_get_attrValueType(co
         (void)immutil_saImmOmInitialize(&omHandle, NULL, &immVersion);
 
        if ((rc = saImmOmClassDescriptionGet_2(omHandle, className, 
&classCategory, &attrDefinitions)) != SA_AIS_OK)
-               return rc;
+               goto done;
 
        rc = SA_AIS_ERR_INVALID_PARAM;
        while ((attrDef = attrDefinitions[i++]) != NULL) {
@@ -550,6 +549,8 @@ SaAisErrorT immutil_get_attrValueType(co
        }
 
        (void)saImmOmClassDescriptionMemoryFree_2(omHandle, attrDefinitions);
+
+done:
        (void)immutil_saImmOmFinalize(omHandle);
        return rc;
 }

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to