From fbc7cccea87e3a91df69cdd0a62c474aa508ca7e Mon Sep 17 00:00:00 2001 From: maxv Date: Sat, 14 Sep 2019 12:50:16 +0000 Subject: Fix NULL deref, to prevent kernel crashes when detaching an udsbr0 device. Found with vHCI. --- sys/dev/usb/udsbr.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'sys/dev') diff --git a/sys/dev/usb/udsbr.c b/sys/dev/usb/udsbr.c index f5ff5651f43..82d9e6a372e 100644 --- a/sys/dev/usb/udsbr.c +++ b/sys/dev/usb/udsbr.c @@ -1,4 +1,4 @@ -/* $NetBSD: udsbr.c,v 1.27 2019/05/05 03:17:54 mrg Exp $ */ +/* $NetBSD: udsbr.c,v 1.28 2019/09/14 12:50:16 maxv Exp $ */ /* * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: udsbr.c,v 1.27 2019/05/05 03:17:54 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: udsbr.c,v 1.28 2019/09/14 12:50:16 maxv Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -174,8 +174,9 @@ udsbr_detach(device_t self, int flags) if (sc->sc_child != NULL) rv = config_detach(sc->sc_child, flags); - - usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, sc->sc_udev, sc->sc_dev); + if (sc->sc_udev != NULL) + usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, sc->sc_udev, + sc->sc_dev); return rv; } -- cgit