ACPI: Fix possible null ptr dereference
authordonald.d.dugger@intel.com <donald.d.dugger@intel.com>
Fri, 17 Oct 2008 14:49:50 +0000 (07:49 -0700)
committerLen Brown <len.brown@intel.com>
Wed, 22 Oct 2008 22:01:22 +0000 (18:01 -0400)
Code in `pci_link.c' is calling the internal routine `acpi_ut_evaluate_object'
which is dangerous given that it is passing a NULL pointer when it should
be passing a pointer to a real object.  The patch corrects the issue by
having the code call the external routine `acpi_evaluate_object', which
correctly handles a NULL pointer.

Signed-off-by: Don Dugger <donald.d.dugger@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/pci_link.c

index cf47805..65bf4fa 100644 (file)
@@ -709,7 +709,7 @@ int acpi_pci_link_free_irq(acpi_handle handle)
                          acpi_device_bid(link->device)));
 
        if (link->refcnt == 0) {
-               acpi_ut_evaluate_object(link->device->handle, "_DIS", 0, NULL);
+               acpi_evaluate_object(link->device->handle, "_DIS", NULL, NULL);
        }
        mutex_unlock(&acpi_link_lock);
        return (link->irq.active);
@@ -773,7 +773,7 @@ static int acpi_pci_link_add(struct acpi_device *device)
 
       end:
        /* disable all links -- to be activated on use */
-       acpi_ut_evaluate_object(device->handle, "_DIS", 0, NULL);
+       acpi_evaluate_object(device->handle, "_DIS", NULL, NULL);
        mutex_unlock(&acpi_link_lock);
 
        if (result)