Import coccinelle test

This is a import of two coccinelle patches that detect problem
on Packet handling. They are run on all commited C files in src
by the script run_check.sh.
remotes/origin/master-1.1.x
Eric Leblond 14 years ago committed by Victor Julien
parent 66a15e2d6d
commit d151314b4d

@ -0,0 +1,15 @@
@directpacket@
identifier p;
typedef Packet;
position p1;
@@
Packet p@p1;
@ script:python @
p1 << directpacket.p1;
@@
print "Invalid Packet definition, explicit allocation must be used at %s:%s" % (p1[0].file, p1[0].line)
import sys
sys.exit(1)

@ -0,0 +1,25 @@
@zeroed@
typedef Packet;
typedef uint8_t;
Packet *p;
position p1;
@@
memset(p@p1, 0, ...);
@isset@
Packet *p;
position zeroed.p1;
@@
memset(p@p1, 0, ...);
... when != p
p->pkt
@script:python depends on !isset@
p1 << zeroed.p1;
@@
print "Packet zeroed at %s:%s but pkt field is not set afterward." % (p1[0].file, p1[0].line)
import sys
sys.exit(1)

@ -0,0 +1,10 @@
#!/bin/sh
for SMPL in *.cocci; do
echo "Testing cocci file: $SMPL"
for FILE in $(git ls-tree -r --name-only --full-tree HEAD src/ | grep -E '*.c$') ; do
spatch -sp_file $SMPL ../../$FILE 2>/dev/null || exit 1;
done
done
exit 0
Loading…
Cancel
Save