svn commit: r232147 - head/sys/dev/wi
Adrian Chadd
adrian at FreeBSD.org
Sat Feb 25 08:01:30 UTC 2012
Author: adrian
Date: Sat Feb 25 08:01:29 2012
New Revision: 232147
URL: http://svn.freebsd.org/changeset/base/232147
Log:
If an interrupt is received with no vap attached, just fail LINK events.
This fixes a NULL pointer dereference which occurs if the vap list is
empty but someone brings up the wi0 interface.
Modified:
head/sys/dev/wi/if_wi.c
Modified: head/sys/dev/wi/if_wi.c
==============================================================================
--- head/sys/dev/wi/if_wi.c Sat Feb 25 07:58:59 2012 (r232146)
+++ head/sys/dev/wi/if_wi.c Sat Feb 25 08:01:29 2012 (r232147)
@@ -1511,6 +1511,10 @@ wi_info_intr(struct wi_softc *sc)
case WI_INFO_LINK_STAT:
wi_read_bap(sc, fid, sizeof(ltbuf), &stat, sizeof(stat));
DPRINTF(("wi_info_intr: LINK_STAT 0x%x\n", le16toh(stat)));
+
+ if (vap == NULL)
+ goto finish;
+
switch (le16toh(stat)) {
case WI_INFO_LINK_STAT_CONNECTED:
if (vap->iv_state == IEEE80211_S_RUN &&
@@ -1566,6 +1570,7 @@ wi_info_intr(struct wi_softc *sc)
le16toh(ltbuf[1]), le16toh(ltbuf[0])));
break;
}
+finish:
CSR_WRITE_2(sc, WI_EVENT_ACK, WI_EV_INFO);
}
More information about the svn-src-head
mailing list