From be005b7c7874b8e710669ddd0e2ec9b1b7aad544 Mon Sep 17 00:00:00 2001 From: Brandon Schaefer Date: Fri, 28 Jul 2017 12:00:10 -0700 Subject: [PATCH] evdev: Fix 'Syscall param ioctl(TIOCLINUX) points to uninitialised byte' https://pastebin.com/raw/tQjG0kG0 --- src/core/linux/SDL_evdev_kbd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/linux/SDL_evdev_kbd.c b/src/core/linux/SDL_evdev_kbd.c index c02df66645332..9c63ab72ac0dd 100644 --- a/src/core/linux/SDL_evdev_kbd.c +++ b/src/core/linux/SDL_evdev_kbd.c @@ -196,7 +196,8 @@ SDL_EVDEV_kbd_init(void) { SDL_EVDEV_keyboard_state *kbd; int i; - char shift_state, flag_state; + char flag_state; + char shift_state[2] = {TIOCL_GETSHIFTSTATE, 0}; kbd = (SDL_EVDEV_keyboard_state *)SDL_calloc(1, sizeof(*kbd)); if (!kbd) { @@ -208,9 +209,8 @@ SDL_EVDEV_kbd_init(void) /* This might fail if we're not connected to a tty (e.g. on the Steam Link) */ kbd->console_fd = open("/dev/tty", O_RDONLY); - shift_state = TIOCL_GETSHIFTSTATE; - if (ioctl(kbd->console_fd, TIOCLINUX, &shift_state) == 0) { - kbd->shift_state = shift_state; + if (ioctl(kbd->console_fd, TIOCLINUX, shift_state) == 0) { + kbd->shift_state = *shift_state; } if (ioctl(kbd->console_fd, KDGKBLED, &flag_state) == 0) {