Skip to content
Snippets Groups Projects
Commit adeae6a9 authored by Adrian Salido's avatar Adrian Salido Committed by jenkins_ndg
Browse files

HID: i2c-hid: allocate hid buffers for real worst case


The buffer allocation is not currently accounting for an extra byte for
the report id. This can cause an out of bounds access in function
i2c_hid_set_or_send_report() with reportID > 15.

Bug: 33040280
Signed-off-by: default avatarAdrian Salido <salidoa@google.com>
Tracked-On: https://jira01.devtools.intel.com/browse/AW-4805
Change-Id: Ifbad3ae07442b9a6266bb52e0b157ef0bff29573
Reviewed-on: https://android.intel.com/575890


Reviewed-by: default avatarLouis, FabienX <fabienx.louis@intel.com>
Tested-by: default avatarLouis, FabienX <fabienx.louis@intel.com>
Reviewed-by: default avatarDubray, SimonX <simonx.dubray@intel.com>
Reviewed-by: default avatarTasayco Loarte, VictorX <victorx.tasayco.loarte@intel.com>
parent 3f8d34ff
No related branches found
No related tags found
No related merge requests found
......@@ -489,7 +489,8 @@ static int i2c_hid_alloc_buffers(struct i2c_hid *ihid, size_t report_size)
{
/* the worst case is computed from the set_report command with a
* reportID > 15 and the maximum report length */
int args_len = sizeof(__u8) + /* optional ReportID byte */
int args_len = sizeof(__u8) + /* ReportID */
sizeof(__u8) + /* optional ReportID byte */
sizeof(__u16) + /* data register */
sizeof(__u16) + /* size of the report */
report_size; /* report */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment