Linux Audio

Check our new training course

Loading...
v4.6
 
 1/// Make sure (of/i2c/platform)_device_id tables are NULL terminated
 2//
 3// Keywords: of_table i2c_table platform_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@@
16(
17struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
18	...,
19	{
20	.var = E,
21*	}
22};
23|
24struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
25	...,
26*	{ ..., E, ... },
27};
28)
29
30@depends on patch@
31identifier var, arr;
32expression E;
33@@
34(
35struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
36	...,
37	{
38	.var = E,
39-	}
40+	},
41+	{ }
42};
43|
44struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
45	...,
46	{ ..., E, ... },
47+	{ },
48};
49)
50
51@r depends on org || report@
52position p1;
53identifier var, arr;
54expression E;
55@@
56(
57struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
58	...,
59	{
60	.var = E,
61	}
62	@p1
63};
64|
65struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
66	...,
67	{ ..., E, ... }
68	@p1
69};
70)
71
72@script:python depends on org@
73p1 << r.p1;
74arr << r.arr;
75@@
76
77cocci.print_main(arr,p1)
78
79@script:python depends on report@
80p1 << r.p1;
81arr << r.arr;
82@@
83
84msg = "%s is not NULL terminated at line %s" % (arr, p1[0].line)
85coccilib.report.print_report(p1[0],msg)
v6.2
 1// SPDX-License-Identifier: GPL-2.0
 2/// Make sure (of/i2c/platform)_device_id tables are NULL terminated
 3//
 4// Keywords: of_table i2c_table platform_table
 5// Confidence: Medium
 6// Options: --include-headers
 7
 8virtual patch
 9virtual context
10virtual org
11virtual report
12
13@depends on context@
14identifier var, arr;
15expression E;
16@@
17(
18struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
19	...,
20	{
21	.var = E,
22*	}
23};
24|
25struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
26	...,
27*	{ ..., E, ... },
28};
29)
30
31@depends on patch@
32identifier var, arr;
33expression E;
34@@
35(
36struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
37	...,
38	{
39	.var = E,
40-	}
41+	},
42+	{ }
43};
44|
45struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
46	...,
47	{ ..., E, ... },
48+	{ },
49};
50)
51
52@r depends on org || report@
53position p1;
54identifier var, arr;
55expression E;
56@@
57(
58struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
59	...,
60	{
61	.var = E,
62	}
63	@p1
64};
65|
66struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
67	...,
68	{ ..., E, ... }
69	@p1
70};
71)
72
73@script:python depends on org@
74p1 << r.p1;
75arr << r.arr;
76@@
77
78cocci.print_main(arr,p1)
79
80@script:python depends on report@
81p1 << r.p1;
82arr << r.arr;
83@@
84
85msg = "%s is not NULL terminated at line %s" % (arr, p1[0].line)
86coccilib.report.print_report(p1[0],msg)