Re: [PATCH] ACPI / PCI: Fix NULL pointer dereference inacpi_get_pci_dev() (rev. 2)

From: Alex Chiang
Date: Wed Oct 14 2009 - 18:42:28 EST


* Rafael J. Wysocki <rjw@xxxxxxx>:
> From: Rafael J. Wysocki <rjw@xxxxxxx>
>
> acpi_get_pci_dev() may be called for a non-PCI device, in which case
> it should return NULL. However, it assumes that every handle it
> finds in the ACPI CA name space, between given device handle and the
> PCI root bridge handle, corresponds to a PCI-to-PCI bridge with an
> existing secondary bus. For this reason, when it finds a struct
> pci_dev object corresponding to one of them, it doesn't check if
> its 'subordinate' field is a valid pointer. This obviously leads to
> a NULL pointer dereference if acpi_get_pci_dev() is called for a
> non-PCI device with a PCI parent which is not a bridge.
>
> To fix this issue make acpi_get_pci_dev() check if pdev->subordinate
> is not NULL for every device it finds on the path between the root
> bridge and the device it's supposed to get to and return NULL if the
> "target" device cannot be found.
>
> Fixes http://bugzilla.kernel.org/show_bug.cgi?id=14129, which is a
> regression from 2.6.30.

Acked-by: Alex Chiang <achiang@xxxxxx>

> Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
> ---
>
> Jesse, Len,
>
> This is a replacement for the original $subject patch (now in the Len's tree
> as commit 5988eaded02e3cca2702f46efc255143468255bd).
>
> The code was correct, but the comment and the changelog were not. Please
> use the one below instead.
>
> Thanks,
> Rafael
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/