diff options
| author | Hubert Jarosz | 2016-02-28 20:20:59 +0100 |
|---|---|---|
| committer | Hubert Jarosz | 2016-03-09 00:16:56 +0100 |
| commit | 4b14c18d1334d65c6b1949dfbb554037448fd59f (patch) | |
| tree | 1b48669a25cc1d68df591fdfb8ef1ca857081c24 /platform/x11/joystick_linux.cpp | |
| parent | e46e43d2aaa6339a1675eb989f41885e745bf5c3 (diff) | |
| download | godot-4b14c18d1334d65c6b1949dfbb554037448fd59f.tar.gz godot-4b14c18d1334d65c6b1949dfbb554037448fd59f.tar.zst godot-4b14c18d1334d65c6b1949dfbb554037448fd59f.zip | |
Diffstat (limited to 'platform/x11/joystick_linux.cpp')
| -rw-r--r-- | platform/x11/joystick_linux.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/platform/x11/joystick_linux.cpp b/platform/x11/joystick_linux.cpp index 9a52c4ff3..0615f33f9 100644 --- a/platform/x11/joystick_linux.cpp +++ b/platform/x11/joystick_linux.cpp @@ -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); |
