Author: mav
Date: Wed May 16 17:51:56 2012
New Revision: 235510
URL: http://svn.freebsd.org/changeset/base/235510

Log:
  HID Report ID is unsigned value, so clear the rest of bits from possible
  sign expansion.

Modified:
  head/lib/libusbhid/parse.c
  head/sys/dev/usb/usb_hid.c

Modified: head/lib/libusbhid/parse.c
==============================================================================
--- head/lib/libusbhid/parse.c  Wed May 16 17:26:14 2012        (r235509)
+++ head/lib/libusbhid/parse.c  Wed May 16 17:51:56 2012        (r235510)
@@ -392,7 +392,7 @@ hid_get_item(hid_data_t s, hid_item_t *h
                                s->loc_size = dval & mask;
                                break;
                        case 8:
-                               hid_switch_rid(s, c, dval);
+                               hid_switch_rid(s, c, dval & mask);
                                break;
                        case 9:
                                /* mask because value is unsigned */

Modified: head/sys/dev/usb/usb_hid.c
==============================================================================
--- head/sys/dev/usb/usb_hid.c  Wed May 16 17:26:14 2012        (r235509)
+++ head/sys/dev/usb/usb_hid.c  Wed May 16 17:51:56 2012        (r235510)
@@ -425,7 +425,7 @@ hid_get_item(struct hid_data *s, struct 
                                s->loc_size = dval & mask;
                                break;
                        case 8:
-                               hid_switch_rid(s, c, dval);
+                               hid_switch_rid(s, c, dval & mask);
                                break;
                        case 9:
                                /* mask because value is unsigned */
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to