Browse Source

Make sure the string is terminated, fixed invalid read in SDL_PrivateGameControllerParseControllerConfigString()

(cherry picked from commit 312f98c2a1edaf9590fc06d10f201996c059d869)
Sylvain 1 year ago
parent
commit
3a8032f491
1 changed files with 2 additions and 0 deletions
  1. 2 0
      src/joystick/SDL_gamecontroller.c

+ 2 - 0
src/joystick/SDL_gamecontroller.c

@@ -1066,6 +1066,7 @@ static void SDL_PrivateGameControllerParseControllerConfigString(SDL_GameControl
 
         } 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 @@ static void SDL_PrivateGameControllerParseControllerConfigString(SDL_GameControl
             i++;
         } else {
             if (i >= sizeof(szJoystickButton)) {
+                szJoystickButton[sizeof(szJoystickButton) - 1] = '\0';
                 SDL_SetError("Joystick button name too large: %s", szJoystickButton);
                 return;
             }