]> www.infradead.org Git - users/hch/configfs.git/commitdiff
HID: ft260: fix a NULL pointer dereference in ft260_i2c_write
authorMichael Zaidman <michael.zaidman@gmail.com>
Sat, 5 Nov 2022 21:11:49 +0000 (23:11 +0200)
committerJiri Kosina <jkosina@suse.cz>
Fri, 11 Nov 2022 10:09:36 +0000 (11:09 +0100)
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@0x51
Killed

After:

$ sudo i2ctransfer -y 13 w0@0x51
Error: Sending messages failed: Invalid argument

Reported-by: Enrik Berkhan <Enrik.Berkhan@inka.de>
Signed-off-by: Michael Zaidman <michael.zaidman@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-ft260.c

index ac133980dfe95e537044df5d267e88299043a92c..b4f180c8750a566bfd6d37da5bbd2dd135dfd616 100644 (file)
@@ -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 {