svn commit: r282402 - head/sys/dev/wpi

Adrian Chadd adrian at FreeBSD.org
Sun May 3 23:40:13 UTC 2015


Author: adrian
Date: Sun May  3 23:40:12 2015
New Revision: 282402
URL: https://svnweb.freebsd.org/changeset/base/282402

Log:
  [iwn] Do not filter control frames in monitor mode.
  
  PR:		kern/197143
  Submitted by:	 Andriy Voskoboinyk <s3erios at gmail.com>

Modified:
  head/sys/dev/wpi/if_wpi.c

Modified: head/sys/dev/wpi/if_wpi.c
==============================================================================
--- head/sys/dev/wpi/if_wpi.c	Sun May  3 23:39:44 2015	(r282401)
+++ head/sys/dev/wpi/if_wpi.c	Sun May  3 23:40:12 2015	(r282402)
@@ -1972,7 +1972,7 @@ wpi_rx_done(struct wpi_softc *sc, struct
 		goto fail1;
 	}
 	/* Discard frames that are too short. */
-	if (len < sizeof (*wh)) {
+	if (len < sizeof (struct ieee80211_frame_ack)) {
 		DPRINTF(sc, WPI_DEBUG_RECV, "%s: frame too short: %d\n",
 		    __func__, len);
 		goto fail1;
@@ -2033,7 +2033,11 @@ wpi_rx_done(struct wpi_softc *sc, struct
 		m->m_flags |= M_WEP;
 	}
 
-	ni = ieee80211_find_rxnode(ic, (struct ieee80211_frame_min *)wh);
+	if (len >= sizeof(struct ieee80211_frame_min))
+		ni = ieee80211_find_rxnode(ic, (struct ieee80211_frame_min *)wh);
+	else
+		ni = NULL;
+
 	sc->rx_tstamp = tail->tstamp;
 
 	if (ieee80211_radiotap_active(ic)) {


More information about the svn-src-all mailing list