1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /// Make sure (of/i2c/platform)_device_id tables are NULL terminated
- //
- // Keywords: of_table i2c_table platform_table
- // Confidence: Medium
- // Options: --include-headers
- virtual patch
- virtual context
- virtual org
- virtual report
- @depends on context@
- identifier var, arr;
- expression E;
- @@
- (
- struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
- ...,
- {
- .var = E,
- * }
- };
- |
- struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
- ...,
- * { ..., E, ... },
- };
- )
- @depends on patch@
- identifier var, arr;
- expression E;
- @@
- (
- struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
- ...,
- {
- .var = E,
- - }
- + },
- + { }
- };
- |
- struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
- ...,
- { ..., E, ... },
- + { },
- };
- )
- @r depends on org || report@
- position p1;
- identifier var, arr;
- expression E;
- @@
- (
- struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
- ...,
- {
- .var = E,
- }
- @p1
- };
- |
- struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
- ...,
- { ..., E, ... }
- @p1
- };
- )
- @script:python depends on org@
- p1 << r.p1;
- arr << r.arr;
- @@
- cocci.print_main(arr,p1)
- @script:python depends on report@
- p1 << r.p1;
- arr << r.arr;
- @@
- msg = "%s is not NULL terminated at line %s" % (arr, p1[0].line)
- coccilib.report.print_report(p1[0],msg)
|