reset: fix null pointer dereference on dev by dev_name
authorColin Ian King <colin.king@canonical.com>
Wed, 14 Nov 2018 21:49:35 +0000 (21:49 +0000)
committerPhilipp Zabel <p.zabel@pengutronix.de>
Mon, 7 Jan 2019 15:38:26 +0000 (16:38 +0100)
The call to dev_name will dereference dev, however, dev is later
being null checked, so there is a possibility of a null pointer
dereference on dev by the call to dev_name. Fix this by null
checking dev first before the call to dev_name

Detected by CoverityScan, CID#1475475 ("Dereference before null check")

Fixes: 2a6cb2b1d83b ("reset: Add reset_control_get_count()")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
drivers/reset/core.c

index bce2d6a..9582efb 100644 (file)
@@ -799,12 +799,13 @@ EXPORT_SYMBOL_GPL(devm_reset_control_array_get);
 static int reset_control_get_count_from_lookup(struct device *dev)
 {
        const struct reset_control_lookup *lookup;
-       const char *dev_id = dev_name(dev);
+       const char *dev_id;
        int count = 0;
 
        if (!dev)
                return -EINVAL;
 
+       dev_id = dev_name(dev);
        mutex_lock(&reset_lookup_mutex);
 
        list_for_each_entry(lookup, &reset_lookup_list, list) {