HID: uhid: Fix sending events with invalid data
authorVinicius Costa Gomes <vinicius.gomes@openbossa.org>
Sat, 14 Jul 2012 21:59:25 +0000 (18:59 -0300)
committerJiri Kosina <jkosina@suse.cz>
Fri, 20 Jul 2012 07:53:45 +0000 (09:53 +0200)
This was detected because events with invalid types were arriving
to userspace.

The code before this patch would only work for the first event in the
queue (when uhid->tail is 0).

Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@openbossa.org>
Reviewed-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/uhid.c

index 119b7e6..714cd8c 100644 (file)
@@ -465,7 +465,7 @@ try_again:
                goto try_again;
        } else {
                len = min(count, sizeof(**uhid->outq));
-               if (copy_to_user(buffer, &uhid->outq[uhid->tail], len)) {
+               if (copy_to_user(buffer, uhid->outq[uhid->tail], len)) {
                        ret = -EFAULT;
                } else {
                        kfree(uhid->outq[uhid->tail]);