perf test: Fix bpf test sample mismatch reporting
[linux-2.6-microblaze.git] / scripts / coccinelle / misc / badty.cocci
1 // SPDX-License-Identifier: GPL-2.0-only
2 /// Correct the size argument to alloc functions
3 ///
4 //# This makes an effort to find cases where the argument to sizeof is wrong
5 //# in memory allocation functions by checking the type of the allocated memory
6 //# when it is a double pointer and ensuring the sizeof argument takes a pointer
7 //# to the the memory being allocated. There are false positives in cases the
8 //# sizeof argument is not used in constructing the return value. The result
9 //# may need some reformatting.
10 //
11 // Confidence: Moderate
12 // Copyright: (C) 2014 Himangi Saraogi.
13 // Comments:
14 // Options:
15
16 virtual patch
17 virtual context
18 virtual org
19 virtual report
20
21 //----------------------------------------------------------
22 //  For context mode
23 //----------------------------------------------------------
24
25 @depends on context disable sizeof_type_expr@
26 type T;
27 T **x;
28 @@
29
30   x =
31   <+...sizeof(
32 * T
33   )...+>
34
35 //----------------------------------------------------------
36 //  For patch mode
37 //----------------------------------------------------------
38
39 @depends on patch disable sizeof_type_expr@
40 type T;
41 T **x;
42 @@
43
44   x =
45   <+...sizeof(
46 - T
47 + *x
48   )...+>
49
50 //----------------------------------------------------------
51 //  For org and report mode
52 //----------------------------------------------------------
53
54 @r depends on (org || report) disable sizeof_type_expr@
55 type T;
56 T **x;
57 position p;
58 @@
59
60   x =
61   <+...sizeof(
62   T@p
63   )...+>
64
65 @script:python depends on org@
66 p << r.p;
67 @@
68
69 coccilib.org.print_todo(p[0], "WARNING sizeof argument should be pointer type, not structure type")
70
71 @script:python depends on report@
72 p << r.p;
73 @@
74
75 msg="WARNING: Use correct pointer type argument for sizeof"
76 coccilib.report.print_report(p[0], msg)
77