From 342cd9ec4d2d7ddd103ae078ab177b106fd78e1a Mon Sep 17 00:00:00 2001 From: Ningyuan Li Date: Wed, 17 Jan 2024 19:08:27 +0900 Subject: [PATCH] fixed null pointer crash caused by incorrect handling of gamepad index --- src/app/stream/input/session_input.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/app/stream/input/session_input.c b/src/app/stream/input/session_input.c index 9d7d4cd02..ff3a2f4b2 100644 --- a/src/app/stream/input/session_input.c +++ b/src/app/stream/input/session_input.c @@ -48,8 +48,12 @@ void session_input_interrupt(stream_input_t *input) { void session_input_started(stream_input_t *input) { input->started = true; - for (int i = 0, j = app_input_get_gamepads_count(input->input); i < j; ++i) { - stream_input_send_gamepad_arrive(input, app_input_gamepad_state_by_index(input->input, i)); + for (int i = 0, j = app_input_get_max_gamepads(input->input); i < j; ++i) { + app_gamepad_state_t *gamepad = app_input_gamepad_state_by_index(input->input, i); + if (gamepad == NULL) { + continue; + } + stream_input_send_gamepad_arrive(input, gamepad); } }