[backend/GLFW] Added bounds check (#5621)

* added bounds check

* update from PR feedback
This commit is contained in:
Thomas Anderson
2026-03-04 01:40:15 -06:00
committed by GitHub
parent 28288fafb1
commit de720a8d4c

View File

@ -2178,16 +2178,19 @@ static void CursorEnterCallback(GLFWwindow *window, int enter)
// GLFW3: Joystick connected/disconnected callback // GLFW3: Joystick connected/disconnected callback
static void JoystickCallback(int jid, int event) static void JoystickCallback(int jid, int event)
{ {
if (event == GLFW_CONNECTED) if (jid < MAX_GAMEPADS)
{ {
// WARNING: If glfwGetJoystickName() is longer than MAX_GAMEPAD_NAME_LENGTH, if (event == GLFW_CONNECTED)
// only copy up to (MAX_GAMEPAD_NAME_LENGTH -1) to destination string {
memset(CORE.Input.Gamepad.name[jid], 0, MAX_GAMEPAD_NAME_LENGTH); // WARNING: If glfwGetJoystickName() is longer than MAX_GAMEPAD_NAME_LENGTH,
strncpy(CORE.Input.Gamepad.name[jid], glfwGetJoystickName(jid), MAX_GAMEPAD_NAME_LENGTH - 1); // only copy up to (MAX_GAMEPAD_NAME_LENGTH -1) to destination string
} memset(CORE.Input.Gamepad.name[jid], 0, MAX_GAMEPAD_NAME_LENGTH);
else if (event == GLFW_DISCONNECTED) strncpy(CORE.Input.Gamepad.name[jid], glfwGetJoystickName(jid), MAX_GAMEPAD_NAME_LENGTH - 1);
{ }
memset(CORE.Input.Gamepad.name[jid], 0, MAX_GAMEPAD_NAME_LENGTH); else if (event == GLFW_DISCONNECTED)
{
memset(CORE.Input.Gamepad.name[jid], 0, MAX_GAMEPAD_NAME_LENGTH);
}
} }
} }