kasprintf() returns a pointer to dynamically allocated memory
which can be NULL upon failure.
Add a null pointer check, and release 'ent' to avoid memory leaks.

Fixes: bfd2f0d49aef ("powerpc/powernv: Get rid of old scom_controller 
abstraction")
Cc: Kunwu Chan <kunwu.c...@hotmail.com>
Signed-off-by: Kunwu Chan <chen...@kylinos.cn>
---
 arch/powerpc/platforms/powernv/opal-xscom.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/powerpc/platforms/powernv/opal-xscom.c 
b/arch/powerpc/platforms/powernv/opal-xscom.c
index 262cd6fac907..748c2b97fa53 100644
--- a/arch/powerpc/platforms/powernv/opal-xscom.c
+++ b/arch/powerpc/platforms/powernv/opal-xscom.c
@@ -165,6 +165,11 @@ static int scom_debug_init_one(struct dentry *root, struct 
device_node *dn,
        ent->chip = chip;
        snprintf(ent->name, 16, "%08x", chip);
        ent->path.data = (void *)kasprintf(GFP_KERNEL, "%pOF", dn);
+       if (!ent->path.data) {
+               kfree(ent);
+               return -ENOMEM;
+       }
+
        ent->path.size = strlen((char *)ent->path.data);
 
        dir = debugfs_create_dir(ent->name, root);
-- 
2.39.2

Reply via email to