Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 May 2017 06:16:11 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r318224 - head/sys/dev/iwm
Message-ID:  <201705120616.v4C6GB7i065378@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705120616.v4C6GB7i065378>