46 lines
1.4 KiB
Diff
46 lines
1.4 KiB
Diff
From ea49391b3463b7df18eb9c358cdec04edf9c4001 Mon Sep 17 00:00:00 2001
|
|
From: Ondrej Holy <oholy@redhat.com>
|
|
Date: Thu, 12 Mar 2026 11:03:20 +0100
|
|
Subject: [PATCH] [channels,urbdrc] ensure InterfaceNumber is within range
|
|
|
|
Backport of commit 2d563a50be17c1b407ca448b1321378c0726dd31.
|
|
|
|
Made-with: Cursor
|
|
---
|
|
channels/urbdrc/client/libusb/libusb_udevice.c | 12 ++++++------
|
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/channels/urbdrc/client/libusb/libusb_udevice.c b/channels/urbdrc/client/libusb/libusb_udevice.c
|
|
index b2d80243b..ae8bbb4c5 100644
|
|
--- a/channels/urbdrc/client/libusb/libusb_udevice.c
|
|
+++ b/channels/urbdrc/client/libusb/libusb_udevice.c
|
|
@@ -528,19 +528,19 @@ static int libusb_udev_select_interface(IUDEVICE* idev, BYTE InterfaceNumber, BY
|
|
{
|
|
int error = 0, diff = 0;
|
|
UDEVICE* pdev = (UDEVICE*)idev;
|
|
- URBDRC_PLUGIN* urbdrc;
|
|
- MSUSB_CONFIG_DESCRIPTOR* MsConfig;
|
|
- MSUSB_INTERFACE_DESCRIPTOR** MsInterfaces;
|
|
|
|
if (!pdev || !pdev->urbdrc)
|
|
return -1;
|
|
|
|
- urbdrc = pdev->urbdrc;
|
|
- MsConfig = pdev->MsConfig;
|
|
+ URBDRC_PLUGIN* urbdrc = pdev->urbdrc;
|
|
+ MSUSB_CONFIG_DESCRIPTOR* MsConfig = pdev->MsConfig;
|
|
|
|
if (MsConfig)
|
|
{
|
|
- MsInterfaces = MsConfig->MsInterfaces;
|
|
+ if (InterfaceNumber >= MsConfig->NumInterfaces)
|
|
+ return -2;
|
|
+
|
|
+ MSUSB_INTERFACE_DESCRIPTOR** MsInterfaces = MsConfig->MsInterfaces;
|
|
if (MsInterfaces)
|
|
{
|
|
WLog_Print(urbdrc->log, WLOG_INFO,
|
|
--
|
|
2.53.0
|
|
|