The function wled_configure() uses devm_kasprintf() without checking for allocation failures, which could lead to NULL pointer dereferences.
Add proper error handling when devm_kasprintf() fails by: - Returning -ENOMEM immediately - Ensuring no resources are left allocated (none need cleanup in this case) Fixes: f86b77583d88 ("backlight: pm8941: Convert to using %pOFn instead of device_node.name") Signed-off-by: Henry Martin <bsdhenrymar...@gmail.com> Reviewed-by: Dmitry Baryshkov <dmitry.barysh...@oss.qualcomm.com> --- V2 -> V3: Fix commit message and verify proper error handling with resource cleanup. V1 -> V2: Fix commit message to use imperative mood and wrap lines to 75 characters. drivers/video/backlight/qcom-wled.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c index 9afe701b2a1b..a63bb42c8f8b 100644 --- a/drivers/video/backlight/qcom-wled.c +++ b/drivers/video/backlight/qcom-wled.c @@ -1406,9 +1406,11 @@ static int wled_configure(struct wled *wled) wled->ctrl_addr = be32_to_cpu(*prop_addr); rc = of_property_read_string(dev->of_node, "label", &wled->name); - if (rc) + if (rc) { wled->name = devm_kasprintf(dev, GFP_KERNEL, "%pOFn", dev->of_node); - + if (!wled->name) + return -ENOMEM; + } switch (wled->version) { case 3: u32_opts = wled3_opts; -- 2.34.1