treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 505
[linux-2.6-microblaze.git] / scripts / coccinelle / misc / cstptr.cocci
1 // SPDX-License-Identifier: GPL-2.0-only
2 /// PTR_ERR should be applied before its argument is reassigned, typically
3 /// to NULL
4 ///
5 // Confidence: High
6 // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
7 // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
8 // URL: http://coccinelle.lip6.fr/
9 // Comments:
10 // Options: --no-includes --include-headers
11
12 virtual org
13 virtual report
14 virtual context
15
16 @r exists@
17 expression e,e1;
18 constant c;
19 position p1,p2;
20 @@
21
22 *e@p1 = c
23 ... when != e = e1
24     when != &e
25     when != true IS_ERR(e)
26 *PTR_ERR@p2(e)
27
28 @script:python depends on org@
29 p1 << r.p1;
30 p2 << r.p2;
31 @@
32
33 cocci.print_main("PTR_ERR",p2)
34 cocci.print_secs("assignment",p1)
35
36 @script:python depends on report@
37 p1 << r.p1;
38 p2 << r.p2;
39 @@
40
41 msg = "ERROR: PTR_ERR applied after initialization to constant on line %s" % (p1[0].line)
42 coccilib.report.print_report(p2[0],msg)