]> Git Repo - linux.git/commitdiff
genetlink: Fix a memory leak on error path
authorYueHaibing <[email protected]>
Thu, 21 Mar 2019 07:02:50 +0000 (15:02 +0800)
committerDavid S. Miller <[email protected]>
Thu, 21 Mar 2019 16:29:06 +0000 (09:29 -0700)
In genl_register_family(), when idr_alloc() fails,
we forget to free the memory we possibly allocate for
family->attrbuf.

Reported-by: Hulk Robot <[email protected]>
Fixes: 2ae0f17df1cd ("genetlink: use idr to track families")
Signed-off-by: YueHaibing <[email protected]>
Reviewed-by: Kirill Tkhai <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
net/netlink/genetlink.c

index 25eeb6d2a75a69059f387be103345e844284f743..f0ec068e1d02fc0ebd39c2b1ecd935a301647ab1 100644 (file)
@@ -366,7 +366,7 @@ int genl_register_family(struct genl_family *family)
                               start, end + 1, GFP_KERNEL);
        if (family->id < 0) {
                err = family->id;
-               goto errout_locked;
+               goto errout_free;
        }
 
        err = genl_validate_assign_mc_groups(family);
@@ -385,6 +385,7 @@ int genl_register_family(struct genl_family *family)
 
 errout_remove:
        idr_remove(&genl_fam_idr, family->id);
+errout_free:
        kfree(family->attrbuf);
 errout_locked:
        genl_unlock_all();
This page took 0.06143 seconds and 4 git commands to generate.