summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authoraugustss <augustss@NetBSD.org>2000-10-10 12:37:01 +0000
committeraugustss <augustss@NetBSD.org>2000-10-10 12:37:01 +0000
commit8adc2fb7f347f0f4cd20f23ce255bad62dd05f17 (patch)
tree3933e86c701ae11d9d4136c3603f617f04ee5429 /sys/dev
parentc8d0b982544b14b0808edcca2e41203369d289a7 (diff)
Don't free unallocated pointer in detach (can happen if detach happens
before attach has finished).
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/usb/uhid.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/usb/uhid.c b/sys/dev/usb/uhid.c
index 8529318ce43..3792d6cc8e8 100644
--- a/sys/dev/usb/uhid.c
+++ b/sys/dev/usb/uhid.c
@@ -1,4 +1,4 @@
-/* $NetBSD: uhid.c,v 1.39 2000/06/01 14:29:00 augustss Exp $ */
+/* $NetBSD: uhid.c,v 1.40 2000/10/10 12:37:01 augustss Exp $ */
/* $FreeBSD: src/sys/dev/usb/uhid.c,v 1.22 1999/11/17 22:33:43 n_hibma Exp $ */
/*
@@ -215,7 +215,7 @@ USB_ATTACH(uhid)
sc->sc_ep_addr = ed->bEndpointAddress;
- desc = 0;
+ desc = NULL;
err = usbd_alloc_report_desc(uaa->iface, &desc, &size, M_USBDEV);
if (err) {
printf("%s: no report descriptor\n", USBDEVNAME(sc->sc_dev));
@@ -308,7 +308,8 @@ USB_DETACH(uhid)
/* XXX not implemented yet */
#endif
- free(sc->sc_repdesc, M_USBDEV);
+ if (sc->sc_repdesc)
+ free(sc->sc_repdesc, M_USBDEV);
usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, sc->sc_udev,
USBDEV(sc->sc_dev));