libnl-tiny: fix a potential memleak in an error path
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 12 Jan 2012 10:15:18 +0000 (10:15 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 12 Jan 2012 10:15:18 +0000 (10:15 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29720 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/libnl-tiny/src/unl.c

index 4eb7dc0..71487e0 100644 (file)
@@ -191,11 +191,11 @@ static int unl_genl_multicast_id(struct unl *unl, const char *name)
        NLA_PUT_STRING(msg, CTRL_ATTR_FAMILY_NAME, unl->family_name);
        unl_genl_request_single(unl, msg, &msg);
        if (!msg)
-               goto nla_put_failure;
+               return -1;
 
        groups = unl_find_attr(unl, msg, CTRL_ATTR_MCAST_GROUPS);
        if (!groups)
-               goto fail;
+               goto nla_put_failure;
 
        nla_for_each_nested(group, groups, rem) {
                const char *gn;
@@ -215,9 +215,8 @@ static int unl_genl_multicast_id(struct unl *unl, const char *name)
                break;
        }
 
-fail:
-       nlmsg_free(msg);
 nla_put_failure:
+       nlmsg_free(msg);
        return ret;
 }
 
This page took 0.027962 seconds and 4 git commands to generate.