[Bug 218625] [PATCH] Evdev ioctls EVIOCGRAB and EVIOCREVOKE don't work together with cuse

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Apr 13 10:45:01 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=218625

            Bug ID: 218625
           Summary: [PATCH] Evdev ioctls EVIOCGRAB and EVIOCREVOKE don't
                    work together with cuse
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Keywords: patch
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: jan.kokemueller at gmail.com
          Keywords: patch

Created attachment 181752
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=181752&action=edit
patch to change type of EVIOCGRAB and EVIOCREVOKE ioctls to _IO

EVIOCGRAB and EVIOCREVOKE from dev/evdev/input.h are defined as _IOWINT.
Those ioctls don't actually write an integer, though. What matters is the value
of the data pointer. Cuse, however, only passes along the value of the data
pointer when the length of the ioctl is 0 (see
https://github.com/freebsd/freebsd/blob/master/sys/fs/cuse/cuse.c#L1669).

One solution would be to define those two ioctls as _IO (see attached patch).
I've tested this with my cuse-based evdev implementation
(https://github.com/jiixyj/evdevfbsd).

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list