Re: ACPI / scan: Simplify acpi_match_device()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 13, 2015 at 09:59:48PM +0200, Rafael J. Wysocki wrote:
> On Monday, April 13, 2015 10:21:59 PM Dan Carpenter wrote:
> > Hello Rafael J. Wysocki,
> > 
> > The patch e1acdeb0e770: "ACPI / scan: Simplify acpi_match_device()"
> > from Apr 10, 2015, leads to the following static checker warning:
> > 
> > 	drivers/acpi/scan.c:269 acpi_companion_match()
> > 	error: potential NULL dereference 'adev'.
> > 
> > drivers/acpi/scan.c
> >    247  static struct acpi_device *acpi_companion_match(const struct device *dev)
> >    248  {
> >    249          struct acpi_device *adev;
> >    250  
> >    251          adev = ACPI_COMPANION(dev);
> >    252          if (!adev)
> >    253                  return NULL;
> >    254  
> >    255          if (list_empty(&adev->pnp.ids))
> >    256                  return NULL;
> >    257  
> >    258          mutex_lock(&adev->physical_node_lock);
> >    259          if (list_empty(&adev->physical_node_list)) {
> >    260                  adev = NULL;
> >                         ^^^^^^^^^^^
> >    261          } else {
> >    262                  const struct acpi_device_physical_node *node;
> >    263  
> >    264                  node = list_first_entry(&adev->physical_node_list,
> >    265                                          struct acpi_device_physical_node, node);
> >    266                  if (node->dev != dev)
> >    267                          adev = NULL;
> >                                 ^^^^^^^^^^^^
> >    268          }
> >    269          mutex_unlock(&adev->physical_node_lock);
> >                               ^^^^^^
> > Dereference.
> > 
> >    270  
> >    271          return adev;
> >    272  }
> 
> Right, thanks.
> 
> The patch below should fix it.
> 
> ---
> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> Subject: ACPI / scan: Fix NULL pointer dereference in acpi_companion_match()
> 
> Commit e1acdeb0e770 "ACPI / scan: Simplify acpi_match_device()"
> introduced code that may lead to a NULL pointer dereference when
> trying to unlock a mutex.  Fix that.
> 
> Fixes: e1acdeb0e770 "ACPI / scan: Simplify acpi_match_device()"
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
--
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




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux