From 7d4cb973348e91041bcbfe38860a3062f49a598f Mon Sep 17 00:00:00 2001 From: hselasky Date: Tue, 11 Jun 2019 08:53:26 +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/10@348895 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 7a345de14..aa8c301f6 100644 --- a/lib/libusb/libusb20.c +++ b/lib/libusb/libusb20.c @@ -935,6 +935,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.42.0