evdev: Fix 'Syscall param ioctl(TIOCLINUX) points to uninitialised byte'
https://pastebin.com/raw/tQjG0kG0
parent
77ca0f273c
commit
be005b7c78
|
@ -196,7 +196,8 @@ SDL_EVDEV_kbd_init(void)
|
||||||
{
|
{
|
||||||
SDL_EVDEV_keyboard_state *kbd;
|
SDL_EVDEV_keyboard_state *kbd;
|
||||||
int i;
|
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));
|
kbd = (SDL_EVDEV_keyboard_state *)SDL_calloc(1, sizeof(*kbd));
|
||||||
if (!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) */
|
/* 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);
|
kbd->console_fd = open("/dev/tty", O_RDONLY);
|
||||||
|
|
||||||
shift_state = TIOCL_GETSHIFTSTATE;
|
if (ioctl(kbd->console_fd, TIOCLINUX, shift_state) == 0) {
|
||||||
if (ioctl(kbd->console_fd, TIOCLINUX, &shift_state) == 0) {
|
kbd->shift_state = *shift_state;
|
||||||
kbd->shift_state = shift_state;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ioctl(kbd->console_fd, KDGKBLED, &flag_state) == 0) {
|
if (ioctl(kbd->console_fd, KDGKBLED, &flag_state) == 0) {
|
||||||
|
|
Loading…
Reference in New Issue