[Bug 51828] New: Simucube 2: All applications using raw HID access to communicate with devices, stopped tracking steering axis movement

WineHQ Bugzilla wine-bugs at winehq.org
Fri Oct 1 15:54:03 CDT 2021


https://bugs.winehq.org/show_bug.cgi?id=51828

            Bug ID: 51828
           Summary: Simucube 2: All applications using raw HID access to
                    communicate with devices, stopped tracking steering
                    axis movement
           Product: Wine
           Version: 6.18
          Hardware: x86-64
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: hid
          Assignee: wine-bugs at winehq.org
          Reporter: logos128 at gmail.com
                CC: rbernon at codeweavers.com
   Regression SHA1: d40d8d968658dca4a75afc97f9e48acda0654b0f
      Distribution: ArchLinux

Created attachment 70716
  --> https://bugs.winehq.org/attachment.cgi?id=70716
0001-hidclass.sys-Fix-input-reports-with-ReportID-being-d.patch

Found out that the dropping of input packets with lengths different than
desc->InputLength, which was introduced with the regression commit is causing
this issue.
Since the Simucube 2 is a HID PID device, it uses multiple HID reports (with
defined ReportIDs), which are different lengths. For such devices
desc->InputLength specifies the biggest possible buffer length, that would fit
any of the input reports. If the most essential input report for tracking the
steering axis movements is smaller than desc->InputLength, it'll be dropped by
that check. Only the reports with the exact same size go through in non polled
mode.
In this case with Simucube 2 the biggest input report is of 61 bytes, and is
vendor defined. All the other input reports are smaller sizes, and will get
dropped.

Attached a patch which fixes the issue. It also fixes possible memory access
error with report->buffer while copying it to irp->AssociatedIrp.SystemBuffer,
due to the internal buffer for hid_report being just report->length which could
be less than or equal to desc->InputLength.
The patch is based to the current master
(aa629c4c7225166f4ee46476d98702df2e142711).

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list