1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun/// Free of a structure field 3*4882a593Smuzhiyun/// 4*4882a593Smuzhiyun// Confidence: High 5*4882a593Smuzhiyun// Copyright: (C) 2013 Julia Lawall, INRIA/LIP6. 6*4882a593Smuzhiyun// URL: http://coccinelle.lip6.fr/ 7*4882a593Smuzhiyun// Comments: 8*4882a593Smuzhiyun// Options: --no-includes --include-headers 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunvirtual org 11*4882a593Smuzhiyunvirtual report 12*4882a593Smuzhiyunvirtual context 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun@r depends on context || report || org @ 15*4882a593Smuzhiyunexpression e; 16*4882a593Smuzhiyunidentifier f; 17*4882a593Smuzhiyunposition p; 18*4882a593Smuzhiyun@@ 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun( 21*4882a593Smuzhiyun* kfree@p(&e->f) 22*4882a593Smuzhiyun| 23*4882a593Smuzhiyun* kfree_sensitive@p(&e->f) 24*4882a593Smuzhiyun) 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun@script:python depends on org@ 27*4882a593Smuzhiyunp << r.p; 28*4882a593Smuzhiyun@@ 29*4882a593Smuzhiyun 30*4882a593Smuzhiyuncocci.print_main("kfree",p) 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun@script:python depends on report@ 33*4882a593Smuzhiyunp << r.p; 34*4882a593Smuzhiyun@@ 35*4882a593Smuzhiyun 36*4882a593Smuzhiyunmsg = "ERROR: invalid free of structure field" 37*4882a593Smuzhiyuncoccilib.report.print_report(p[0],msg) 38