linux/drivers/i2c
Andy Shevchenko aa5ae06515 i2c: i801: Fix kernel crash in is_dell_system_with_lis3lv02d()
The commit

  19b07cb4a1 ("i2c: i801: Register optional lis3lv02d I2C device on Dell machines")

introduced a new check in order to enumerate some slave devices on Dell
machines. Though, it brings a regression on machines where DMI vendor is not set.

 BUG: kernel NULL pointer dereference, address: 0000000000000000
 #PF: supervisor read access in kernel mode
 #PF: error_code(0x0000) - not-present page
 PGD 0 P4D 0
 Oops: 0000 [#1] SMP PTI
 CPU: 8 PID: 1 Comm: swapper/0 Not tainted 5.2.0-rc4-next-20190613+ #317
 RIP: 0010:strcmp+0xc/0x20

To fix this crash, check if vendor field is present before accessing to it.

Fixes: 19b07cb4a1 ("i2c: i801: Register optional lis3lv02d I2C device on Dell machines")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2019-06-14 23:24:33 +02:00
..
algos treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
busses i2c: i801: Fix kernel crash in is_dell_system_with_lis3lv02d() 2019-06-14 23:24:33 +02:00
muxes treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
i2c-boardinfo.c i2c: i2c-boardinfo: fix memory leaks on devinfo 2017-11-27 19:14:29 +01:00
i2c-core-acpi.c i2c: acpi: export i2c_acpi_find_adapter_by_handle 2019-06-02 21:56:04 +02:00
i2c-core-base.c i2c: core: add device-managed version of i2c_new_dummy 2019-05-17 19:29:40 +02:00
i2c-core-of.c i2c: of: Try to find an I2C adapter matching the parent 2019-02-05 13:41:49 +01:00
i2c-core-slave.c i2c: remove i2c_lock_adapter and use i2c_lock_bus directly 2018-07-13 00:09:37 +02:00
i2c-core-smbus.c i2c: core: apply 'is_suspended' check for SMBus, too 2019-05-03 16:44:51 +02:00
i2c-core.h i2c: core: apply 'is_suspended' check for SMBus, too 2019-05-03 16:44:51 +02:00
i2c-dev.c i2c: expand minor range when registering chrdev region 2019-02-15 09:53:34 +01:00
i2c-mux.c i2c: mux: populate the new *_atomic callbacks 2019-04-16 13:08:12 +02:00
i2c-slave-eeprom.c i2c: Drop owner assignment from i2c_driver 2015-08-10 08:37:35 +02:00
i2c-smbus.c i2c: i2c-smbus: add of_i2c_setup_smbus_alert 2017-10-28 23:42:47 +02:00
i2c-stub.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile i2c: don't use any __deprecated handling anymore 2018-08-24 17:26:43 +02:00