diff --git a/drivers/char/diag/diag_dci.c b/drivers/char/diag/diag_dci.c index 42b8abfc2c89ccab7e860998f0de03107bb9ff77..79b59a50bc25f2dbcc69e62d6923451a78fa030f 100644 --- a/drivers/char/diag/diag_dci.c +++ b/drivers/char/diag/diag_dci.c @@ -828,7 +828,7 @@ static void dci_process_ctrl_status(unsigned char *buf, int len, int token) read_len += sizeof(struct diag_ctrl_dci_status); for (i = 0; i < header->count; i++) { - if (read_len > len) { + if (read_len > (len - 2)) { pr_err("diag: In %s, Invalid length len: %d\n", __func__, len); return;