|
@@ -5776,7 +5776,7 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
|
|
request->ssids = (void *)&request->channels[n_channels];
|
|
request->ssids = (void *)&request->channels[n_channels];
|
|
request->n_ssids = n_ssids;
|
|
request->n_ssids = n_ssids;
|
|
if (ie_len) {
|
|
if (ie_len) {
|
|
- if (request->ssids)
|
|
|
|
|
|
+ if (n_ssids)
|
|
request->ie = (void *)(request->ssids + n_ssids);
|
|
request->ie = (void *)(request->ssids + n_ssids);
|
|
else
|
|
else
|
|
request->ie = (void *)(request->channels + n_channels);
|
|
request->ie = (void *)(request->channels + n_channels);
|
|
@@ -5832,7 +5832,7 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
|
|
request->n_channels = i;
|
|
request->n_channels = i;
|
|
|
|
|
|
i = 0;
|
|
i = 0;
|
|
- if (info->attrs[NL80211_ATTR_SCAN_SSIDS]) {
|
|
|
|
|
|
+ if (n_ssids) {
|
|
nla_for_each_nested(attr, info->attrs[NL80211_ATTR_SCAN_SSIDS], tmp) {
|
|
nla_for_each_nested(attr, info->attrs[NL80211_ATTR_SCAN_SSIDS], tmp) {
|
|
if (nla_len(attr) > IEEE80211_MAX_SSID_LEN) {
|
|
if (nla_len(attr) > IEEE80211_MAX_SSID_LEN) {
|
|
err = -EINVAL;
|
|
err = -EINVAL;
|
|
@@ -6030,7 +6030,7 @@ nl80211_parse_sched_scan(struct wiphy *wiphy, struct wireless_dev *wdev,
|
|
request->ssids = (void *)&request->channels[n_channels];
|
|
request->ssids = (void *)&request->channels[n_channels];
|
|
request->n_ssids = n_ssids;
|
|
request->n_ssids = n_ssids;
|
|
if (ie_len) {
|
|
if (ie_len) {
|
|
- if (request->ssids)
|
|
|
|
|
|
+ if (n_ssids)
|
|
request->ie = (void *)(request->ssids + n_ssids);
|
|
request->ie = (void *)(request->ssids + n_ssids);
|
|
else
|
|
else
|
|
request->ie = (void *)(request->channels + n_channels);
|
|
request->ie = (void *)(request->channels + n_channels);
|
|
@@ -6039,7 +6039,7 @@ nl80211_parse_sched_scan(struct wiphy *wiphy, struct wireless_dev *wdev,
|
|
if (n_match_sets) {
|
|
if (n_match_sets) {
|
|
if (request->ie)
|
|
if (request->ie)
|
|
request->match_sets = (void *)(request->ie + ie_len);
|
|
request->match_sets = (void *)(request->ie + ie_len);
|
|
- else if (request->ssids)
|
|
|
|
|
|
+ else if (n_ssids)
|
|
request->match_sets =
|
|
request->match_sets =
|
|
(void *)(request->ssids + n_ssids);
|
|
(void *)(request->ssids + n_ssids);
|
|
else
|
|
else
|
|
@@ -6098,7 +6098,7 @@ nl80211_parse_sched_scan(struct wiphy *wiphy, struct wireless_dev *wdev,
|
|
request->n_channels = i;
|
|
request->n_channels = i;
|
|
|
|
|
|
i = 0;
|
|
i = 0;
|
|
- if (attrs[NL80211_ATTR_SCAN_SSIDS]) {
|
|
|
|
|
|
+ if (n_ssids) {
|
|
nla_for_each_nested(attr, attrs[NL80211_ATTR_SCAN_SSIDS],
|
|
nla_for_each_nested(attr, attrs[NL80211_ATTR_SCAN_SSIDS],
|
|
tmp) {
|
|
tmp) {
|
|
if (nla_len(attr) > IEEE80211_MAX_SSID_LEN) {
|
|
if (nla_len(attr) > IEEE80211_MAX_SSID_LEN) {
|