* drivers/acpi/scan.c: inconsequent NULL handling
@ 2005-03-24 20:41 Adrian Bunk
0 siblings, 0 replies; 2+ messages in thread
From: Adrian Bunk @ 2005-03-24 20:41 UTC (permalink / raw)
To: len.brown-ral2JQCrhuEAvxtiuMwx3w
Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
The Coverity checker found the following:
<-- snip -->
static int
acpi_bus_match (
struct acpi_device *device,
struct acpi_driver *driver)
{
if (driver && driver->ops.match)
return driver->ops.match(device, driver);
return acpi_match_ids(device, driver->ids);
}
<-- snip -->
Either driver can be NULL, in which case the driver->ids is a possible
NULL pointer reference, or it can't, in which case the check whether
it's NULL is superfluous.
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: drivers/acpi/scan.c: inconsequent NULL handling
[not found] <20060106162929.GK12131@stusta.de>
@ 2006-01-06 19:36 ` Alexey Dobriyan
0 siblings, 0 replies; 2+ messages in thread
From: Alexey Dobriyan @ 2006-01-06 19:36 UTC (permalink / raw)
To: Adrian Bunk; +Cc: len.brown, linux-acpi, linux-kernel
On Fri, Jan 06, 2006 at 05:29:29PM +0100, Adrian Bunk wrote:
> static int
> acpi_bus_match (
> struct acpi_device *device,
> struct acpi_driver *driver)
> {
> if (driver && driver->ops.match)
> return driver->ops.match(device, driver);
> return acpi_match_ids(device, driver->ids);
> }
> Either driver can be NULL, in which case the driver->ids is a possible
> NULL pointer reference, or it can't, in which case the check whether
> it's NULL is superfluous.
Follow the mon^Wcall tree.
drivers/acpi/scan.c:478: * acpi_bus_match
drivers/acpi/scan.c:484:acpi_bus_match(struct acpi_device *device, struct acpi_driver *driver)
drivers/acpi/scan.c:564: if (!acpi_bus_match(dev, drv)) {
drivers/acpi/scan.c:682: if (!acpi_bus_match(device, driver)) {
1. acpi_bus_match()
Second arg is passed without changes.
acpi_driver_attach()
acpi_bus_register_driver()
===> if (!driver) <===
return_VALUE(-EINVAL);
spin_lock(&acpi_device_lock);
list_add_tail(&driver->node, &acpi_bus_drivers);
spin_unlock(&acpi_device_lock);
count = acpi_driver_attach(driver);
2. acpi_bus_match()
acpi_bus_find_driver()
atomic_inc(&driver->references);
^^^^^^^^
spin_unlock(&acpi_device_lock);
if (!acpi_bus_match(device, driver)) {
Looks like it can't.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-01-06 19:36 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-24 20:41 drivers/acpi/scan.c: inconsequent NULL handling Adrian Bunk
[not found] <20060106162929.GK12131@stusta.de>
2006-01-06 19:36 ` Alexey Dobriyan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox