| From 56373ff555a8f49fb52edc5efe9fa106782d0e38 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 4 Dec 2023 17:24:43 +0800 |
| Subject: mfd: syscon: Fix null pointer dereference in of_syscon_register() |
| |
| From: Kunwu Chan <chentao@kylinos.cn> |
| |
| [ 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 | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c |
| index bdb2ce7ff03b..6196724ef39b 100644 |
| --- a/drivers/mfd/syscon.c |
| +++ b/drivers/mfd/syscon.c |
| @@ -102,6 +102,10 @@ static struct syscon *of_syscon_register(struct device_node *np, bool check_clk) |
| } |
| |
| 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; |
| -- |
| 2.43.0 |
| |