fix possible crash in platform/x11/joystick_linux.cpp

ev may be tainted and out of MAX_KEY range,
which will cause joy->key_map[ev.code] to crash
This commit is contained in:
Hubert Jarosz 2016-02-28 20:20:59 +01:00 committed by Hubert Jarosz
parent e46e43d2aa
commit 4b14c18d13
1 changed files with 6 additions and 0 deletions

View File

@ -429,6 +429,12 @@ uint32_t joystick_linux::process_joysticks(uint32_t p_event_id) {
for (int j = 0; j < len; j++) {
input_event &ev = events[j];
// ev may be tainted and out of MAX_KEY range, which will cause
// joy->key_map[ev.code] to crash
if( ev.code < 0 || ev.code >= MAX_KEY )
return p_event_id;
switch (ev.type) {
case EV_KEY:
p_event_id = input->joy_button(p_event_id, i, joy->key_map[ev.code], ev.value);