[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