summaryrefslogtreecommitdiffstats
path: root/qa/coccinelle/sz3.cocci
blob: 51459c7be23c13f628683963280374b92d33b532 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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)