libnl-tiny: fix a potential memleak in an error path
authorFelix Fietkau <nbd@openwrt.org>
Thu, 12 Jan 2012 10:15:18 +0000 (10:15 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 12 Jan 2012 10:15:18 +0000 (10:15 +0000)
SVN-Revision: 29720

package/libnl-tiny/src/unl.c

index 4eb7dc07fd589cef210ab127f9280aba28083261..71487e0c1096615d96c86f0158b5bbe4a9c63e72 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;
 }