cfg80211: fix netns error unwinding bug
authorJohannes Berg <johannes@sipsolutions.net>
Thu, 8 Oct 2009 19:02:02 +0000 (21:02 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 8 Oct 2009 20:27:00 +0000 (16:27 -0400)
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>
net/wireless/nl80211.c

index eddab097435cd9a0473b6f12f98575e45ef1e0f2..ca3c92a0a14f26898c5e07a137a54393e1279fdd 100644 (file)
@@ -4029,7 +4029,7 @@ static int nl80211_wiphy_netns(struct sk_buff *skb, struct genl_info *info)
        rdev = cfg80211_get_dev_from_info(info);
        if (IS_ERR(rdev)) {
                err = PTR_ERR(rdev);
-               goto out;
+               goto out_rtnl;
        }
 
        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);
  out:
        cfg80211_unlock_rdev(rdev);
+ out_rtnl:
        rtnl_unlock();
        return err;
 }