coccinelle: Improve checking for missing NULL terminators

Extend checking on tables containing structures which are initialized
without specifying member name. Added new tables for checking:
i2c_device_id and platform_device_id.

Signed-off-by: Daniel Granat <d.granat@samsung.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.cz>
This commit is contained in:
Daniel Granat 2015-10-23 17:31:06 +02:00 committed by Michal Marek
parent 4743775c6d
commit 67afc2110a
1 changed files with 28 additions and 5 deletions

View File

@ -1,6 +1,6 @@
/// Make sure of_device_id tables are NULL terminated /// Make sure (of/i2c/platform)_device_id tables are NULL terminated
// //
// Keywords: of_table // Keywords: of_table i2c_table platform_table
// Confidence: Medium // Confidence: Medium
// Options: --include-headers // Options: --include-headers
@ -13,18 +13,26 @@ virtual report
identifier var, arr; identifier var, arr;
expression E; expression E;
@@ @@
struct of_device_id arr[] = { (
struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
..., ...,
{ {
.var = E, .var = E,
* } * }
}; };
|
struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
...,
* { ..., E, ... },
};
)
@depends on patch@ @depends on patch@
identifier var, arr; identifier var, arr;
expression E; expression E;
@@ @@
struct of_device_id arr[] = { (
struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
..., ...,
{ {
.var = E, .var = E,
@ -32,19 +40,34 @@ struct of_device_id arr[] = {
+ }, + },
+ { } + { }
}; };
|
struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
...,
{ ..., E, ... },
+ { },
};
)
@r depends on org || report@ @r depends on org || report@
position p1; position p1;
identifier var, arr; identifier var, arr;
expression E; expression E;
@@ @@
struct of_device_id arr[] = { (
struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
..., ...,
{ {
.var = E, .var = E,
} }
@p1 @p1
}; };
|
struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = {
...,
{ ..., E, ... }
@p1
};
)
@script:python depends on org@ @script:python depends on org@
p1 << r.p1; p1 << r.p1;