mirror of https://github.com/OISF/suricata
coccinelle: add test on malloc error check.
This patch adds a coccinelle code check on SCMalloc, SCCalloc and SCStrdup and other memory handling functions. It verifies that the error checking is made.pull/91/head
parent
9f13572843
commit
28ca36acf7
@ -0,0 +1,44 @@
|
|||||||
|
@malloced@
|
||||||
|
identifier x;
|
||||||
|
position p1;
|
||||||
|
identifier func =~ "(SCMalloc|SCStrdup|SCCalloc|SCMallocAligned|SCRealloc)";
|
||||||
|
@@
|
||||||
|
|
||||||
|
x@p1 = func(...)
|
||||||
|
|
||||||
|
|
||||||
|
@inlinetested@
|
||||||
|
identifier x;
|
||||||
|
position p1;
|
||||||
|
statement S;
|
||||||
|
identifier func =~ "(SCMalloc|SCStrdup|SCCalloc|SCMallocAligned|SCRealloc)";
|
||||||
|
@@
|
||||||
|
|
||||||
|
if ((x@p1 = func(...)) == NULL) S
|
||||||
|
|
||||||
|
@istested@
|
||||||
|
identifier x;
|
||||||
|
position malloced.p1;
|
||||||
|
statement S1, S2;
|
||||||
|
identifier func =~ "(SCMalloc|SCStrdup|SCCalloc|SCMallocAligned|SCRealloc)";
|
||||||
|
@@
|
||||||
|
|
||||||
|
x@p1 = func(...)
|
||||||
|
... when != x
|
||||||
|
(
|
||||||
|
if (unlikely(x == NULL)) S1
|
||||||
|
|
|
||||||
|
if (x == NULL) S1
|
||||||
|
|
|
||||||
|
if (x != NULL) S1 else S2
|
||||||
|
|
|
||||||
|
BUG_ON(x == NULL)
|
||||||
|
)
|
||||||
|
|
||||||
|
@script:python depends on malloced && !istested && !inlinetested @
|
||||||
|
p1 << malloced.p1;
|
||||||
|
@@
|
||||||
|
|
||||||
|
print "Structure malloced at %s:%s but error is not checked." % (p1[0].file, p1[0].line)
|
||||||
|
import sys
|
||||||
|
sys.exit(1)
|
Loading…
Reference in New Issue