Message ID | 20250331091245.6668-1-bsdhenrymartin@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | backlight: qcom-wled: Add NULL check in the wled_configure | expand |
On Mon, Mar 31, 2025 at 05:12:45PM +0800, Henry Martin wrote: > When devm_kasprintf() fails, it returns a NULL pointer. However, this return value is not properly checked in the function wled_configure. > > A NULL check should be added after the devm_kasprintf call to prevent potential NULL pointer dereference error. > > Fixes: f86b77583d88c ("backlight: pm8941: Convert to using %pOFn instead of device_node.name") > > Signed-off-by: Henry Martin <bsdhenrymartin@gmail.com> > --- > drivers/video/backlight/qcom-wled.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c > index 9afe701b2a1b..db5eda8ec37e 100644 > --- a/drivers/video/backlight/qcom-wled.c > +++ b/drivers/video/backlight/qcom-wled.c > @@ -1406,8 +1406,14 @@ 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) { > + dev_err(dev, "Failed to allocate memory for wled name\n"); > + return -ENOMEM; > + } > + } > + No objections to the check but I don't think it needs a dev_err(). It is a waste of .text to store a string that is likely never to be printed. Daniel.
> When devm_kasprintf() fails, it returns a NULL pointer. However, this return value is not properly checked in the function wled_configure. > > A NULL check should be added after the devm_kasprintf call to prevent potential NULL pointer dereference error. * Please adhere to word wrapping preferences around 75 characters per text line. * How do you think about to choose the imperative mood for an improved change description? https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.14#n94 … > +++ b/drivers/video/backlight/qcom-wled.c > @@ -1406,8 +1406,14 @@ 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) { > + dev_err(dev, "Failed to allocate memory for wled name\n"); > + return -ENOMEM; > + } > + } … An extra error messages for a failed memory allocation may occasionally be omitted. Regards, Markus
diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c index 9afe701b2a1b..db5eda8ec37e 100644 --- a/drivers/video/backlight/qcom-wled.c +++ b/drivers/video/backlight/qcom-wled.c @@ -1406,8 +1406,14 @@ 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) { + dev_err(dev, "Failed to allocate memory for wled name\n"); + return -ENOMEM; + } + } + switch (wled->version) { case 3:
When devm_kasprintf() fails, it returns a NULL pointer. However, this return value is not properly checked in the function wled_configure. A NULL check should be added after the devm_kasprintf call to prevent potential NULL pointer dereference error. Fixes: f86b77583d88c ("backlight: pm8941: Convert to using %pOFn instead of device_node.name") Signed-off-by: Henry Martin <bsdhenrymartin@gmail.com> --- drivers/video/backlight/qcom-wled.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)