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

Commit cd610457 authored by Adam Kropelin's avatar Adam Kropelin Committed by Linus Torvalds
Browse files

[PATCH] hid-core: Zero-pad truncated reports



When it detects a truncated report, hid-core emits a warning and then
processes the report as usual.  This is good because it allows buggy
devices to still get data thru to userspace.  However, the missing bytes of
the report should be cleared before processing, otherwise userspace will be
handed partially-uninitialized data.

This fixes Debian tracker bug #330487.

Signed-off-by: default avatarAdam Kropelin <akropel1@rochester.rr.com>
Cc: Vojtech Pavlik <vojtech@suse.cz>
Acked-by: default avatarDmitry Torokhov <dtor_core@ameritech.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent fb79ffa4
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -893,8 +893,10 @@ static int hid_input_report(int type, struct urb *urb, int interrupt, struct pt_

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

	if (len < size)
	if (len < size) {
		dbg("report %d is too short, (%d < %d)", report->id, len, size);
		memset(data + len, 0, size - len);
	}

	if (hid->claimed & HID_CLAIMED_HIDDEV)
		hiddev_report_event(hid, report);