Message ID | 20250401082950.21698-1-bsdhenrymartin@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v3] backlight: pm8941: Add NULL check in wled_configure() | expand |
On Tue, Apr 01, 2025 at 04:29:50PM +0800, Henry Martin wrote: > 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) Two things have gone wrong here: 1. This patch has been incorrectly posted with the wrong patch number. 2. You've let Markus bully you into adding some pointless text in the patch description ;-). I think the original v3 was better worded. IMHO the bulleted list adds nothing useful. When you get the chance please send a v4 of the patch so we can pick it up without any confusion (I suspect it might be a week or two before this gets pulled so clean mail threads help a lot). It's up to you but I'd recommend keeping the original v3 wording and label it something like: V3 -> V4: No functional changes, just correcting the version number Daniel. > > Fixes: f86b77583d88 ("backlight: pm8941: Convert to using %pOFn instead of device_node.name") > Signed-off-by: Henry Martin <bsdhenrymartin@gmail.com> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@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 >
…
> patch description ;-). I think the original v3 was better worded.
…
Can you find the mentioning of adjustments helpful for better error handling?
Regards,
Markus
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;