1/// Make sure of_device_id tables are NULL terminated 2// 3// Keywords: of_table 4// Confidence: Medium 5// Options: --include-headers 6 7virtual patch 8virtual context 9virtual org 10virtual report 11 12@depends on context@ 13identifier var, arr; 14expression E; 15@@ 16struct of_device_id arr[] = { 17 ..., 18 { 19 .var = E, 20* } 21}; 22 23@depends on patch@ 24identifier var, arr; 25expression E; 26@@ 27struct of_device_id arr[] = { 28 ..., 29 { 30 .var = E, 31- } 32+ }, 33+ { } 34}; 35 36@r depends on org || report@ 37position p1; 38identifier var, arr; 39expression E; 40@@ 41struct of_device_id arr[] = { 42 ..., 43 { 44 .var = E, 45 } 46 @p1 47}; 48 49@script:python depends on org@ 50p1 << r.p1; 51arr << r.arr; 52@@ 53 54cocci.print_main(arr,p1) 55 56@script:python depends on report@ 57p1 << r.p1; 58arr << r.arr; 59@@ 60 61msg = "%s is not NULL terminated at line %s" % (arr, p1[0].line) 62coccilib.report.print_report(p1[0],msg) 63