mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
iio: adc: ad7606: reject devices without match data
SPI driver_override allows a device to bind to this driver without matching either the OF or SPI device ID table. In that case, spi_get_device_match_data() returns NULL. ad7606_spi_probe() dereferences the returned bus information to pass the chip information and bus operations to the core, causing a NULL pointer dereference. Commit572a008526("iio: dac: ad5686: missing NULL check on match data") fixed the same driver_override issue in another SPI driver. Reject devices without match data before entering the core. Fixes:bc69e9fffd("iio: adc: ad7606: Add compatibility to fw_nodes") Cc: stable@vger.kernel.org Signed-off-by: Jiale Yao <yaojiale02@163.com> Signed-off-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
This commit is contained in:
parent
7f7a119a37
commit
7830650d52
|
|
@ -456,7 +456,11 @@ static const struct ad7606_bus_info ad7616_bus_info = {
|
|||
|
||||
static int ad7606_spi_probe(struct spi_device *spi)
|
||||
{
|
||||
const struct ad7606_bus_info *bus_info = spi_get_device_match_data(spi);
|
||||
const struct ad7606_bus_info *bus_info;
|
||||
|
||||
bus_info = spi_get_device_match_data(spi);
|
||||
if (!bus_info)
|
||||
return -ENODATA;
|
||||
|
||||
return ad7606_probe(&spi->dev, spi->irq, NULL,
|
||||
bus_info->chip_info, bus_info->bops);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user