dect
/
linux-2.6
Archived
13
0
Fork 0

[NETNS]: Memory leak on network namespace stop.

Network namespace allocates 2 kernel netlink sockets, fibnl &
rtnl. These sockets should be disposed properly, i.e. by
sock_release. Plain sock_put is not enough.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Tested-by: Alexey Dobriyan <adobriyan@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Denis V. Lunev 2008-01-18 23:54:15 -08:00 committed by David S. Miller
parent 869e58f870
commit 4f84d82f7a
2 changed files with 2 additions and 2 deletions

View File

@ -1384,7 +1384,7 @@ static void rtnetlink_net_exit(struct net *net)
* free. * free.
*/ */
sk->sk_net = get_net(&init_net); sk->sk_net = get_net(&init_net);
sock_put(sk); sock_release(net->rtnl->sk_socket);
net->rtnl = NULL; net->rtnl = NULL;
} }
} }

View File

@ -881,7 +881,7 @@ static void nl_fib_lookup_exit(struct net *net)
* initial network namespace. So the socket will be safe to free. * initial network namespace. So the socket will be safe to free.
*/ */
net->ipv4.fibnl->sk_net = get_net(&init_net); net->ipv4.fibnl->sk_net = get_net(&init_net);
sock_put(net->ipv4.fibnl); sock_release(net->ipv4.fibnl->sk_socket);
} }
static void fib_disable_ip(struct net_device *dev, int force) static void fib_disable_ip(struct net_device *dev, int force)