From 4fc9509ab776ffe535320ea3b1296ecfdea2c32f 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 --- 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 d5166def0a..d135382e5d 100644 --- a/src/joystick/windows/SDL_rawinputjoystick.c +++ b/src/joystick/windows/SDL_rawinputjoystick.c @@ -909,9 +909,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); }