* [PATCH] platform/x86: fujitsu-laptop: add NULL check on devm_kzalloc() return value
@ 2017-07-06 22:19 Gustavo A. R. Silva
2017-07-07 0:19 ` Jonathan Woithe
0 siblings, 1 reply; 4+ messages in thread
From: Gustavo A. R. Silva @ 2017-07-06 22:19 UTC (permalink / raw)
To: Jonathan Woithe, Darren Hart, Andy Shevchenko
Cc: platform-driver-x86, linux-kernel, Gustavo A. R. Silva
Check return value from call to devm_kzalloc()
in order to prevent a NULL pointer dereference.
This issue was detected using Coccinelle and the following semantic patch:
@@
expression x;
identifier fld;
@@
* x = devm_kzalloc(...);
... when != x == NULL
x->fld
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
---
drivers/platform/x86/fujitsu-laptop.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c
index c1a8528..593a350 100644
--- a/drivers/platform/x86/fujitsu-laptop.c
+++ b/drivers/platform/x86/fujitsu-laptop.c
@@ -695,6 +695,9 @@ static int acpi_fujitsu_laptop_leds_register(struct acpi_device *device)
if (call_fext_func(device,
FUNC_LEDS, 0x0, 0x0, 0x0) & LOGOLAMP_POWERON) {
led = devm_kzalloc(&device->dev, sizeof(*led), GFP_KERNEL);
+ if (!led)
+ return -ENOMEM;
+
led->name = "fujitsu::logolamp";
led->brightness_set_blocking = logolamp_set;
led->brightness_get = logolamp_get;
@@ -707,6 +710,9 @@ static int acpi_fujitsu_laptop_leds_register(struct acpi_device *device)
FUNC_LEDS, 0x0, 0x0, 0x0) & KEYBOARD_LAMPS) &&
(call_fext_func(device, FUNC_BUTTONS, 0x0, 0x0, 0x0) == 0x0)) {
led = devm_kzalloc(&device->dev, sizeof(*led), GFP_KERNEL);
+ if (!led)
+ return -ENOMEM;
+
led->name = "fujitsu::kblamps";
led->brightness_set_blocking = kblamps_set;
led->brightness_get = kblamps_get;
@@ -723,6 +729,9 @@ static int acpi_fujitsu_laptop_leds_register(struct acpi_device *device)
*/
if (call_fext_func(device, FUNC_BUTTONS, 0x0, 0x0, 0x0) & BIT(24)) {
led = devm_kzalloc(&device->dev, sizeof(*led), GFP_KERNEL);
+ if (!led)
+ return -ENOMEM;
+
led->name = "fujitsu::radio_led";
led->brightness_set_blocking = radio_led_set;
led->brightness_get = radio_led_get;
@@ -741,6 +750,9 @@ static int acpi_fujitsu_laptop_leds_register(struct acpi_device *device)
(call_fext_func(device,
FUNC_LEDS, 0x2, ECO_LED, 0x0) != UNSUPPORTED_CMD)) {
led = devm_kzalloc(&device->dev, sizeof(*led), GFP_KERNEL);
+ if (!led)
+ return -ENOMEM;
+
led->name = "fujitsu::eco_led";
led->brightness_set_blocking = eco_led_set;
led->brightness_get = eco_led_get;
--
2.5.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] platform/x86: fujitsu-laptop: add NULL check on devm_kzalloc() return value
2017-07-06 22:19 [PATCH] platform/x86: fujitsu-laptop: add NULL check on devm_kzalloc() return value Gustavo A. R. Silva
@ 2017-07-07 0:19 ` Jonathan Woithe
2017-07-07 17:02 ` Darren Hart
0 siblings, 1 reply; 4+ messages in thread
From: Jonathan Woithe @ 2017-07-07 0:19 UTC (permalink / raw)
To: Gustavo A. R. Silva
Cc: Darren Hart, Andy Shevchenko, platform-driver-x86, linux-kernel
On Thu, Jul 06, 2017 at 05:19:02PM -0500, Gustavo A. R. Silva wrote:
> Check return value from call to devm_kzalloc()
> in order to prevent a NULL pointer dereference.
>
> This issue was detected using Coccinelle and the following semantic patch:
>
> @@
> expression x;
> identifier fld;
> @@
>
> * x = devm_kzalloc(...);
> ... when != x == NULL
> x->fld
>
> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
These checks should be added in the interest of code correctness.
devm_kzalloc() can fail (even if it's extremely unlikely in practice) so we
should check for this.
Reviewed-by: Jonathan Woithe <jwoithe@just42.net>
> ---
> drivers/platform/x86/fujitsu-laptop.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c
> index c1a8528..593a350 100644
> --- a/drivers/platform/x86/fujitsu-laptop.c
> +++ b/drivers/platform/x86/fujitsu-laptop.c
> @@ -695,6 +695,9 @@ static int acpi_fujitsu_laptop_leds_register(struct acpi_device *device)
> if (call_fext_func(device,
> FUNC_LEDS, 0x0, 0x0, 0x0) & LOGOLAMP_POWERON) {
> led = devm_kzalloc(&device->dev, sizeof(*led), GFP_KERNEL);
> + if (!led)
> + return -ENOMEM;
> +
> led->name = "fujitsu::logolamp";
> led->brightness_set_blocking = logolamp_set;
> led->brightness_get = logolamp_get;
> @@ -707,6 +710,9 @@ static int acpi_fujitsu_laptop_leds_register(struct acpi_device *device)
> FUNC_LEDS, 0x0, 0x0, 0x0) & KEYBOARD_LAMPS) &&
> (call_fext_func(device, FUNC_BUTTONS, 0x0, 0x0, 0x0) == 0x0)) {
> led = devm_kzalloc(&device->dev, sizeof(*led), GFP_KERNEL);
> + if (!led)
> + return -ENOMEM;
> +
> led->name = "fujitsu::kblamps";
> led->brightness_set_blocking = kblamps_set;
> led->brightness_get = kblamps_get;
> @@ -723,6 +729,9 @@ static int acpi_fujitsu_laptop_leds_register(struct acpi_device *device)
> */
> if (call_fext_func(device, FUNC_BUTTONS, 0x0, 0x0, 0x0) & BIT(24)) {
> led = devm_kzalloc(&device->dev, sizeof(*led), GFP_KERNEL);
> + if (!led)
> + return -ENOMEM;
> +
> led->name = "fujitsu::radio_led";
> led->brightness_set_blocking = radio_led_set;
> led->brightness_get = radio_led_get;
> @@ -741,6 +750,9 @@ static int acpi_fujitsu_laptop_leds_register(struct acpi_device *device)
> (call_fext_func(device,
> FUNC_LEDS, 0x2, ECO_LED, 0x0) != UNSUPPORTED_CMD)) {
> led = devm_kzalloc(&device->dev, sizeof(*led), GFP_KERNEL);
> + if (!led)
> + return -ENOMEM;
> +
> led->name = "fujitsu::eco_led";
> led->brightness_set_blocking = eco_led_set;
> led->brightness_get = eco_led_get;
> --
> 2.5.0
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] platform/x86: fujitsu-laptop: add NULL check on devm_kzalloc() return value
2017-07-07 0:19 ` Jonathan Woithe
@ 2017-07-07 17:02 ` Darren Hart
2017-07-10 19:37 ` Gustavo A. R. Silva
0 siblings, 1 reply; 4+ messages in thread
From: Darren Hart @ 2017-07-07 17:02 UTC (permalink / raw)
To: Jonathan Woithe
Cc: Gustavo A. R. Silva, Andy Shevchenko, platform-driver-x86,
linux-kernel
On Fri, Jul 07, 2017 at 09:49:00AM +0930, Jonathan Woithe wrote:
> On Thu, Jul 06, 2017 at 05:19:02PM -0500, Gustavo A. R. Silva wrote:
> > Check return value from call to devm_kzalloc()
> > in order to prevent a NULL pointer dereference.
> >
> > This issue was detected using Coccinelle and the following semantic patch:
> >
> > @@
> > expression x;
> > identifier fld;
> > @@
> >
> > * x = devm_kzalloc(...);
> > ... when != x == NULL
> > x->fld
> >
> > Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
>
> These checks should be added in the interest of code correctness.
> devm_kzalloc() can fail (even if it's extremely unlikely in practice) so we
> should check for this.
>
> Reviewed-by: Jonathan Woithe <jwoithe@just42.net>
Thanks Gustavo and Jonathan,
Queued to testing.
--
Darren Hart
VMware Open Source Technology Center
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] platform/x86: fujitsu-laptop: add NULL check on devm_kzalloc() return value
2017-07-07 17:02 ` Darren Hart
@ 2017-07-10 19:37 ` Gustavo A. R. Silva
0 siblings, 0 replies; 4+ messages in thread
From: Gustavo A. R. Silva @ 2017-07-10 19:37 UTC (permalink / raw)
To: Darren Hart
Cc: Jonathan Woithe, Andy Shevchenko, platform-driver-x86,
linux-kernel
Hi Darren, Jonathan,
Quoting Darren Hart <dvhart@infradead.org>:
> On Fri, Jul 07, 2017 at 09:49:00AM +0930, Jonathan Woithe wrote:
>> On Thu, Jul 06, 2017 at 05:19:02PM -0500, Gustavo A. R. Silva wrote:
>> > Check return value from call to devm_kzalloc()
>> > in order to prevent a NULL pointer dereference.
>> >
>> > This issue was detected using Coccinelle and the following semantic patch:
>> >
>> > @@
>> > expression x;
>> > identifier fld;
>> > @@
>> >
>> > * x = devm_kzalloc(...);
>> > ... when != x == NULL
>> > x->fld
>> >
>> > Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
>>
>> These checks should be added in the interest of code correctness.
>> devm_kzalloc() can fail (even if it's extremely unlikely in practice) so we
>> should check for this.
>>
>> Reviewed-by: Jonathan Woithe <jwoithe@just42.net>
>
> Thanks Gustavo and Jonathan,
>
> Queued to testing.
>
Glad to help. :)
Thanks
--
Gustavo A. R. Silva
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-07-10 19:37 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-06 22:19 [PATCH] platform/x86: fujitsu-laptop: add NULL check on devm_kzalloc() return value Gustavo A. R. Silva
2017-07-07 0:19 ` Jonathan Woithe
2017-07-07 17:02 ` Darren Hart
2017-07-10 19:37 ` Gustavo A. R. Silva
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.