Make sure the string is terminated, fixed invalid read in SDL_PrivateGameControllerParseControllerConfigString()
(cherry picked from commit 312f98c2a1edaf9590fc06d10f201996c059d869)
diff --git a/src/joystick/SDL_gamecontroller.c b/src/joystick/SDL_gamecontroller.c
index 7322674..4ce1c91 100644
--- a/src/joystick/SDL_gamecontroller.c
+++ b/src/joystick/SDL_gamecontroller.c
@@ -1066,6 +1066,7 @@
} else if (bGameButton) {
if (i >= sizeof(szGameButton)) {
+ szGameButton[sizeof(szGameButton) - 1] = '\0';
SDL_SetError("Button name too large: %s", szGameButton);
return;
}
@@ -1073,6 +1074,7 @@
i++;
} else {
if (i >= sizeof(szJoystickButton)) {
+ szJoystickButton[sizeof(szJoystickButton) - 1] = '\0';
SDL_SetError("Joystick button name too large: %s", szJoystickButton);
return;
}