Re: [PATCH] net-next: make sock diag per-namespace

From: Eric Dumazet
Date: Mon Jul 16 2012 - 08:32:25 EST


On Mon, 2012-07-16 at 16:14 +0400, Andrew Vagin wrote:
> Before this patch sock_diag works for init_net only and dumps
> information about sockets from all namespaces.

...

> diff --git a/net/ipv4/udp_diag.c b/net/ipv4/udp_diag.c
> index a7f86a3..52f42f9 100644
> --- a/net/ipv4/udp_diag.c
> +++ b/net/ipv4/udp_diag.c
> @@ -34,6 +34,7 @@ static int udp_dump_one(struct udp_table *tbl, struct sk_buff *in_skb,
> int err = -EINVAL;
> struct sock *sk;
> struct sk_buff *rep;
> + struct net *net = sock_net(in_skb->sk);
>
> if (req->sdiag_family == AF_INET)
> sk = __udp4_lib_lookup(&init_net,

It seems you didnt fix udp_dump_one() correctly, since it
still mentions &init_net

> @@ -75,7 +76,7 @@ static int udp_dump_one(struct udp_table *tbl, struct sk_buff *in_skb,
> kfree_skb(rep);
> goto out;
> }
> - err = netlink_unicast(sock_diag_nlsk, rep, NETLINK_CB(in_skb).pid,
> + err = netlink_unicast(net->diag_nlsk, rep, NETLINK_CB(in_skb).pid,
> MSG_DONTWAIT);
> if (err > 0)
> err = 0;

udp_dump() also needs some care ?


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/