netns: read NETNSA_NSID as s32 attribute in rtnl_net_getid()
authorGuillaume Nault <gnault@redhat.com>
Thu, 11 Apr 2019 14:45:57 +0000 (16:45 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Apr 2019 18:26:27 +0000 (11:26 -0700)
NETNSA_NSID is signed. Use nla_get_s32() to avoid confusion.

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/net_namespace.c

index 7e6dcc6..ebb5b6d 100644 (file)
@@ -839,7 +839,7 @@ static int rtnl_net_getid(struct sk_buff *skb, struct nlmsghdr *nlh,
                peer = get_net_ns_by_fd(nla_get_u32(tb[NETNSA_FD]));
                nla = tb[NETNSA_FD];
        } else if (tb[NETNSA_NSID]) {
-               peer = get_net_ns_by_id(net, nla_get_u32(tb[NETNSA_NSID]));
+               peer = get_net_ns_by_id(net, nla_get_s32(tb[NETNSA_NSID]));
                if (!peer)
                        peer = ERR_PTR(-ENOENT);
                nla = tb[NETNSA_NSID];