summaryrefslogtreecommitdiffstats
path: root/sys/dev/re
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2008-07-02 06:41:46 +0000
committeryongari <yongari@FreeBSD.org>2008-07-02 06:41:46 +0000
commitb32906b68fd501764f109241994fc7bb18f0739d (patch)
tree09c31c7368629a74ff3b9921914998c7649b3814 /sys/dev/re
parent7238fff0220acb33eca493711a36b02aa9583d15 (diff)
downloadFreeBSD-src-b32906b68fd501764f109241994fc7bb18f0739d.zip
FreeBSD-src-b32906b68fd501764f109241994fc7bb18f0739d.tar.gz
In device detach don't access ifnet structure unless device is
attached. This fixes NULL pointer dereference when polling(9) is active and unsupported hardware is detected in device attach.
Diffstat (limited to 'sys/dev/re')
-rw-r--r--sys/dev/re/if_re.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c
index f55d3d9..d8420a7 100644
--- a/sys/dev/re/if_re.c
+++ b/sys/dev/re/if_re.c
@@ -1391,12 +1391,12 @@ re_detach(dev)
ifp = sc->rl_ifp;
KASSERT(mtx_initialized(&sc->rl_mtx), ("re mutex not initialized"));
-#ifdef DEVICE_POLLING
- if (ifp->if_capenable & IFCAP_POLLING)
- ether_poll_deregister(ifp);
-#endif
/* These should only be active if attach succeeded */
if (device_is_attached(dev)) {
+#ifdef DEVICE_POLLING
+ if (ifp->if_capenable & IFCAP_POLLING)
+ ether_poll_deregister(ifp);
+#endif
RL_LOCK(sc);
#if 0
sc->suspended = 1;
OpenPOWER on IntegriCloud