ioctl cmd, and for example trinity likes to fuzz those bits to create conflicting commands. So instead of relying upon userspace to pass along the correct IN/OUT flags for the ioctl, use the flags as expected by the kernel.
This does have a side-effect that NULL pointers can not be substituted by userspace in place of a struct. This feature was not being used by any driver, but instead exposed all of the command handlers to a user triggerable OOPS.
Reported-by: Tommi Rantala tt.rantala@gmail.com Link: http://lkml.kernel.org/r/CA+ydwtpuBvbwxbt-tdgPUvj1EU7itmCHo_2B3w13HkD5+jWKow... Signed-off-by: Tommi Rantala tt.rantala@gmail.com Signed-off-by: Chris Wilson chris@chris-wilson.co.uk
Applied thanks.
Dave.