From 52146cf067ae950b1d431a84766fc7d0501f536a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 17 Mar 2025 13:54:56 -0700 Subject: [PATCH] Fixed raw input device GUIDs changing randomly between runs On Windows 11, apparently HidD_GetManufacturerString() and HidD_GetProductString() can return TRUE without actually filling in any string data. Fixes https://github.com/libsdl-org/SDL/issues/12566 (cherry picked from commit 4fc9509ab776ffe535320ea3b1296ecfdea2c32f) --- src/joystick/windows/SDL_rawinputjoystick.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/joystick/windows/SDL_rawinputjoystick.c b/src/joystick/windows/SDL_rawinputjoystick.c index 9728780ac2..cd958b1ff9 100644 --- a/src/joystick/windows/SDL_rawinputjoystick.c +++ b/src/joystick/windows/SDL_rawinputjoystick.c @@ -908,9 +908,11 @@ static void RAWINPUT_AddDevice(HANDLE hDevice) char *product_string = NULL; WCHAR string[128]; + string[0] = 0; if (SDL_HidD_GetManufacturerString(hFile, string, sizeof(string))) { manufacturer_string = WIN_StringToUTF8W(string); } + string[0] = 0; if (SDL_HidD_GetProductString(hFile, string, sizeof(string))) { product_string = WIN_StringToUTF8W(string); }