|
@@ -3406,11 +3406,11 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
|
|
|
i = 0;
|
|
|
if (info->attrs[NL80211_ATTR_SCAN_SSIDS]) {
|
|
|
nla_for_each_nested(attr, info->attrs[NL80211_ATTR_SCAN_SSIDS], tmp) {
|
|
|
- request->ssids[i].ssid_len = nla_len(attr);
|
|
|
- if (request->ssids[i].ssid_len > IEEE80211_MAX_SSID_LEN) {
|
|
|
+ if (nla_len(attr) > IEEE80211_MAX_SSID_LEN) {
|
|
|
err = -EINVAL;
|
|
|
goto out_free;
|
|
|
}
|
|
|
+ request->ssids[i].ssid_len = nla_len(attr);
|
|
|
memcpy(request->ssids[i].ssid, nla_data(attr), nla_len(attr));
|
|
|
i++;
|
|
|
}
|
|
@@ -3572,12 +3572,11 @@ static int nl80211_start_sched_scan(struct sk_buff *skb,
|
|
|
if (info->attrs[NL80211_ATTR_SCAN_SSIDS]) {
|
|
|
nla_for_each_nested(attr, info->attrs[NL80211_ATTR_SCAN_SSIDS],
|
|
|
tmp) {
|
|
|
- request->ssids[i].ssid_len = nla_len(attr);
|
|
|
- if (request->ssids[i].ssid_len >
|
|
|
- IEEE80211_MAX_SSID_LEN) {
|
|
|
+ if (nla_len(attr) > IEEE80211_MAX_SSID_LEN) {
|
|
|
err = -EINVAL;
|
|
|
goto out_free;
|
|
|
}
|
|
|
+ request->ssids[i].ssid_len = nla_len(attr);
|
|
|
memcpy(request->ssids[i].ssid, nla_data(attr),
|
|
|
nla_len(attr));
|
|
|
i++;
|