2009-07-30 14:19:32

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 4/5] net/netlabel: Add kmalloc NULL tests

From: Julia Lawall <[email protected]>

The test on map4 should be a test on map6.

The semantic match that finds this problem is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
expression *x;
identifier f;
constant char *C;
@@

x = \(kmalloc\|kcalloc\|kzalloc\)(...);
... when != x == NULL
when != x != NULL
when != (x || ...)
(
kfree(x)
|
f(...,C,...,x,...)
|
*f(...,x,...)
|
*x->f
)
// </smpl>

Signed-off-by: Julia Lawall <[email protected]>

---
net/netlabel/netlabel_kapi.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c
index 3ff6f32..6ce0020 100644
--- a/net/netlabel/netlabel_kapi.c
+++ b/net/netlabel/netlabel_kapi.c
@@ -151,7 +151,7 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
addr6 = addr;
mask6 = mask;
map6 = kzalloc(sizeof(*map6), GFP_ATOMIC);
- if (map4 == NULL)
+ if (!map6)
goto cfg_unlbl_map_add_failure;
map6->type = NETLBL_NLTYPE_UNLABELED;
ipv6_addr_copy(&map6->list.addr, addr6);


2009-07-30 14:32:29

by Paul Moore

[permalink] [raw]
Subject: Re: [PATCH 4/5] net/netlabel: Add kmalloc NULL tests

On Thursday 30 July 2009 10:10:54 am Julia Lawall wrote:
> From: Julia Lawall <[email protected]>
>
> The test on map4 should be a test on map6.

...

> Signed-off-by: Julia Lawall <[email protected]>
>
> ---
> net/netlabel/netlabel_kapi.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c
> index 3ff6f32..6ce0020 100644
> --- a/net/netlabel/netlabel_kapi.c
> +++ b/net/netlabel/netlabel_kapi.c
> @@ -151,7 +151,7 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
> addr6 = addr;
> mask6 = mask;
> map6 = kzalloc(sizeof(*map6), GFP_ATOMIC);
> - if (map4 == NULL)
> + if (!map6)
> goto cfg_unlbl_map_add_failure;
> map6->type = NETLBL_NLTYPE_UNLABELED;
> ipv6_addr_copy(&map6->list.addr, addr6);

Another good find, although I would suggest changing it to the following to
stay consistent with the rest of the function:

map6 = kzalloc(...);
if (map6 == NULL)
goto ...;

--
paul moore
linux @ hp

2009-07-30 14:36:50

by Julia Lawall

[permalink] [raw]
Subject: Re: [PATCH 4/5] net/netlabel: Add kmalloc NULL tests

On Thu, 30 Jul 2009, Paul Moore wrote:

> On Thursday 30 July 2009 10:10:54 am Julia Lawall wrote:
> > From: Julia Lawall <[email protected]>
> >
> > The test on map4 should be a test on map6.
>
> ...
>
> > Signed-off-by: Julia Lawall <[email protected]>
> >
> > ---
> > net/netlabel/netlabel_kapi.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c
> > index 3ff6f32..6ce0020 100644
> > --- a/net/netlabel/netlabel_kapi.c
> > +++ b/net/netlabel/netlabel_kapi.c
> > @@ -151,7 +151,7 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
> > addr6 = addr;
> > mask6 = mask;
> > map6 = kzalloc(sizeof(*map6), GFP_ATOMIC);
> > - if (map4 == NULL)
> > + if (!map6)
> > goto cfg_unlbl_map_add_failure;
> > map6->type = NETLBL_NLTYPE_UNLABELED;
> > ipv6_addr_copy(&map6->list.addr, addr6);
>
> Another good find, although I would suggest changing it to the following to
> stay consistent with the rest of the function:
>
> map6 = kzalloc(...);
> if (map6 == NULL)
> goto ...;

OK, I hesitated... I'll send a new patch shortly.

julia

2009-07-30 14:38:00

by Paul Moore

[permalink] [raw]
Subject: Re: [PATCH 4/5] net/netlabel: Add kmalloc NULL tests

