From 8d1a3621dcf5571530f002d917dae4ca2787f981 Mon Sep 17 00:00:00 2001 From: PulkoMandy Date: Sun, 28 Aug 2022 21:27:25 +0200 Subject: [PATCH] usb_serial: fix possible NULL pointer dereference There can apparently be interfaces without descriptors. Should fix #17892 Change-Id: Ibcbab0f60ecbd2005640c647bf7540d17d0f5375 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5598 Tested-by: Commit checker robot Reviewed-by: waddlesplash --- src/add-ons/kernel/drivers/ports/usb_serial/ACM.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/add-ons/kernel/drivers/ports/usb_serial/ACM.cpp b/src/add-ons/kernel/drivers/ports/usb_serial/ACM.cpp index 8a6a05366f..7530e5a437 100644 --- a/src/add-ons/kernel/drivers/ports/usb_serial/ACM.cpp +++ b/src/add-ons/kernel/drivers/ports/usb_serial/ACM.cpp @@ -30,7 +30,11 @@ ACMDevice::AddDevice(const usb_configuration_info *config) // Search ACM Communication Interface for (size_t i = 0; i < config->interface_count && status < B_OK; i++) { usb_interface_info *interface = config->interface[i].active; + if (interface == NULL) + continue; usb_interface_descriptor *descriptor = interface->descr; + if (descriptor == NULL) + continue; if (descriptor->interface_class != USB_CDC_COMMUNICATION_INTERFACE_CLASS || descriptor->interface_subclass != USB_CDC_COMMUNICATION_INTERFACE_ACM_SUBCLASS) continue;