mirror of https://github.com/OISF/suricata
coccinelle: add siginit test
Add a test that check an inversion during keyword setup where we add a sigmatch to a signature and then do error handling on it. This was causing a double free of some elements and ultimately a segfault. Proposed-by: Victor Julien <victor@inliniac.net>pull/2242/head
parent
17e70483c5
commit
4324805478
@ -0,0 +1,26 @@
|
|||||||
|
@siginit@
|
||||||
|
identifier func =~ "Detect.*Setup";
|
||||||
|
expression E1;
|
||||||
|
position p1;
|
||||||
|
identifier de_ctx, s, str, error;
|
||||||
|
type DetectEngineCtx, Signature;
|
||||||
|
@@
|
||||||
|
|
||||||
|
func(DetectEngineCtx *de_ctx, Signature *s, char *str) {
|
||||||
|
...
|
||||||
|
SigMatchAppendSMToList(s, ...)@p1;
|
||||||
|
...
|
||||||
|
if (s->alproto != E1 && ...) {
|
||||||
|
...
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@script:python@
|
||||||
|
p1 << siginit.p1;
|
||||||
|
@@
|
||||||
|
print "SigMatch added at %s:%s but error handling can cause it to be freed later." % (p1[0].file, p1[0].line)
|
||||||
|
import sys
|
||||||
|
sys.exit(1)
|
Loading…
Reference in New Issue