net: marvell: fix a missing check of acpi_match_device
authorKangjie Lu <kjlu@umn.edu>
Wed, 26 Dec 2018 06:31:08 +0000 (00:31 -0600)
committerDavid S. Miller <davem@davemloft.net>
Fri, 28 Dec 2018 00:26:55 +0000 (16:26 -0800)
When acpi_match_device fails, its return value is NULL. Directly using
the return value without a check may result in a NULL-pointer
dereference. The fix checks if acpi_match_device fails, and if so,
returns -EINVAL.

Signed-off-by: Kangjie Lu <kjlu@umn.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c

index f1dab0b55769974a193684182e12a499fee9706e..c9444346475bfd9c24c0c590facfa2ae60ed16f9 100644 (file)
@@ -5255,6 +5255,8 @@ static int mvpp2_probe(struct platform_device *pdev)
        if (has_acpi_companion(&pdev->dev)) {
                acpi_id = acpi_match_device(pdev->dev.driver->acpi_match_table,
                                            &pdev->dev);
+               if (!acpi_id)
+                       return -EINVAL;
                priv->hw_version = (unsigned long)acpi_id->driver_data;
        } else {
                priv->hw_version =