1 // SPDX-License-Identifier: GPL-2.0-only 2 /// Correct the size argument to alloc functio 3 /// 4 //# This makes an effort to find cases where t 5 //# in memory allocation functions by checking 6 //# when it is a double pointer and ensuring t 7 //# to the the memory being allocated. There a 8 //# sizeof argument is not used in constructin 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_t 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 70 71 @script:python depends on report@ 72 p << r.p; 73 @@ 74 75 msg="WARNING: Use correct pointer type argumen 76 coccilib.report.print_report(p[0], msg) 77
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.