From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752883AbbJWPdA (ORCPT ); Fri, 23 Oct 2015 11:33:00 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:24137 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751256AbbJWPbR (ORCPT ); Fri, 23 Oct 2015 11:31:17 -0400 X-AuditID: cbfec7f5-f794b6d000001495-d8-562a52c23925 From: Daniel Granat To: Julia.Lawall@lip6.fr, cocci@systeme.lip6.fr, linux-kernel@vger.kernel.org, Gilles.Muller@lip6.fr, nicolas.palix@imag.fr, mmarek@suse.com Cc: sfr@canb.auug.org.au, d.granat@samsung.com Subject: [PATCH v6] coccinelle: Improve checking for missing NULL terminators Date: Fri, 23 Oct 2015 17:31:06 +0200 Message-id: <1445614266-14609-1-git-send-email-d.granat@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1425043313-15844-1-git-send-email-d.granat@samsung.com> References: <1425043313-15844-1-git-send-email-d.granat@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrILMWRmVeSWpSXmKPExsVy+t/xa7qHgrTCDNb807X4sWk1m8WER8YW s39eYrJY9uA0o8XlXXPYLOa0zmKzOPZyOZPF1r1X2R04PBpv3GDzOHasldlj75Ysj74tqxg9 1m+5yuLxaNl9Fo/Pm+QC2KO4bFJSczLLUov07RK4Ms5P2cNY0CRQ8WTNfqYGxus8XYycHBIC JhIL7/9jgbDFJC7cW8/WxcjFISSwlFGi/8ECJginiUmif0cbM0gVm4CWxOU7D8ASIgJ9jBL7 zq5hAkkwC+hJLO87wwhiCwv4SnzsuwQU5+BgEVCVmH9CFyTMK+Ai0XpsDSvENjmJk8cmg9mc Aq4SVzfsAhsjBFQztbeTcQIj7wJGhlWMoqmlyQXFSem5RnrFibnFpXnpesn5uZsYIQH3dQfj 0mNWhxgFOBiVeHhfdGiGCbEmlhVX5h5ilOBgVhLh3eyrFSbEm5JYWZValB9fVJqTWnyIUZqD RUmcd+au9yFCAumJJanZqakFqUUwWSYOTqkGxoLPi+TOFHK4/KwT4NSNXHz3v9nrm34+Kup1 SfVV5Z3GV1qmMmjuCLvF/l1b7aLPpAavU5k3PtmwPP555/2X2uC701fd2antV5xecWVRKft8 2SVMYqvXJv+LvPHcvUBhZ3rV4/K4psML+c1Mw3ydX+z69fUnU74cR+q8/SpKKw78fvyvPPTT fCWW4oxEQy3mouJEAD6yrrU0AgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * 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 --- scripts/coccinelle/misc/of_table.cocci | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/scripts/coccinelle/misc/of_table.cocci b/scripts/coccinelle/misc/of_table.cocci index 3c93404..2294915 100644 --- a/scripts/coccinelle/misc/of_table.cocci +++ b/scripts/coccinelle/misc/of_table.cocci @@ -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 // Options: --include-headers @@ -13,18 +13,26 @@ virtual report identifier var, arr; expression E; @@ -struct of_device_id arr[] = { +( +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 arr[] = { +( +struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = { ..., { .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@ position p1; identifier var, arr; expression E; @@ -struct of_device_id arr[] = { +( +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; -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: d.granat@samsung.com (Daniel Granat) Date: Fri, 23 Oct 2015 17:31:06 +0200 Subject: [Cocci] [PATCH v6] coccinelle: Improve checking for missing NULL terminators In-Reply-To: <1425043313-15844-1-git-send-email-d.granat@samsung.com> References: <1425043313-15844-1-git-send-email-d.granat@samsung.com> Message-ID: <1445614266-14609-1-git-send-email-d.granat@samsung.com> To: cocci@systeme.lip6.fr List-Id: cocci@systeme.lip6.fr * 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 --- scripts/coccinelle/misc/of_table.cocci | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/scripts/coccinelle/misc/of_table.cocci b/scripts/coccinelle/misc/of_table.cocci index 3c93404..2294915 100644 --- a/scripts/coccinelle/misc/of_table.cocci +++ b/scripts/coccinelle/misc/of_table.cocci @@ -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 // Options: --include-headers @@ -13,18 +13,26 @@ virtual report identifier var, arr; expression E; @@ -struct of_device_id arr[] = { +( +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 arr[] = { +( +struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = { ..., { .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@ position p1; identifier var, arr; expression E; @@ -struct of_device_id arr[] = { +( +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; -- 1.9.1