|
@@ -2752,6 +2752,9 @@ static int nl80211_authenticate(struct sk_buff *skb, struct genl_info *info)
|
|
if (!info->attrs[NL80211_ATTR_MAC])
|
|
if (!info->attrs[NL80211_ATTR_MAC])
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
|
|
+ if (!info->attrs[NL80211_ATTR_AUTH_TYPE])
|
|
|
|
+ return -EINVAL;
|
|
|
|
+
|
|
rtnl_lock();
|
|
rtnl_lock();
|
|
|
|
|
|
err = get_drv_dev_by_info_ifindex(info->attrs, &drv, &dev);
|
|
err = get_drv_dev_by_info_ifindex(info->attrs, &drv, &dev);
|
|
@@ -2798,13 +2801,10 @@ static int nl80211_authenticate(struct sk_buff *skb, struct genl_info *info)
|
|
req.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]);
|
|
req.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]);
|
|
}
|
|
}
|
|
|
|
|
|
- if (info->attrs[NL80211_ATTR_AUTH_TYPE]) {
|
|
|
|
- req.auth_type =
|
|
|
|
- nla_get_u32(info->attrs[NL80211_ATTR_AUTH_TYPE]);
|
|
|
|
- if (!nl80211_valid_auth_type(req.auth_type)) {
|
|
|
|
- err = -EINVAL;
|
|
|
|
- goto out;
|
|
|
|
- }
|
|
|
|
|
|
+ req.auth_type = nla_get_u32(info->attrs[NL80211_ATTR_AUTH_TYPE]);
|
|
|
|
+ if (!nl80211_valid_auth_type(req.auth_type)) {
|
|
|
|
+ err = -EINVAL;
|
|
|
|
+ goto out;
|
|
}
|
|
}
|
|
|
|
|
|
err = drv->ops->auth(&drv->wiphy, dev, &req);
|
|
err = drv->ops->auth(&drv->wiphy, dev, &req);
|