From fffd72448345b65179205fc54a7922597f4f36f7 Mon Sep 17 00:00:00 2001 From: Kunwu Chan Date: Tue, 9 Apr 2024 03:17:50 +0000 Subject: [PATCH] mfd: syscon: Fix null pointer dereference in of_syscon_register() mainline inclusion from mainline-v6.8-rc1 commit 41673c66b3d0c09915698fec5c13b24336f18dd1 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/I93L7E CVE: CVE-2023-52467 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=41673c66b3d0c09915698fec5c13b24336f18dd1 ---------------------------------------------------------------------- kasprintf() returns a pointer to dynamically allocated memory which can be NULL upon failure. Fixes: e15d7f2b81d2 ("mfd: syscon: Use a unique name with regmap_config") Signed-off-by: Kunwu Chan Reviewed-by: Arnd Bergmann Link: https://lore.kernel.org/r/20231204092443.2462115-1-chentao@kylinos.cn Signed-off-by: Lee Jones Signed-off-by: Chen Ridong (cherry picked from commit ee19a73e1e6c95da57b17e1ee5dc3cf77b92e6f8) --- drivers/mfd/syscon.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c index df5cebb372a5..60f74144a4f8 100644 --- a/drivers/mfd/syscon.c +++ b/drivers/mfd/syscon.c @@ -103,6 +103,10 @@ static struct syscon *of_syscon_register(struct device_node *np, bool check_clk) syscon_config.name = kasprintf(GFP_KERNEL, "%pOFn@%llx", np, (u64)res.start); + if (!syscon_config.name) { + ret = -ENOMEM; + goto err_regmap; + } syscon_config.reg_stride = reg_io_width; syscon_config.val_bits = reg_io_width * 8; syscon_config.max_register = resource_size(&res) - reg_io_width; -- Gitee