diff options
author | David Ahern <dsahern@gmail.com> | 2018-09-28 12:28:41 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-10-01 23:22:04 -0700 |
commit | 893626d6a353d1356528f94e081246ecf233d77a (patch) | |
tree | 821ff67bbcd539aa5dbe7b97066a625dbf5ef95f /net | |
parent | 7f6d6558ae44bc193eb28df3617c364d3bb6df39 (diff) | |
download | linux-893626d6a353d1356528f94e081246ecf233d77a.tar.gz linux-893626d6a353d1356528f94e081246ecf233d77a.tar.bz2 linux-893626d6a353d1356528f94e081246ecf233d77a.zip |
rtnetlink: Fail dump if target netnsid is invalid
Link dumps can return results from a target namespace. If the namespace id
is invalid, then the dump request should fail if get_target_net fails
rather than continuing with a dump of the current namespace.
Fixes: 79e1ad148c844 ("rtnetlink: use netnsid to query interface")
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/core/rtnetlink.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 63ce2283a456..7f37fe9c65a5 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -1898,10 +1898,8 @@ static int rtnl_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb) if (tb[IFLA_IF_NETNSID]) { netnsid = nla_get_s32(tb[IFLA_IF_NETNSID]); tgt_net = get_target_net(skb->sk, netnsid); - if (IS_ERR(tgt_net)) { - tgt_net = net; - netnsid = -1; - } + if (IS_ERR(tgt_net)) + return PTR_ERR(tgt_net); } if (tb[IFLA_EXT_MASK]) |