@@ -77,6 +77,7 @@
#define MXT_PROCI_TOUCHSEQUENCELOGGER 93
#define MXT_TOUCH_MULTITOUCHSCREEN_T100 100
#define MXT_PROCI_ACTIVESTYLUS_T107 107
+#define MXT_RPTID_RESERVED 0
/* MXT_GEN_MESSAGE_T5 object */
#define MXT_RPTID_NOMSG 0xff
@@ -1381,6 +1382,11 @@ static int mxt_proc_message(struct mxt_data *data, u8 *message)
u8 report_id = message[0];
bool dump = data->debug_enabled;
+ if (report_id == MXT_RPTID_RESERVED) {
+ dev_err(&data->client->dev,
+ "Received Reserved ReportID 0x00\n");
+ return -EINVAL;
+ }
if (report_id == MXT_RPTID_NOMSG)
return 0;
@@ -1451,6 +1457,8 @@ static int mxt_read_and_process_messages(struct mxt_data *data, u8 count)
ret = mxt_proc_message(data,
data->msg_buf + data->T5_msg_size * i);
+ if (ret < 0)
+ return ret;
if (ret == 1)
num_valid++;
}