1 // SPDX-License-Identifier: GPL-2.0-only << 2 /// PTR_ERR should be applied before its argum 1 /// PTR_ERR should be applied before its argument is reassigned, typically 3 /// to NULL 2 /// to NULL 4 /// 3 /// 5 // Confidence: High 4 // Confidence: High 6 // Copyright: (C) 2012 Julia Lawall, INRIA/LIP !! 5 // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. 7 // Copyright: (C) 2012 Gilles Muller, INRIA/Li !! 6 // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. 8 // URL: https://coccinelle.gitlabpages.inria.f !! 7 // URL: http://coccinelle.lip6.fr/ 9 // Comments: 8 // Comments: 10 // Options: --no-includes --include-headers 9 // Options: --no-includes --include-headers 11 10 12 virtual org 11 virtual org 13 virtual report 12 virtual report 14 virtual context 13 virtual context 15 14 16 @r exists@ 15 @r exists@ 17 expression e,e1; 16 expression e,e1; 18 constant c; 17 constant c; 19 position p1,p2; 18 position p1,p2; 20 @@ 19 @@ 21 20 22 *e@p1 = c 21 *e@p1 = c 23 ... when != e = e1 22 ... when != e = e1 24 when != &e 23 when != &e 25 when != true IS_ERR(e) 24 when != true IS_ERR(e) 26 *PTR_ERR@p2(e) 25 *PTR_ERR@p2(e) 27 26 28 @script:python depends on org@ 27 @script:python depends on org@ 29 p1 << r.p1; 28 p1 << r.p1; 30 p2 << r.p2; 29 p2 << r.p2; 31 @@ 30 @@ 32 31 33 cocci.print_main("PTR_ERR",p2) 32 cocci.print_main("PTR_ERR",p2) 34 cocci.print_secs("assignment",p1) 33 cocci.print_secs("assignment",p1) 35 34 36 @script:python depends on report@ 35 @script:python depends on report@ 37 p1 << r.p1; 36 p1 << r.p1; 38 p2 << r.p2; 37 p2 << r.p2; 39 @@ 38 @@ 40 39 41 msg = "ERROR: PTR_ERR applied after initializa 40 msg = "ERROR: PTR_ERR applied after initialization to constant on line %s" % (p1[0].line) 42 coccilib.report.print_report(p2[0],msg) 41 coccilib.report.print_report(p2[0],msg)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.