• Show log

    Commit

  • Hash : 41be9756
    Author : Sam Lantinga
    Date : 2017-01-05T23:26:13

    Fixed bug 3546 - SDL_EVDEV_is_console() uses type of wrong size when calling ioctl
    
    Rob
    
    When calling ioctl(fd, KDGKBTYPE, &type) in SDL_EVDEV_is_console(), we declare type as an 'int'.  This should be a 'char'.  The subsequent syscall, and kernel code, only writes the lower byte of the word.
    
    See: http://lxr.free-electrons.com/source/drivers/tty/vt/vt_ioctl.c?v=4.4#L399
    
    ucval = KB_101;
    ret = put_user(ucval, (char __user *)arg);
    
    I've observed intermittent behavior related to this, and I can force an error condition by using an int initialized to 0xFFFFFFFF.  The resulting ioctl will set type to 0XFFFFFF02, and the conditional return in SDL_EVDEV_is_console() will fail.
    
    Recommend changing to char, or masking off unused bits.
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/SDL.git
    Git SSH git@git.kmx.io:kc3-lang/SDL.git
    Public access ? public
    Description

    Fork of https://github.com/libsdl-org/SDL

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags