[PATCH] platform/x86: lg-laptop: Fix possible NULL pointer derefence

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Arnd Bergmann <arnd@xxxxxxxx>

When CONFIG_DMI is disabled, dmi_get_system_info() returns a NULL
pointer, which is now caught by a warning:

In function 'strlen',
    inlined from 'acpi_add.part.0' at drivers/platform/x86/lg-laptop.c:658:6:
include/linux/fortify-string.h:25:33: error: argument 1 null where non-null expected [-Werror=nonnull]
   25 | #define __underlying_strlen     __builtin_strlen
      |                                 ^
include/linux/fortify-string.h:60:24: note: in expansion of macro '__underlying_strlen'
   60 |                 return __underlying_strlen(p);
      |                        ^~~~~~~~~~~~~~~~~~~
drivers/platform/x86/lg-laptop.c: In function 'acpi_add.part.0':
include/linux/fortify-string.h:25:33: note: in a call to built-in function '__builtin_strlen'
   25 | #define __underlying_strlen     __builtin_strlen
      |                                 ^
include/linux/fortify-string.h:60:24: note: in expansion of macro '__underlying_strlen'
   60 |                 return __underlying_strlen(p);
      |                        ^~~~~~~~~~~~~~~~~~~

The code in there does not appear essential, so an explicit
NULL check should be sufficient. The string is also printed
to the console, but printk() is able to handle NULL pointer
arguments gracefully.

Fixes: 8983bfd58d61 ("platform/x86: lg-laptop: Support for battery charge limit on newer models")
Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
---
 drivers/platform/x86/lg-laptop.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/platform/x86/lg-laptop.c b/drivers/platform/x86/lg-laptop.c
index 3e520d5bca07..88b551caeaaf 100644
--- a/drivers/platform/x86/lg-laptop.c
+++ b/drivers/platform/x86/lg-laptop.c
@@ -655,7 +655,7 @@ static int acpi_add(struct acpi_device *device)
 		goto out_platform_registered;
 	}
 	product = dmi_get_system_info(DMI_PRODUCT_NAME);
-	if (strlen(product) > 4)
+	if (product && strlen(product) > 4)
 		switch (product[4]) {
 		case '5':
 		case '6':
-- 
2.29.2




[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux