Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 966922f2 authored by Armando Visconti's avatar Armando Visconti Committed by Jiri Kosina
Browse files

HID: fix a crash in hid_report_raw_event() function.



I'm using a Data Modul EasyTouch USB multitouch controller,
which is issuing a hid report with a size equals to 0. The rsize
value gets set to 536870912 and Linux is crashing in the memset
because the value is too big.

Signed-off-by: default avatarArmando Visconti <armando.visconti@st.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent fdc6807f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1045,6 +1045,9 @@ void hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size,

	rsize = ((report->size - 1) >> 3) + 1;

	if (rsize > HID_MAX_BUFFER_SIZE)
		rsize = HID_MAX_BUFFER_SIZE;

	if (csize < rsize) {
		dbg_hid("report %d is too short, (%d < %d)\n", report->id,
				csize, rsize);