summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesper Juhl <jesper.juhl@gmail.com>2007-10-15 10:39:12 +0200
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-15 21:26:32 +0200
commitf937f1f46b6d2f9bef94e0d6b769a4c67615d34e (patch)
tree4aadb89d07e7bb0789d5a754e65db686f339f07c
parent[IPV6] __inet6_csk_dst_store(): fix check-after-use (diff)
downloadlinux-f937f1f46b6d2f9bef94e0d6b769a4c67615d34e.tar.xz
linux-f937f1f46b6d2f9bef94e0d6b769a4c67615d34e.zip
[NETLINK]: Don't leak 'listeners' in netlink_kernel_create()
The Coverity checker spotted that we'll leak the storage allocated to 'listeners' in netlink_kernel_create() when the if (!nl_table[unit].registered) check is false. This patch avoids the leak. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/netlink/af_netlink.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index c776bcd9f825..98e313e5e594 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -1378,6 +1378,8 @@ netlink_kernel_create(struct net *net, int unit, unsigned int groups,
nl_table[unit].cb_mutex = cb_mutex;
nl_table[unit].module = module;
nl_table[unit].registered = 1;
+ } else {
+ kfree(listeners);
}
netlink_table_ungrab();