On Thursday 30 July 2009 10:36:47 am Julia Lawall wrote:
> On Thu, 30 Jul 2009, Paul Moore wrote:
> > On Thursday 30 July 2009 10:10:54 am Julia Lawall wrote:
> > > From: Julia Lawall <[email protected]>
> > >
> > > The test on map4 should be a test on map6.
> >
> > ...
> >
> > > Signed-off-by: Julia Lawall <[email protected]>
> > >
> > > ---
> > > net/netlabel/netlabel_kapi.c | 2 +-
> > > 1 files changed, 1 insertions(+), 1 deletions(-)
> > >
> > > diff --git a/net/netlabel/netlabel_kapi.c
> > > b/net/netlabel/netlabel_kapi.c index 3ff6f32..6ce0020 100644
> > > --- a/net/netlabel/netlabel_kapi.c
> > > +++ b/net/netlabel/netlabel_kapi.c
> > > @@ -151,7 +151,7 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
> > > addr6 = addr;
> > > mask6 = mask;
> > > map6 = kzalloc(sizeof(*map6), GFP_ATOMIC);
> > > - if (map4 == NULL)
> > > + if (!map6)
> > > goto cfg_unlbl_map_add_failure;
> > > map6->type = NETLBL_NLTYPE_UNLABELED;
> > > ipv6_addr_copy(&map6->list.addr, addr6);
> >
> > Another good find, although I would suggest changing it to the following
> > to stay consistent with the rest of the function:
> >
> > map6 = kzalloc(...);
> > if (map6 == NULL)
> > goto ...;
>
> OK, I hesitated... I'll send a new patch shortly.

Great, thank you.

--
paul moore
linux @ hp

2009-07-30 14:38:25

by Julia Lawall

[permalink] [raw]
Subject: Re: [PATCH 4/5] net/netlabel: Add kmalloc NULL tests

From: Julia Lawall <[email protected]>

The test on map4 should be a test on map6.

The semantic match that finds this problem is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
expression *x;
identifier f;
constant char *C;
@@

x = \(kmalloc\|kcalloc\|kzalloc\)(...);
... when != x == NULL
when != x != NULL
when != (x || ...)
(
kfree(x)
|
f(...,C,...,x,...)
|
*f(...,x,...)
|
*x->f
)
// </smpl>

Signed-off-by: Julia Lawall <[email protected]>

---
net/netlabel/netlabel_kapi.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c
index 3ff6f32..6ce0020 100644
--- a/net/netlabel/netlabel_kapi.c
+++ b/net/netlabel/netlabel_kapi.c
@@ -151,7 +151,7 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
addr6 = addr;
mask6 = mask;
map6 = kzalloc(sizeof(*map6), GFP_ATOMIC);
- if (map4 == NULL)
+ if (map6 == NULL)
goto cfg_unlbl_map_add_failure;
map6->type = NETLBL_NLTYPE_UNLABELED;
ipv6_addr_copy(&map6->list.addr, addr6);

2009-07-30 14:53:42

by Paul Moore

[permalink] [raw]
Subject: Re: [PATCH 4/5] net/netlabel: Add kmalloc NULL tests

On Thursday 30 July 2009 10:38:19 am Julia Lawall wrote:
> From: Julia Lawall <[email protected]>
>
> The test on map4 should be a test on map6.
>
> The semantic match that finds this problem is as follows:
> (http://www.emn.fr/x-info/coccinelle/)
>
> // <smpl>
> @@
> expression *x;
> identifier f;
> constant char *C;
> @@
>
> x = \(kmalloc\|kcalloc\|kzalloc\)(...);
> ... when != x == NULL
> when != x != NULL
> when != (x || ...)
> (
> kfree(x)
>
> f(...,C,...,x,...)
>
> *f(...,x,...)
>
> *x->f
> )
> // </smpl>
>
> Signed-off-by: Julia Lawall <[email protected]>

Much better, thank you.

Acked-by: Paul Moore <[email protected]>

> ---
> net/netlabel/netlabel_kapi.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c
> index 3ff6f32..6ce0020 100644
> --- a/net/netlabel/netlabel_kapi.c
> +++ b/net/netlabel/netlabel_kapi.c
> @@ -151,7 +151,7 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
> addr6 = addr;
> mask6 = mask;
> map6 = kzalloc(sizeof(*map6), GFP_ATOMIC);
> - if (map4 == NULL)
> + if (map6 == NULL)
> goto cfg_unlbl_map_add_failure;
> map6->type = NETLBL_NLTYPE_UNLABELED;
> ipv6_addr_copy(&map6->list.addr, addr6);

--
paul moore
linux @ hp

2009-07-30 17:58:55

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 4/5] net/netlabel: Add kmalloc NULL tests

From: Paul Moore <[email protected]>
Date: Thu, 30 Jul 2009 10:53:37 -0400

> On Thursday 30 July 2009 10:38:19 am Julia Lawall wrote:
>> From: Julia Lawall <[email protected]>
>>
>> The test on map4 should be a test on map6.
>>
>> The semantic match that finds this problem is as follows:
>> (http://www.emn.fr/x-info/coccinelle/)
...
>> Signed-off-by: Julia Lawall <[email protected]>
>
> Much better, thank you.
>
> Acked-by: Paul Moore <[email protected]>

Applied, thanks.