Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Mar 2018 06:42:48 +0000 (UTC)
From:      Eitan Adler <eadler@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r330212 - stable/11/sys/dev/iwm
Message-ID:  <201803010642.w216gmgs063558@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: eadler
Date: Thu Mar  1 06:42:47 2018
New Revision: 330212
URL: https://svnweb.freebsd.org/changeset/base/330212

Log:
  MFC r318224:
  
  [iwm] Refuse connection to APs with beacon interval < 16.

Modified:
  stable/11/sys/dev/iwm/if_iwm.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/iwm/if_iwm.c
==============================================================================
--- stable/11/sys/dev/iwm/if_iwm.c	Thu Mar  1 06:42:19 2018	(r330211)
+++ stable/11/sys/dev/iwm/if_iwm.c	Thu Mar  1 06:42:47 2018	(r330212)
@@ -3961,6 +3961,21 @@ iwm_auth(struct ieee80211vap *vap, struct iwm_softc *s
 
 	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?201803010642.w216gmgs063558>