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); } _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"