Parcourir la source

nl80211: Do not set sched_scan filter if driver does not support it

cfg80211 will reject the NL80211_CMD_START_SCHED_SCAN if too many
match sets are requested. To avoid being completely unable to start
any scheduled scans, skip setting these filters if the driver did
not advertise support for large enough number of match sets.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen il y a 13 ans
Parent
commit
fb67eec6f8
1 fichiers modifiés avec 2 ajouts et 1 suppressions
  1. 2 1
      src/drivers/driver_nl80211.c

+ 2 - 1
src/drivers/driver_nl80211.c

@@ -2798,7 +2798,8 @@ static int wpa_driver_nl80211_sched_scan(void *priv,
 
 	NLA_PUT_U32(msg, NL80211_ATTR_SCHED_SCAN_INTERVAL, interval);
 
-	if (drv->num_filter_ssids) {
+	if (drv->num_filter_ssids &&
+	    (int) drv->num_filter_ssids <= drv->capa.max_match_sets) {
 		match_sets = nlmsg_alloc();
 
 		for (i = 0; i < drv->num_filter_ssids; i++) {