]> git.baikalelectronics.ru Git - kernel.git/commit
netfilter 07/09: simplify nf_conntrack_alloc() error handling
authorJulia Lawall <julia@diku.dk>
Mon, 12 Jan 2009 00:06:08 +0000 (00:06 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 13 Jan 2009 05:18:36 +0000 (21:18 -0800)
commitda27df67b1643f36d87b8000f9e2634733476104
tree5f1aeff8208d3ab70c3001fbb32f4d3b6044219a
parent8c52df1635a5a1d31cb5a26301816c2cb71056fe
netfilter 07/09: simplify nf_conntrack_alloc() error handling

nf_conntrack_alloc cannot return NULL, so there is no need to check for
NULL before using the value.  I have also removed the initialization of ct
to NULL in nf_conntrack_alloc, since the value is never used, and since
perhaps it might lead one to think that return ct at the end might return
NULL.

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

// <smpl>
@match exists@
expression x, E;
position p1,p2;
statement S1, S2;
@@

x@p1 = nf_conntrack_alloc(...)
... when != x = E
(
  if (x@p2 == NULL || ...) S1 else S2
|
  if (x@p2 == NULL && ...) S1 else S2
)

@other_match exists@
expression match.x, E1, E2;
position p1!=match.p1,match.p2;
@@

x@p1 = E1
... when != x = E2
x@p2

@ script:python depends on !other_match@
p1 << match.p1;
p2 << match.p2;
@@

print "%s: call to nf_conntrack_alloc %s bad test %s" % (p1[0].file,p1[0].line,p2[0].line)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netfilter/nf_conntrack_core.c
net/netfilter/nf_conntrack_netlink.c