diff options
author | weongyo <weongyo@FreeBSD.org> | 2008-06-11 07:55:07 +0000 |
---|---|---|
committer | weongyo <weongyo@FreeBSD.org> | 2008-06-11 07:55:07 +0000 |
commit | ad0eff64be686b87fd41fe643041096f172d0278 (patch) | |
tree | b327ed81795c0fbc52599191d9d7e8bcacc6b8aa /sys/compat | |
parent | 0b53c9edf1a309162c5fa7973a8284ab5950a8dc (diff) | |
download | FreeBSD-src-ad0eff64be686b87fd41fe643041096f172d0278.zip FreeBSD-src-ad0eff64be686b87fd41fe643041096f172d0278.tar.gz |
fix a page fault that it occurred during ifp is NULL. This bug happens
when NDIS driver's initialization is failed and NDIS driver's trying to
call NdisWriteErrorLogEntry().
Diffstat (limited to 'sys/compat')
-rw-r--r-- | sys/compat/ndis/subr_ndis.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/compat/ndis/subr_ndis.c b/sys/compat/ndis/subr_ndis.c index 2945386..3e4470e 100644 --- a/sys/compat/ndis/subr_ndis.c +++ b/sys/compat/ndis/subr_ndis.c @@ -1018,7 +1018,7 @@ NdisWriteErrorLogEntry(ndis_handle adapter, ndis_error_code code, sc = device_get_softc(dev); ifp = sc->ifp; - if (ifp->if_flags & IFF_DEBUG) { + if (ifp != NULL && ifp->if_flags & IFF_DEBUG) { error = pe_get_message((vm_offset_t)drv->dro_driverstart, code, &str, &i, &flags); if (error == 0) { @@ -1036,7 +1036,7 @@ NdisWriteErrorLogEntry(ndis_handle adapter, ndis_error_code code, device_printf (dev, "NDIS ERROR: %x (%s)\n", code, str == NULL ? "unknown error" : str); - if (ifp->if_flags & IFF_DEBUG) { + if (ifp != NULL && ifp->if_flags & IFF_DEBUG) { device_printf (dev, "NDIS NUMERRORS: %x\n", numerrors); va_start(ap, numerrors); for (i = 0; i < numerrors; i++) |