All of lore.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; 4+ 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] 4+ messages in thread

* drivers/acpi/scan.c: inconsequent NULL handling
@ 2005-03-24 20:41 ` Adrian Bunk
  0 siblings, 0 replies; 4+ 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] 4+ 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; 4+ 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] 4+ messages in thread

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

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

Thread overview: 4+ 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
2005-03-24 20:41 ` Adrian Bunk
  -- strict thread matches above, loose matches on Subject: below --
2006-01-06 16:29 Adrian Bunk
2006-01-06 19:36 ` Alexey Dobriyan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.