lkml.org 
[lkml]   [2019]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 24/90] Input: uinput - add compat ioctl number translation for UI_*_FF_UPLOAD
    Date
    From: Andrey Smirnov <andrew.smirnov@gmail.com>

    commit 7c7da40da1640ce6814dab1e8031b44e19e5a3f6 upstream.

    In the case of compat syscall ioctl numbers for UI_BEGIN_FF_UPLOAD and
    UI_END_FF_UPLOAD need to be adjusted before being passed on
    uinput_ioctl_handler() since code built with -m32 will be passing
    slightly different values. Extend the code already covering
    UI_SET_PHYS to cover UI_BEGIN_FF_UPLOAD and UI_END_FF_UPLOAD as well.

    Reported-by: Pierre-Loup A. Griffais <pgriffais@valvesoftware.com>
    Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/input/misc/uinput.c | 22 ++++++++++++++++++++--
    1 file changed, 20 insertions(+), 2 deletions(-)

    --- a/drivers/input/misc/uinput.c
    +++ b/drivers/input/misc/uinput.c
    @@ -1051,13 +1051,31 @@ static long uinput_ioctl(struct file *fi

    #ifdef CONFIG_COMPAT

    -#define UI_SET_PHYS_COMPAT _IOW(UINPUT_IOCTL_BASE, 108, compat_uptr_t)
    +/*
    + * These IOCTLs change their size and thus their numbers between
    + * 32 and 64 bits.
    + */
    +#define UI_SET_PHYS_COMPAT \
    + _IOW(UINPUT_IOCTL_BASE, 108, compat_uptr_t)
    +#define UI_BEGIN_FF_UPLOAD_COMPAT \
    + _IOWR(UINPUT_IOCTL_BASE, 200, struct uinput_ff_upload_compat)
    +#define UI_END_FF_UPLOAD_COMPAT \
    + _IOW(UINPUT_IOCTL_BASE, 201, struct uinput_ff_upload_compat)

    static long uinput_compat_ioctl(struct file *file,
    unsigned int cmd, unsigned long arg)
    {
    - if (cmd == UI_SET_PHYS_COMPAT)
    + switch (cmd) {
    + case UI_SET_PHYS_COMPAT:
    cmd = UI_SET_PHYS;
    + break;
    + case UI_BEGIN_FF_UPLOAD_COMPAT:
    + cmd = UI_BEGIN_FF_UPLOAD;
    + break;
    + case UI_END_FF_UPLOAD_COMPAT:
    + cmd = UI_END_FF_UPLOAD;
    + break;
    + }

    return uinput_ioctl_handler(file, cmd, arg, compat_ptr(arg));
    }

    \
     
     \ /
      Last update: 2019-06-24 12:04    [W:2.989 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site