On Thu, Feb 8, 2018 at 4:59 PM, Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote: > On Wed, Feb 7, 2018 at 3:56 PM, Andy Shevchenko > <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: >> When __acpi_match_device() is called it would be possible to have >> ACPI ID table a MULL pointer. To avoid potential dereference, >> check for this before traverse. >> >> While here, remove redundant 'else'. >> >> Cc: Sinan Kaya <okaya@xxxxxxxxxxxxxx> >> Cc: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> >> Cc: Vinod Koul <vinod.koul@xxxxxxxxx> >> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> >> --- >> drivers/acpi/bus.c | 12 +++++++----- >> 1 file changed, 7 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c >> index 761286e50067..da7e9cf770a6 100644 >> --- a/drivers/acpi/bus.c >> +++ b/drivers/acpi/bus.c >> @@ -752,11 +752,13 @@ static const struct acpi_device_id *__acpi_match_device( >> >> list_for_each_entry(hwid, &device->pnp.ids, list) { >> /* First, check the ACPI/PNP IDs provided by the caller. */ >> - for (id = ids; id->id[0] || id->cls; id++) { >> - if (id->id[0] && !strcmp((char *) id->id, hwid->id)) >> - return id; >> - else if (id->cls && __acpi_match_device_cls(id, hwid)) >> - return id; >> + if (ids) { >> + for (id = ids; id->id[0] || id->cls; id++) { >> + if (id->id[0] && !strcmp((char *)id->id, hwid->id)) >> + return id; >> + if (id->cls && __acpi_match_device_cls(id, hwid)) >> + return id; >> + } >> } >> >> /* >> -- > > The return value below should be updated in *this* patch, because this > is what allows ids to be NULL in the first place. > > And as far as I'm concerned you can do: > > if (!strcmp(ACPI_DT_NAMESPACE_HID, hwid->id) Missing paren, sorry. > return (const struct acpi_device_id > *)acpi_of_match_device(device, of_ids); > > and update the comment accordingly. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html