Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932079AbbERL3w (ORCPT ); Mon, 18 May 2015 07:29:52 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:38436 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750858AbbERL3o (ORCPT ); Mon, 18 May 2015 07:29:44 -0400 X-AuditID: cbfec7f5-f794b6d000001495-28-5559cd26b0e8 From: Daniel Granat To: Julia.Lawall@lip6.fr, cocci@systeme.lip6.fr, linux-kernel@vger.kernel.org Cc: Gilles.Muller@lip6.fr, nicolas.palix@imag.fr, Daniel Granat Subject: [PATCH v2] Add coccinelle script that makes sure that tables are NULL terminated Date: Mon, 18 May 2015 13:29:00 +0200 Message-id: <1431948540-8202-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+NgFuphluLIzCtJLcpLzFFi42I5/e/4ZV21s5GhBoc+ilr82LSazWLCI2OL 2T8vMVkse3Ca0eLyrjlsFsdeLmdyYPM4dqyV2WPvliyPvi2rGD0eLbvP4vF5k1wAaxSXTUpq TmZZapG+XQJXxqKVR9gL9nNXtK1aw9zAOJOzi5GTQ0LAROLs55tMELaYxIV769m6GLk4hASW Mkq8vreWDSQhJNDEJHH7nyuIzSagJXH5zgOwBhEBX4kLe6azgNjMAhESqx4sB7OFBaIlFhw+ AmazCKhKrF8/mxHE5hVwltjceZkdYpmcxMljk1lBbE4BV4mrG3YxQexykZja28k4gZF3ASPD KkbR1NLkguKk9FwjveLE3OLSvHS95PzcTYyQMPq6g3HpMatDjAIcjEo8vCv8IkOFWBPLiitz DzFKcDArifBu3wcU4k1JrKxKLcqPLyrNSS0+xCjNwaIkzjtz1/sQIYH0xJLU7NTUgtQimCwT B6dUA+PB4OaTz/IfZC+VN7pt1+hh/in/34V/4U82rTY79untHg6/vHlBSXO2n9SSfp7sITZ9 8yn+vyXcppVhF7xlQ2p3a/pb2E6y7Or8FHIxKJmv7zujfql+uuVzxSSfx5LtTd8nv7NfLhjV uTfyQdf6iQZRHb+2J70qvv7s66s5HvO2P7aeUXHXYrISS3FGoqEWc1FxIgCilmmiHwIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1636 Lines: 85 Signed-off-by: Daniel Granat --- scripts/coccinelle/misc/of_platform.cocci | 65 +++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 scripts/coccinelle/misc/of_platform.cocci diff --git a/scripts/coccinelle/misc/of_platform.cocci b/scripts/coccinelle/misc/of_platform.cocci new file mode 100644 index 0000000..02c6195 --- /dev/null +++ b/scripts/coccinelle/misc/of_platform.cocci @@ -0,0 +1,65 @@ +/// Make sure that tables are NULL terminated +// +// Keywords: _device_id +// Confidence: Medium +// Options: --include-headers + +virtual report +virtual patch + +@r depends on report@ +position p1; +identifier var, arr; +identifier name = {of_device_id, i2c_device_id, platform_device_id}; +expression E; +@@ + +( +struct name arr[] = { + ..., + { + .var = E, + } + @p1 +}; +| +struct name arr[] = { + ..., + { ..., var, ... }, + @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) + +@p depends on patch@ +position p1; +identifier var, arr; +identifier name = {of_device_id, i2c_device_id, platform_device_id}; +expression E; +@@ + +( +struct name arr[] = { + ..., + { + .var = E, +- } + @p1 ++ }, ++ {}, +}; +| +struct name arr[] = { + ..., + { ..., var, ... }, + @p1 ++ {}, +}; +) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/