File freerdp-CVE-2026-24679.patch of Package freerdp2

From 2d563a50be17c1b407ca448b1321378c0726dd31 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Mon, 26 Jan 2026 10:59:39 +0100
Subject: [PATCH] [channels,urbdrc] ensure InterfaceNumber is within range

---
 channels/urbdrc/client/libusb/libusb_udevice.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff -urp freerdp-2.11.7.orig/channels/urbdrc/client/libusb/libusb_udevice.c freerdp-2.11.7/channels/urbdrc/client/libusb/libusb_udevice.c
--- freerdp-2.11.7.orig/channels/urbdrc/client/libusb/libusb_udevice.c	2026-02-18 14:18:47.541009536 -0600
+++ freerdp-2.11.7/channels/urbdrc/client/libusb/libusb_udevice.c	2026-02-18 14:25:17.762339152 -0600
@@ -528,19 +528,19 @@ static int libusb_udev_select_interface(
 {
 	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,
openSUSE Build Service is sponsored by