From: Kunwu Chan chentao@kylinos.cn
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=...
----------------------------------------------------------------------
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 chentao@kylinos.cn Reviewed-by: Arnd Bergmann arnd@arndb.de Link: https://lore.kernel.org/r/20231204092443.2462115-1-chentao@kylinos.cn Signed-off-by: Lee Jones lee@kernel.org Signed-off-by: Chen Ridong chenridong@huawei.com --- 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;