Commit 70785847 authored by Kunwu Chan's avatar Kunwu Chan Committed by Cai Xinchen
Browse files

powerpc/powernv: Add a null pointer check to scom_debug_init_one()

stable inclusion
from stable-v5.10.209
commit 1eefa93faf69188540b08b024794fa90b1d82e8b
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I9Q9HJ
CVE: CVE-2023-52690

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.10.y&id=1eefa93faf69188540b08b024794fa90b1d82e8b



--------------------------------

[ Upstream commit 9a260f2dd827bbc82cc60eb4f4d8c22707d80742 ]

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: bfd2f0d4 ("powerpc/powernv: Get rid of old scom_controller abstraction")
Signed-off-by: default avatarKunwu Chan <chentao@kylinos.cn>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20231208085937.107210-1-chentao@kylinos.cn


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarCai Xinchen <caixinchen1@huawei.com>
parent 55b1bcbb
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -165,6 +165,11 @@ static int scom_debug_init_one(struct dentry *root, struct device_node *dn,
	ent->chip = chip;
	ent->chip = chip;
	snprintf(ent->name, 16, "%08x", chip);
	snprintf(ent->name, 16, "%08x", chip);
	ent->path.data = (void *)kasprintf(GFP_KERNEL, "%pOF", dn);
	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);
	ent->path.size = strlen((char *)ent->path.data);


	dir = debugfs_create_dir(ent->name, root);
	dir = debugfs_create_dir(ent->name, root);