cfg80211: fix netns error unwinding bug
The error unwinding code in set_netns has a bug that will make it run into a BUG_ON if passed a bad wiphy index, fix by not trying to unlock a wiphy that doesn't exist. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
7e937c633f
commit
8a8e05e5d8
|
@ -4029,7 +4029,7 @@ static int nl80211_wiphy_netns(struct sk_buff *skb, struct genl_info *info)
|
||||||
rdev = cfg80211_get_dev_from_info(info);
|
rdev = cfg80211_get_dev_from_info(info);
|
||||||
if (IS_ERR(rdev)) {
|
if (IS_ERR(rdev)) {
|
||||||
err = PTR_ERR(rdev);
|
err = PTR_ERR(rdev);
|
||||||
goto out;
|
goto out_rtnl;
|
||||||
}
|
}
|
||||||
|
|
||||||
net = get_net_ns_by_pid(pid);
|
net = get_net_ns_by_pid(pid);
|
||||||
|
@ -4049,6 +4049,7 @@ static int nl80211_wiphy_netns(struct sk_buff *skb, struct genl_info *info)
|
||||||
put_net(net);
|
put_net(net);
|
||||||
out:
|
out:
|
||||||
cfg80211_unlock_rdev(rdev);
|
cfg80211_unlock_rdev(rdev);
|
||||||
|
out_rtnl:
|
||||||
rtnl_unlock();
|
rtnl_unlock();
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue