[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221105211151.7094-12-michael.zaidman@gmail.com>
Date: Sat, 5 Nov 2022 23:11:49 +0200
From: Michael Zaidman <michael.zaidman@...il.com>
To: jikos@...nel.org
Cc: linux-kernel@...r.kernel.org, linux-input@...r.kernel.org,
linux-i2c@...r.kernel.org, Enrik.Berkhan@...a.de,
Michael Zaidman <michael.zaidman@...il.com>
Subject: [PATCH v4 11/13] HID: ft260: fix a NULL pointer dereference in ft260_i2c_write
The zero-length passed into the ft260_i2c_write() triggered the
NULL pointer dereference in the debug message on data[0] access.
Since the controller does not support a write of zero length,
let's not allow it.
Before:
$ sudo i2ctransfer -y 13 w0@...1
Killed
After:
$ sudo i2ctransfer -y 13 w0@...1
Error: Sending messages failed: Invalid argument
Reported-by: Enrik Berkhan <Enrik.Berkhan@...a.de>
Signed-off-by: Michael Zaidman <michael.zaidman@...il.com>
---
drivers/hid/hid-ft260.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/hid/hid-ft260.c b/drivers/hid/hid-ft260.c
index ac133980dfe9..b4f180c8750a 100644
--- a/drivers/hid/hid-ft260.c
+++ b/drivers/hid/hid-ft260.c
@@ -409,6 +409,9 @@ static int ft260_i2c_write(struct ft260_device *dev, u8 addr, u8 *data,
struct ft260_i2c_write_request_report *rep =
(struct ft260_i2c_write_request_report *)dev->write_buf;
+ if (len < 1)
+ return -EINVAL;
+
rep->flag = FT260_FLAG_START;
do {
--
2.34.1
Powered by blists - more mailing lists