From 8879b125d26e8db1a5633de5a9c692eb2d1c4f83 Mon Sep 17 00:00:00 2001 From: Ashlee Young Date: Wed, 9 Sep 2015 22:21:41 -0700 Subject: suricata checkin based on commit id a4bce14770beee46a537eda3c3f6e8e8565d5d0a Change-Id: I9a214fa0ee95e58fc640e50bd604dac7f42db48f --- .../qa/coccinelle/malloc-error-check.cocci | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 framework/src/suricata/qa/coccinelle/malloc-error-check.cocci (limited to 'framework/src/suricata/qa/coccinelle/malloc-error-check.cocci') diff --git a/framework/src/suricata/qa/coccinelle/malloc-error-check.cocci b/framework/src/suricata/qa/coccinelle/malloc-error-check.cocci new file mode 100644 index 00000000..b245189a --- /dev/null +++ b/framework/src/suricata/qa/coccinelle/malloc-error-check.cocci @@ -0,0 +1,63 @@ +@malloced@ +expression x; +position p1; +identifier func =~ "(SCMalloc|SCStrdup|SCCalloc|SCMallocAligned|SCRealloc)"; +@@ + +x@p1 = func(...) + +@inlinetested@ +expression x, E; +statement S; +position malloced.p1; +identifier func =~ "(SCMalloc|SCStrdup|SCCalloc|SCMallocAligned|SCRealloc)"; +@@ + +( +if ((x@p1 = func(...)) == NULL) S +| +if (E && (x@p1 = func(...)) == NULL) S +) + +@realloc exists@ +position malloced.p1; +expression x, E1; +identifier func =~ "(SCMalloc|SCCalloc|SCMallocAligned)"; +@@ + +x@p1 = func(...) +... when != x +x = SCRealloc(x, E1) + +@istested depends on !realloc exists@ +expression x, E1; +position malloced.p1; +statement S1, S2; +identifier func =~ "(SCMalloc|SCStrdup|SCCalloc|SCMallocAligned|SCRealloc)"; +@@ + +x@p1 = func(...) +... when != x +( +if (unlikely(x == NULL)) S1 +| +if (unlikely(x == NULL)) S1 else S2 +| +if (likely(x != NULL)) S1 +| +if (x == NULL) S1 +| +if (x != NULL) S1 else S2 +| +if (x && E1) S1 +| +BUG_ON(x == NULL) +) + + +@script:python depends on !realloc && !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) -- cgit 1.2.3-korg