1 // SPDX-License-Identifier: GPL-2.0-only
2 /// This semantic patch looks for kmalloc etc that are not followed by a
3 /// NULL check. It only gives a report in the case where there is some
4 /// error handling code later in the function, which may be helpful
5 /// in determining what the error handling code for the call to kmalloc etc
9 // Copyright: (C) 2010 Nicolas Palix, DIKU.
10 // Copyright: (C) 2010 Julia Lawall, DIKU.
11 // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.
12 // URL: http://coccinelle.lip6.fr/
14 // Options: --no-includes --include-headers
28 \(x == NULL \| x != NULL\)
30 @fixed depends on context && !org && !report@
32 position p1 != withtest.p;
34 position any withtest.p;
38 *x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
43 // ------------------------------------------------------------------------
45 @rfixed depends on (org || report) && !context exists@
47 position p1 != withtest.p;
50 position any withtest.p;
54 x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
59 @script:python depends on org@
64 cocci.print_main("alloc call",p1)
65 cocci.print_secs("possible model",p2)
67 @script:python depends on report@
72 msg = "alloc with no test, possible model on line %s" % (p2[0].line)
73 coccilib.report.print_report(p1[0],msg)