diff options
author | wpaul <wpaul@FreeBSD.org> | 2005-10-26 20:21:45 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2005-10-26 20:21:45 +0000 |
commit | b382eabb5fab57ecfeb778d08fd7565f128ddd68 (patch) | |
tree | ce393710b6cb821fcde0e00af9fca024f2d62c60 /sys/compat | |
parent | 30682c89377e2570a7e827865780694a7926960c (diff) | |
download | FreeBSD-src-b382eabb5fab57ecfeb778d08fd7565f128ddd68.zip FreeBSD-src-b382eabb5fab57ecfeb778d08fd7565f128ddd68.tar.gz |
Minor nit: in ntoskrnl_finddev(), only free the 'children' device_t
array if device_find_children() actually returned a non-NULL array pointer.
Diffstat (limited to 'sys/compat')
-rw-r--r-- | sys/compat/ndis/subr_ntoskrnl.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/compat/ndis/subr_ntoskrnl.c b/sys/compat/ndis/subr_ntoskrnl.c index 8f5596a..f47badb 100644 --- a/sys/compat/ndis/subr_ntoskrnl.c +++ b/sys/compat/ndis/subr_ntoskrnl.c @@ -2556,6 +2556,8 @@ MmMapIoSpace(paddr, len, cachetype) int i; vm_offset_t v; + /* There will always be at least one nexus. */ + nexus_class = devclass_find("nexus"); devclass_get_devices(nexus_class, &nexus_devs, &nexus_count); @@ -2593,7 +2595,7 @@ ntoskrnl_finddev(dev, paddr, res) uint64_t paddr; struct resource **res; { - device_t *children; + device_t *children = NULL; device_t matching_dev; int childcnt; struct resource *r; @@ -2648,7 +2650,12 @@ ntoskrnl_finddev(dev, paddr, res) } } - free(children, M_TEMP); + + /* Won't somebody please think of the children! */ + + if (children != NULL) + free(children, M_TEMP); + return(NULL); } |