[PATCH] interconnect: samsung: Add NULL check in exynos_generic_icc_probe

Charles Han posted 1 patch 10 months ago
drivers/interconnect/samsung/exynos.c | 5 +++++
1 file changed, 5 insertions(+)
[PATCH] interconnect: samsung: Add NULL check in exynos_generic_icc_probe
Posted by Charles Han 10 months ago
devm_kasprintf() can return a NULL pointer on failure,but this
returned value in exynos_generic_icc_probe() is not checked.
Add NULL check in exynos_generic_icc_probe(), to handle kernel NULL
pointer dereference error.

Fixes: 2f95b9d5cf0b ("interconnect: Add generic interconnect driver for Exynos SoCs")
Signed-off-by: Charles Han <hanchunchao@inspur.com>
---
 drivers/interconnect/samsung/exynos.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/interconnect/samsung/exynos.c b/drivers/interconnect/samsung/exynos.c
index 9e041365d909..f3568f0d92d1 100644
--- a/drivers/interconnect/samsung/exynos.c
+++ b/drivers/interconnect/samsung/exynos.c
@@ -134,6 +134,11 @@ static int exynos_generic_icc_probe(struct platform_device *pdev)
 	priv->node = icc_node;
 	icc_node->name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%pOFn",
 					bus_dev->of_node);
+	if (!icc_node->name) {
+		devm_kfree(&pdev->dev, priv);
+		return -ENOMEM;
+	}
+
 	if (of_property_read_u32(bus_dev->of_node, "samsung,data-clock-ratio",
 				 &priv->bus_clk_ratio))
 		priv->bus_clk_ratio = EXYNOS_ICC_DEFAULT_BUS_CLK_RATIO;
-- 
2.43.0
Re: [PATCH] interconnect: samsung: Add NULL check in exynos_generic_icc_probe
Posted by Krzysztof Kozlowski 10 months ago
On 10/04/2025 13:04, Charles Han wrote:
> devm_kasprintf() can return a NULL pointer on failure,but this
> returned value in exynos_generic_icc_probe() is not checked.
> Add NULL check in exynos_generic_icc_probe(), to handle kernel NULL
> pointer dereference error.
> 
> Fixes: 2f95b9d5cf0b ("interconnect: Add generic interconnect driver for Exynos SoCs")
> Signed-off-by: Charles Han <hanchunchao@inspur.com>
> ---
>  drivers/interconnect/samsung/exynos.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/interconnect/samsung/exynos.c b/drivers/interconnect/samsung/exynos.c
> index 9e041365d909..f3568f0d92d1 100644
> --- a/drivers/interconnect/samsung/exynos.c
> +++ b/drivers/interconnect/samsung/exynos.c
> @@ -134,6 +134,11 @@ static int exynos_generic_icc_probe(struct platform_device *pdev)
>  	priv->node = icc_node;
>  	icc_node->name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%pOFn",
>  					bus_dev->of_node);
> +	if (!icc_node->name) {
> +		devm_kfree(&pdev->dev, priv);

Instead of doing some scripting changes you need to look at the code.
Look at other error paths, how they are doing it.

Otherwise please explain why you need to release a managed resource?

Best regards,
Krzysztof