diff options
| -rw-r--r-- | drivers/hid/hid-picolcd_core.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/hid/hid-picolcd_core.c b/drivers/hid/hid-picolcd_core.c index acbb021065ec..020df3c2e8b4 100644 --- a/drivers/hid/hid-picolcd_core.c +++ b/drivers/hid/hid-picolcd_core.c | |||
| @@ -350,6 +350,12 @@ static int picolcd_raw_event(struct hid_device *hdev, | |||
| 350 | if (!data) | 350 | if (!data) |
| 351 | return 1; | 351 | return 1; |
| 352 | 352 | ||
| 353 | if (size > 64) { | ||
| 354 | hid_warn(hdev, "invalid size value (%d) for picolcd raw event\n", | ||
| 355 | size); | ||
| 356 | return 0; | ||
| 357 | } | ||
| 358 | |||
| 353 | if (report->id == REPORT_KEY_STATE) { | 359 | if (report->id == REPORT_KEY_STATE) { |
| 354 | if (data->input_keys) | 360 | if (data->input_keys) |
| 355 | ret = picolcd_raw_keypad(data, report, raw_data+1, size-1); | 361 | ret = picolcd_raw_keypad(data, report, raw_data+1, size-1); |
