From 7e9d85c110f996bb687259f7b14bee6fd44eed94 Mon Sep 17 00:00:00 2001 From: hselasky Date: Tue, 11 Jun 2019 08:54:21 +0000 Subject: [PATCH] MFC r348797: Fix for reading the configuration descriptor in libusb. Catch invalid configuration descriptor reads early on to avoid issues with devices that don't check for a valid USB configuration read request. Submitted by: takahiro.kurosawa@gmail.com PR: 238412 git-svn-id: svn://svn.freebsd.org/base/stable/9@348896 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- lib/libusb/libusb20.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/libusb/libusb20.c b/lib/libusb/libusb20.c index 590832b8f..3530215ba 100644 --- a/lib/libusb/libusb20.c +++ b/lib/libusb/libusb20.c @@ -924,6 +924,14 @@ libusb20_dev_alloc_config(struct libusb20_device *pdev, uint8_t configIndex) uint8_t do_close; int error; + /* + * Catch invalid configuration descriptor reads early on to + * avoid issues with devices that don't check for a valid USB + * configuration read request. + */ + if (configIndex >= pdev->ddesc.bNumConfigurations) + return (NULL); + if (!pdev->is_opened) { error = libusb20_dev_open(pdev, 0); if (error) { -- 2.45.0