summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2022-05-11 13:12:22 +0300
committerDonatas Abraitis <donatas@opensourcerouting.org>2022-05-11 13:12:22 +0300
commitab2c896a978a078888ced57c1fd8c5b6ae8b023f (patch)
treee0cf103314b12b29c91ab7a81307f7e5dfff0356
parentb5605493a4f627b011b73c6c536bbb1f140e365d (diff)
tools: Add coccinelle script to catch memset/memcpy wrong usage
Wrong: memset(&a, 0, sizeof(struct ...)); Good: memset(&a, 0, sizeof(a)); Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
-rw-r--r--tools/coccinelle/memset.cocci21
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/coccinelle/memset.cocci b/tools/coccinelle/memset.cocci
new file mode 100644
index 0000000000..0da576cda6
--- /dev/null
+++ b/tools/coccinelle/memset.cocci
@@ -0,0 +1,21 @@
+//
+
+@@
+identifier src, dst;
+identifier str, len;
+type t =~ "struct";
+
+@@
+
+(
+- memset(&dst, 0, sizeof(t));
++ memset(&dst, 0, sizeof(dst));
+|
+- memcpy(&dst, &src, sizeof(t));
++ memcpy(&dst, &src, sizeof(dst));
+|
+- char str[...];
+...
+- memset(&str, 0, ...);
++ memset(&str, 0, sizeof(str));
+)