summaryrefslogtreecommitdiffstats
path: root/qa/coccinelle/sz3.cocci
diff options
context:
space:
mode:
Diffstat (limited to 'qa/coccinelle/sz3.cocci')
-rw-r--r--qa/coccinelle/sz3.cocci48
1 files changed, 48 insertions, 0 deletions
diff --git a/qa/coccinelle/sz3.cocci b/qa/coccinelle/sz3.cocci
new file mode 100644
index 0000000..51459c7
--- /dev/null
+++ b/qa/coccinelle/sz3.cocci
@@ -0,0 +1,48 @@
+//
+// Take size of pointed value, not pointer
+//
+// Target: Linux, Generic
+// Copyright: 2012 - LIP6/INRIA
+// License: Licensed under GPLv2 or any later version.
+// Author: Julia Lawall <Julia.Lawall@lip6.fr>
+// URL: http://coccinelle.lip6.fr/
+// URL: http://coccinellery.org/
+// Modified by Eric Leblond <eric@regit.org> for suricata test system
+
+@preuse@
+expression *e;
+type T;
+identifier f;
+position p1;
+@@
+
+f(...,
+sizeof(e@p1)
+,...,(T)e,...)
+
+@ script:python @
+p1 << preuse.p1;
+@@
+
+print("Size of pointed value not pointer used at %s:%s" % (p1[0].file, p1[0].line))
+import sys
+sys.exit(1)
+
+@postuse@
+expression *e;
+type T;
+identifier f;
+position p1;
+@@
+
+f(...,(T)e,...,
+sizeof(e@p1)
+,...)
+
+@ script:python @
+p1 << postuse.p1;
+@@
+
+print("Size of pointed value not pointer used at %s:%s" % (p1[0].file, p1[0].line))
+import sys
+sys.exit(1)