svn commit: r318224 - head/sys/dev/iwm

Adrian Chadd adrian at FreeBSD.org
Fri May 12 06:16:12 UTC 2017


Author: adrian
Date: Fri May 12 06:16:11 2017
New Revision: 318224
URL: https://svnweb.freebsd.org/changeset/base/318224

Log:
  [iwm] Refuse connection to APs with beacon interval < 16.
  
  Obtained from:	dragonflybsd.git aba448de727e9b122adadeb36fd00a8ad6018d4f

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==============================================================================
--- head/sys/dev/iwm/if_iwm.c	Fri May 12 06:05:34 2017	(r318223)
+++ head/sys/dev/iwm/if_iwm.c	Fri May 12 06:16:11 2017	(r318224)
@@ -3976,6 +3976,21 @@ iwm_auth(struct ieee80211vap *vap, struc
 
 	in->in_assoc = 0;
 
+	/*
+	 * Firmware bug - it'll crash if the beacon interval is less
+	 * than 16. We can't avoid connecting at all, so refuse the
+	 * station state change, this will cause net80211 to abandon
+	 * attempts to connect to this AP, and eventually wpa_s will
+	 * blacklist the AP...
+	 */
+	if (ni->ni_intval < 16) {
+		device_printf(sc->sc_dev,
+		    "AP %s beacon interval is %d, refusing due to firmware bug!\n",
+		    ether_sprintf(ni->ni_bssid), ni->ni_intval);
+		error = EINVAL;
+		goto out;
+	}
+
 	error = iwm_mvm_sf_config(sc, IWM_SF_FULL_ON);
 	if (error != 0)
 		return error;


More information about the svn-src-head mailing list