bus: arm-ccn: Check memory allocation failure
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 27 Aug 2017 10:06:50 +0000 (11:06 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Dec 2017 08:53:03 +0000 (09:53 +0100)
commit 24771179c5c138f0ea3ef88b7972979f62f2d5db upstream.

Check memory allocation failures and return -ENOMEM in such cases

This avoids a potential NULL pointer dereference.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/bus/arm-ccn.c

index e8c6946..be4bdea 100644 (file)
@@ -1271,6 +1271,10 @@ static int arm_ccn_pmu_init(struct arm_ccn *ccn)
                int len = snprintf(NULL, 0, "ccn_%d", ccn->dt.id);
 
                name = devm_kzalloc(ccn->dev, len + 1, GFP_KERNEL);
+               if (!name) {
+                       err = -ENOMEM;
+                       goto error_choose_name;
+               }
                snprintf(name, len + 1, "ccn_%d", ccn->dt.id);
        }
 
@@ -1318,6 +1322,7 @@ static int arm_ccn_pmu_init(struct arm_ccn *ccn)
 
 error_pmu_register:
 error_set_affinity:
+error_choose_name:
        ida_simple_remove(&arm_ccn_pmu_ida, ccn->dt.id);
        for (i = 0; i < ccn->num_xps; i++)
                writel(0, ccn->xp[i].base + CCN_XP_DT_CONTROL);