lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <1331486969.2449.15.camel@edumazet-laptop> Date: Sun, 11 Mar 2012 10:29:29 -0700 From: Eric Dumazet <eric.dumazet@...il.com> To: Stanislav Kinsbursky <skinsbursky@...allels.com> Cc: davem@...emloft.net, ebiederm@...stanetworks.com, netdev@...r.kernel.org, linux-kernel@...r.kernel.org, xemul@...allel.com, shemminger@...tta.com, devel@...nvz.org Subject: Re: [PATCH] tun: don't hold network namespace by tun sockets Le dimanche 11 mars 2012 à 19:21 +0400, Stanislav Kinsbursky a écrit : > TUN was designed to destroy it's socket on network namesapce shutdown. But this > will never happen for persistent device, because it's socket holds network > namespace. > This patch removes of holding network namespace by TUN socket and replaces it > by creating socket in init_net and then changing it's net it to desired one. On > shutdown socket is moved back to init_net prior to final put. > > Signed-off-by: Stanislav Kinsbursky <skinsbursky@...allels.com> > > --- > drivers/net/tun.c | 10 +++++++--- > 1 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/tun.c b/drivers/net/tun.c > index 2c5d349..92ef539 100644 > --- a/drivers/net/tun.c > +++ b/drivers/net/tun.c > @@ -358,8 +358,11 @@ static void tun_net_uninit(struct net_device *dev) > static void tun_free_netdev(struct net_device *dev) > { > struct tun_struct *tun = netdev_priv(dev); > + struct sock *sk = tun->socket.sk; > > - sock_put(tun->socket.sk); > + release_net(sock_net(sk)); > + sock_net_set(sk, get_net(&init_net)); > + sock_put(sk); Hmm, maybe use sk_release_kernel(), as its should be the thing associated with sk_change_net(). Or at least make intent clear, since its not obvious. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists