public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* drivers/acpi/scan.c: inconsequent NULL handling
@ 2005-03-24 20:41 Adrian Bunk
  0 siblings, 0 replies; 3+ messages in thread
From: Adrian Bunk @ 2005-03-24 20:41 UTC (permalink / raw)
  To: len.brown; +Cc: acpi-devel, linux-kernel

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* drivers/acpi/scan.c: inconsequent NULL handling
@ 2006-01-06 16:29 Adrian Bunk
  2006-01-06 19:36 ` Alexey Dobriyan
  0 siblings, 1 reply; 3+ messages in thread
From: Adrian Bunk @ 2006-01-06 16:29 UTC (permalink / raw)
  To: len.brown; +Cc: acpi-devel, linux-kernel

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: drivers/acpi/scan.c: inconsequent NULL handling
  2006-01-06 16:29 drivers/acpi/scan.c: inconsequent NULL handling Adrian Bunk
@ 2006-01-06 19:36 ` Alexey Dobriyan
  0 siblings, 0 replies; 3+ 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] 3+ messages in thread

end of thread, other threads:[~2006-01-06 19:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-06 16:29 drivers/acpi/scan.c: inconsequent NULL handling Adrian Bunk
2006-01-06 19:36 ` Alexey Dobriyan
  -- strict thread matches above, loose matches on Subject: below --
2005-03-24 20:41 Adrian Bunk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox