All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer dereference
@ 2010-05-27 12:37 ` Julia Lawall
  0 siblings, 0 replies; 10+ messages in thread
From: Julia Lawall @ 2010-05-27 12:37 UTC (permalink / raw)
  To: Mattia Dongili, Matthew Garrett, platform-driver-x86,
	linux-kernel, kernel-janitors

From: Julia Lawall <julia@diku.dk>

Give different error messages if device_enum is NULL or if its type field
has the wrong value.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@r exists@
expression E,E1;
identifier f;
statement S1,S2,S3;
@@

if ((E = NULL && ...) || ...)
{
  ... when != if (...) S1 else S2
      when != E = E1
* E->f
  ... when any
  return ...;
}
else S3
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>

---
This may be too much clutter for little benefit.  Other, perhaps less
informative solutions are possible.

 drivers/platform/x86/sony-laptop.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index 1387c5f..9db8d2b 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -1196,8 +1196,12 @@ 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) {
-		printk(KERN_ERR "Invalid SN06 return object 0x%.2x\n",
+	if (!device_enum) {
+		pr_err("Invalid SN06 return object\n");
+		goto out_no_enum;
+	}
+	if (device_enum->type != ACPI_TYPE_BUFFER) {
+		printk(KERN_ERR "Invalid SN06 return object type 0x%.2x\n",
 				device_enum->type);
 		goto out_no_enum;
 	}

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2010-05-28 17:25 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-27 12:37 [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer dereference Julia Lawall
2010-05-27 12:37 ` Julia Lawall
2010-05-27 16:21 ` Dmitry Torokhov
2010-05-27 16:21   ` Dmitry Torokhov
2010-05-27 16:25   ` [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer Julia Lawall
2010-05-27 16:25     ` [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer dereference Julia Lawall
2010-05-27 16:32   ` [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer Julia Lawall
2010-05-27 16:32     ` [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer dereference Julia Lawall
2010-05-28 17:25     ` [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer Matthew Garrett
2010-05-28 17:25       ` [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer dereference Matthew Garrett

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.