sony-laptop: potential null dereference
PATCH 4/4 sony-laptop: potential null dereference
In the original code, if "device_enum" was NULL then it would dereference it when it printed the error message.
drivers/platform/x86/sony-laptop.c +5 -1
@@ -1311,7 +1311,11 @@ static void sony_nc_rfkill_setup(struct acpi_device *device) } device_enum = (union acpi_object *) buffer.pointer; -if (!device_enum || device_enum->type !=ACPI_TYPE_BUFFER ) { +if (!device_enum) { +pr_err (DRV_PFX "Invalid SN06 return object." ); + goto out_no_enum; + } +if (device_enum->type !=ACPI_TYPE_BUFFER ) {pr_err (DRV_PFX "Invalid SN06 return object 0x%.2x\n" , device_enum->type); goto out_no_enum;
Mattia Dongili
maintainerQuoted 2 lines · Dan Carpenter
In the original code, if "
device_enum" was NULL then it would dereference it when it printed the error message.
Yup, this and the others are actual bugs, thanks for reviewing the code.
drivers/platform/x86/sony-laptop.c static void sony_nc_rfkill_setup(struct acpi_device *device) · line 1315
Quoted 13 lines
Signed-off-by Dan Carpenter <[email protected]>drivers/platform/x86/sony-laptop.c +2
-1@@ -1311,7 +1311,11 @@ static void sony_nc_rfkill_setup(struct acpi_device *device) } device_enum = (union acpi_object *) buffer.pointer; -if (!device_enum || device_enum->type !=ACPI_TYPE_BUFFER ) { +if (!device_enum) { +pr_err (DRV_PFX "Invalid SN06 return object." );
Just a nitpick but I'd say there was no return object at all. ;)
Signature · 2 lines
mattia :wq!
PATCH v2 4/4 sony-laptop: potential null dereference
In the original code, if "device_enum" was NULL then it would dereference it when it printed the error message.
---
v2: Fixed the error message.
drivers/platform/x86/sony-laptop.c +5 -1
@@ -1311,7 +1311,11 @@ static void sony_nc_rfkill_setup(struct acpi_device *device) } device_enum = (union acpi_object *) buffer.pointer; -if (!device_enum || device_enum->type !=ACPI_TYPE_BUFFER ) { +if (!device_enum) { +pr_err (DRV_PFX "No SN06 return object." ); + goto out_no_enum; + } +if (device_enum->type !=ACPI_TYPE_BUFFER ) {pr_err (DRV_PFX "Invalid SN06 return object 0x%.2x\n" , device_enum->type); goto out_no_enum;
Hi Matthew,
could you pick this and the other 3 up for next?
Thanks!
Quoted 4 lines · Dan Carpenter
In the original code, if "
device_enum" was NULL then it would dereference it when it printed the error message.Signed-off-by Dan Carpenter <[email protected]>
Quoted 21 lines
---
v2: Fixed the error message.drivers/platform/x86/sony-laptop.c +5
-1@@ -1311,7 +1311,11 @@ static void sony_nc_rfkill_setup(struct acpi_device *device) } device_enum = (union acpi_object *) buffer.pointer; -if (!device_enum || device_enum->type !=ACPI_TYPE_BUFFER ) { +if (!device_enum) { +pr_err (DRV_PFX "No SN06 return object." ); + goto out_no_enum; + } +if (device_enum->type !=ACPI_TYPE_BUFFER ) {pr_err (DRV_PFX "Invalid SN06 return object 0x%.2x\n" , device_enum->type); goto out_no_enum;
Signature · 2 lines
mattia :wq!