Wireshark-bugs: [Wireshark-bugs] [Bug 10825] New: USB HID report descriptor input elements decod

Date: Fri, 02 Jan 2015 04:56:01 +0000
Bug ID 10825
Summary USB HID report descriptor input elements decoded improperly
Product Wireshark
Version 1.12.2
Hardware x86-64
OS Gentoo
Status UNCONFIRMED
Severity Major
Priority Low
Component Dissection engine (libwireshark)
Assignee [email protected]
Reporter [email protected]

Build Information:
Version 1.12.2 (Git Rev Unknown from unknown)

Copyright 1998-2014 Gerald Combs <[email protected]> and contributors.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (64-bit) with GTK+ 3.12.2, with Cairo 1.12.16, with Pango 1.36.5, with
GLib 2.40.0, with libpcap, with libz 1.2.8, with POSIX capabilities (Linux),
with libnl 3, without SMI, without c-ares, without ADNS, without Lua, without
Python, with GnuTLS 2.12.23, with Gcrypt 1.5.4, without Kerberos, without
GeoIP,
without PortAudio, without AirPcap.

Running on Linux 3.17.7-gentoo, with locale en_CA.UTF-8, with libpcap version
1.6.2, with libz 1.2.8, GnuTLS 2.12.23, Gcrypt 1.5.4.
Intel(R) Core(TM) i7 CPU       Q 720  @ 1.60GHz

Built using gcc 4.8.3.

Wireshark is Open Source Software released under the GNU General Public
License.

Check the man page and http://www.wireshark.org for more information.
--
The bits in an Input main item (excluding the item header) in a USB HID report
descriptor are interpreted as if they were all exactly inverted. As an example,
the two bytes 0x81 0x02 (found in my mouse) decode as follows in Wireshark:

Main item (Input)
Header
  .... ..01 = bSize: 1 byte (1)
  .... 00.. = bType: Main (0)
  1000 .... = bTag: Input (0x08)
.... .... 0 = Data/constant: Constant
.... ...1 . = Data type: Array
.... ..0. . = Coordinates: Relative
.... .0.. . = Min/max wraparound: Wrap
.... 0... . = Physical relationship to data: Nonlinear
...0 .... . = Preferred state: No preferred state
..0. .... . = Has null position: Null state
.0.. .... . = [Reserved]: False
Bits or bytes: Buffered bytes (default, no second byte present)

In actual fact, according to both the HID class specification and also basic
common sense, these bytes mean the exact opposite: an input main item of type
Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position,
Bit Field.


You are receiving this mail because:
  • You are watching all bug changes.