mfd: syscon: Fix null pointer dereference in of_syscon_register()
authorKunwu Chan <chentao@kylinos.cn>
Mon, 4 Dec 2023 09:24:43 +0000 (17:24 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jan 2024 23:35:49 +0000 (15:35 -0800)
[ Upstream commit 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 <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: Sasha Levin <sashal@kernel.org>
drivers/mfd/syscon.c

index 57b29c3251312bff0d34b6ca3dad1ef19f56c72a..c9550368d9ea5e1aee88170f50b1bf6c04b09d37 100644 (file)
@@ -105,6 +105,10 @@ static struct syscon *of_syscon_register(struct device_node *np, bool check_res)
        }
 
        syscon_config.name = kasprintf(GFP_KERNEL, "%pOFn@%pa", np, &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;