Commit 71fb4e3d76671cf8bdeb8c3bc2a36c1bb2874ffe

Sam Lantinga 2023-02-08T14:16:21

Fixed mis-detecting the share button on the Xbox controller over NDIS (cherry picked from commit 00e02de77b615d5faf94af709760fd0f2e749a39)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
diff --git a/src/joystick/hidapi/SDL_hidapi_xboxone.c b/src/joystick/hidapi/SDL_hidapi_xboxone.c
index 6230435..7019b41 100644
--- a/src/joystick/hidapi/SDL_hidapi_xboxone.c
+++ b/src/joystick/hidapi/SDL_hidapi_xboxone.c
@@ -655,6 +655,9 @@ static void HIDAPI_DriverXboxOne_HandleStatePacket(SDL_Joystick *joystick, SDL_D
 {
     Sint16 axis;
 
+    /* Some controllers have larger packets over NDIS, but the real size is in data[3] */
+    size = SDL_min(data[3], size);
+
     /* Enable paddles on the Xbox Elite controller when connected over USB */
     if (ctx->has_paddles && !ctx->has_unmapped_state && size == 50) {
         Uint8 packet[] = { 0x4d, 0x00, 0x00, 0x02, 0x07, 0x00 };