|
@@ -2854,6 +2854,9 @@ static int nl80211_get_key(struct sk_buff *skb, struct genl_info *info)
|
|
|
if (!rdev->ops->get_key)
|
|
|
return -EOPNOTSUPP;
|
|
|
|
|
|
+ if (!pairwise && mac_addr && !(rdev->wiphy.flags & WIPHY_FLAG_IBSS_RSN))
|
|
|
+ return -ENOENT;
|
|
|
+
|
|
|
msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
|
|
|
if (!msg)
|
|
|
return -ENOMEM;
|
|
@@ -2873,10 +2876,6 @@ static int nl80211_get_key(struct sk_buff *skb, struct genl_info *info)
|
|
|
nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, mac_addr))
|
|
|
goto nla_put_failure;
|
|
|
|
|
|
- if (pairwise && mac_addr &&
|
|
|
- !(rdev->wiphy.flags & WIPHY_FLAG_IBSS_RSN))
|
|
|
- return -ENOENT;
|
|
|
-
|
|
|
err = rdev_get_key(rdev, dev, key_idx, pairwise, mac_addr, &cookie,
|
|
|
get_key_callback);
|
|
|
|
|
@@ -3047,7 +3046,7 @@ static int nl80211_del_key(struct sk_buff *skb, struct genl_info *info)
|
|
|
wdev_lock(dev->ieee80211_ptr);
|
|
|
err = nl80211_key_allowed(dev->ieee80211_ptr);
|
|
|
|
|
|
- if (key.type == NL80211_KEYTYPE_PAIRWISE && mac_addr &&
|
|
|
+ if (key.type == NL80211_KEYTYPE_GROUP && mac_addr &&
|
|
|
!(rdev->wiphy.flags & WIPHY_FLAG_IBSS_RSN))
|
|
|
err = -ENOENT;
|
|
|
|