summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorBjørn Mork <bjorn@mork.no>2018-10-25 21:18:25 +0200
committerDavid S. Miller <davem@davemloft.net>2018-10-25 16:21:31 -0700
commitbf4cc40e9343bbe6c7400ff6f4feb46fb9338087 (patch)
tree198ed7a7e5ab8259cd691f5ace526e17edbd9535 /net
parent863d4187d05aafd53f13fe1f358e9eb42bb0dbc1 (diff)
downloadop-kernel-dev-bf4cc40e9343bbe6c7400ff6f4feb46fb9338087.zip
op-kernel-dev-bf4cc40e9343bbe6c7400ff6f4feb46fb9338087.tar.gz
net/{ipv4,ipv6}: Do not put target net if input nsid is invalid
The cleanup path will put the target net when netnsid is set. So we must reset netnsid if the input is invalid. Fixes: d7e38611b81e ("net/ipv4: Put target net when address dump fails due to bad attributes") Fixes: 242afaa6968c ("net/ipv6: Put target net when address dump fails due to bad attributes") Cc: David Ahern <dsahern@gmail.com> Signed-off-by: Bjørn Mork <bjorn@mork.no> Reviewed-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/devinet.c1
-rw-r--r--net/ipv6/addrconf.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index 9250b30..a34602a 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -1704,6 +1704,7 @@ static int inet_valid_dump_ifaddr_req(const struct nlmsghdr *nlh,
net = rtnl_get_net_ns_capable(sk, fillargs->netnsid);
if (IS_ERR(net)) {
+ fillargs->netnsid = -1;
NL_SET_ERR_MSG(extack, "ipv4: Invalid target network namespace id");
return PTR_ERR(net);
}
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 7eb09c8..63a808d 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -5058,6 +5058,7 @@ static int inet6_valid_dump_ifaddr_req(const struct nlmsghdr *nlh,
fillargs->netnsid = nla_get_s32(tb[i]);
net = rtnl_get_net_ns_capable(sk, fillargs->netnsid);
if (IS_ERR(net)) {
+ fillargs->netnsid = -1;
NL_SET_ERR_MSG_MOD(extack, "Invalid target network namespace id");
return PTR_ERR(net);
}
OpenPOWER on IntegriCloud