Quellcode durchsuchen

Update rcore_desktop_sdl.c, fix crash when strncpy tries to copy using NULL pointer (#5359)

When SDL_GameControllerNameForIndex returns null, the app crashes. This was addressed earlier in PR#4859 though the fix submitted on PR #4859 was only fixing the crashing and not addressing the root cause.
pull/5362/head
MikiZX1 vor 1 Monat
committed von GitHub
Ursprung
Commit
b18f547d8f
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden GPG-Schlüssel-ID: B5690EEEBB952194
1 geänderte Dateien mit 4 neuen und 1 gelöschten Zeilen
  1. +4
    -1
      src/platforms/rcore_desktop_sdl.c

+ 4
- 1
src/platforms/rcore_desktop_sdl.c Datei anzeigen

@ -1723,7 +1723,10 @@ void PollInputEvents(void)
CORE.Input.Gamepad.axisState[nextAvailableSlot][GAMEPAD_AXIS_LEFT_TRIGGER] = -1.0f; CORE.Input.Gamepad.axisState[nextAvailableSlot][GAMEPAD_AXIS_LEFT_TRIGGER] = -1.0f;
CORE.Input.Gamepad.axisState[nextAvailableSlot][GAMEPAD_AXIS_RIGHT_TRIGGER] = -1.0f; CORE.Input.Gamepad.axisState[nextAvailableSlot][GAMEPAD_AXIS_RIGHT_TRIGGER] = -1.0f;
memset(CORE.Input.Gamepad.name[nextAvailableSlot], 0, MAX_GAMEPAD_NAME_LENGTH); memset(CORE.Input.Gamepad.name[nextAvailableSlot], 0, MAX_GAMEPAD_NAME_LENGTH);
strncpy(CORE.Input.Gamepad.name[nextAvailableSlot], SDL_GameControllerNameForIndex(nextAvailableSlot), MAX_GAMEPAD_NAME_LENGTH - 1);
if (SDL_GameControllerNameForIndex(nextAvailableSlot))
strncpy(CORE.Input.Gamepad.name[nextAvailableSlot], SDL_GameControllerNameForIndex(nextAvailableSlot), MAX_GAMEPAD_NAME_LENGTH - 1);
else
strncpy(CORE.Input.Gamepad.name[nextAvailableSlot], "Noname", 6);
} }
else else
{ {

Laden…
Abbrechen
Speichern