]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tools: Add coccinelle script to catch memset/memcpy wrong usage
authorDonatas Abraitis <donatas@opensourcerouting.org>
Wed, 11 May 2022 10:12:22 +0000 (13:12 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Wed, 11 May 2022 10:12:22 +0000 (13:12 +0300)
Wrong: memset(&a, 0, sizeof(struct ...));
Good:  memset(&a, 0, sizeof(a));

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
tools/coccinelle/memset.cocci [new file with mode: 0644]

diff --git a/tools/coccinelle/memset.cocci b/tools/coccinelle/memset.cocci
new file mode 100644 (file)
index 0000000..0da576c
--- /dev/null
@@ -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));
+)