Skip to content

Commit

Permalink
nl80211: Require auth type for NL80211_CMD_AUTHENTICATE
Browse files Browse the repository at this point in the history
NL80211_ATTR_AUTH_TYPE is a required parameter for
NL80211_CMD_AUTHENTICATE. We are currently (by chance) defaulting to
open system authentication if the attribute is not specified. It is
better to just reject the invalid command.

Signed-off-by: Jouni Malinen <j@w1.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Jouni Malinen authored and John W. Linville committed Apr 22, 2009
1 parent c0ed418 commit 1778092
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions net/wireless/nl80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -2752,6 +2752,9 @@ static int nl80211_authenticate(struct sk_buff *skb, struct genl_info *info)
if (!info->attrs[NL80211_ATTR_MAC])
return -EINVAL;

if (!info->attrs[NL80211_ATTR_AUTH_TYPE])
return -EINVAL;

rtnl_lock();

err = get_drv_dev_by_info_ifindex(info->attrs, &drv, &dev);
Expand Down Expand Up @@ -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]);
}

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);
Expand Down

0 comments on commit 1778092

Please sign in to comment.