net80211: restore interface state check for IEEE80211_IOC_SCAN_REQ ioctl.

Do not try to start a scan when interface is not running.

How-to-reproduce:
1) ifconfig wlan0 create wlandev urtwn0
2) wlandebug -i wlan0 state
3) ifconfig wlan0 scan
This commit is contained in:
Andriy Voskoboinyk 2016-05-19 22:02:03 +00:00
parent 6dbbec9385
commit f20503faf8

View File

@ -2486,6 +2486,11 @@ ieee80211_scanreq(struct ieee80211vap *vap, struct ieee80211_scan_req *sr)
* Otherwise just invoke the scan machinery directly.
*/
IEEE80211_LOCK(ic);
if (ic->ic_nrunning == 0) {
IEEE80211_UNLOCK(ic);
return ENXIO;
}
if (vap->iv_state == IEEE80211_S_INIT) {
/* NB: clobbers previous settings */
vap->iv_scanreq_flags = sr->sr_flags;