* [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* [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* Re: [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer dereference
2010-05-27 12:37 ` Julia Lawall
@ 2010-05-27 16:21 ` Dmitry Torokhov
-1 siblings, 0 replies; 10+ messages in thread
From: Dmitry Torokhov @ 2010-05-27 16:21 UTC (permalink / raw)
To: Julia Lawall
Cc: Mattia Dongili, Matthew Garrett, platform-driver-x86,
linux-kernel, kernel-janitors
On Thursday 27 May 2010 05:37:00 am Julia Lawall wrote:
> 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.
Verbosity should be OK but I think that mixing pr_xxx() and naked printks
in the same patch is not very nice.
>
> 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;
> }
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer dereference
@ 2010-05-27 16:21 ` Dmitry Torokhov
0 siblings, 0 replies; 10+ messages in thread
From: Dmitry Torokhov @ 2010-05-27 16:21 UTC (permalink / raw)
To: Julia Lawall
Cc: Mattia Dongili, Matthew Garrett, platform-driver-x86,
linux-kernel, kernel-janitors
On Thursday 27 May 2010 05:37:00 am Julia Lawall wrote:
> 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.
Verbosity should be OK but I think that mixing pr_xxx() and naked printks
in the same patch is not very nice.
>
> 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;
> }
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer
2010-05-27 16:21 ` Dmitry Torokhov
@ 2010-05-27 16:25 ` Julia Lawall
-1 siblings, 0 replies; 10+ messages in thread
From: Julia Lawall @ 2010-05-27 16:25 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: Mattia Dongili, Matthew Garrett, platform-driver-x86,
linux-kernel, kernel-janitors
On Thu, 27 May 2010, Dmitry Torokhov wrote:
> On Thursday 27 May 2010 05:37:00 am Julia Lawall wrote:
> > 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.
>
> Verbosity should be OK but I think that mixing pr_xxx() and naked printks
> in the same patch is not very nice.
Oops, sorry about that. I will change it.
julia
> > 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;
> > }
>
> Thanks.
>
> --
> Dmitry
>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer dereference
@ 2010-05-27 16:25 ` Julia Lawall
0 siblings, 0 replies; 10+ messages in thread
From: Julia Lawall @ 2010-05-27 16:25 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: Mattia Dongili, Matthew Garrett, platform-driver-x86,
linux-kernel, kernel-janitors
On Thu, 27 May 2010, Dmitry Torokhov wrote:
> On Thursday 27 May 2010 05:37:00 am Julia Lawall wrote:
> > 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.
>
> Verbosity should be OK but I think that mixing pr_xxx() and naked printks
> in the same patch is not very nice.
Oops, sorry about that. I will change it.
julia
> > 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;
> > }
>
> Thanks.
>
> --
> Dmitry
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer
2010-05-27 16:21 ` Dmitry Torokhov
@ 2010-05-27 16:32 ` Julia Lawall
-1 siblings, 0 replies; 10+ messages in thread
From: Julia Lawall @ 2010-05-27 16:32 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: 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>
---
drivers/platform/x86/sony-laptop.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index 1387c5f..a47fd4e 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -1196,9 +1196,13 @@ 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",
- device_enum->type);
+ if (!device_enum) {
+ pr_err("Invalid SN06 return object\n");
+ goto out_no_enum;
+ }
+ if (device_enum->type != ACPI_TYPE_BUFFER) {
+ pr_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* Re: [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer dereference
@ 2010-05-27 16:32 ` Julia Lawall
0 siblings, 0 replies; 10+ messages in thread
From: Julia Lawall @ 2010-05-27 16:32 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: 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>
---
drivers/platform/x86/sony-laptop.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index 1387c5f..a47fd4e 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -1196,9 +1196,13 @@ 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",
- device_enum->type);
+ if (!device_enum) {
+ pr_err("Invalid SN06 return object\n");
+ goto out_no_enum;
+ }
+ if (device_enum->type != ACPI_TYPE_BUFFER) {
+ pr_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* Re: [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer
2010-05-27 16:32 ` [PATCH 9/11] drivers/platform/x86: Eliminate a NULL pointer dereference Julia Lawall
@ 2010-05-28 17:25 ` Matthew Garrett
-1 siblings, 0 replies; 10+ messages in thread
From: Matthew Garrett @ 2010-05-28 17:25 UTC (permalink / raw)
To: Julia Lawall
Cc: Dmitry Torokhov, Mattia Dongili, platform-driver-x86,
linux-kernel, kernel-janitors
Applied this version, thanks.
--
Matthew Garrett | mjg59@srcf.ucam.org
^ permalink raw reply [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.