From c08050d6d10a5acab3d044858b5480bb01351cff Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Thu, 7 Oct 2021 16:20:35 +0300 Subject: [PATCH] tools: Catch double pointer of struct thread towards thread_add_* ``` % spatch --sp-file tools/coccinelle/struct_thread_double_pointer.cocci --macro-file tools/cocci.h ./ 2>/dev/null ./lib/northbound_confd.c:429:65-66: Passed double 'struct thread' pointer ./lib/northbound_confd.c:1174:61-62: Passed double 'struct thread' pointer ./lib/northbound_sysrepo.c:543:69-70: Passed double 'struct thread' pointer ``` Signed-off-by: Donatas Abraitis --- .../struct_thread_double_pointer.cocci | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tools/coccinelle/struct_thread_double_pointer.cocci diff --git a/tools/coccinelle/struct_thread_double_pointer.cocci b/tools/coccinelle/struct_thread_double_pointer.cocci new file mode 100644 index 0000000000..a08e6727cf --- /dev/null +++ b/tools/coccinelle/struct_thread_double_pointer.cocci @@ -0,0 +1,35 @@ +@r1@ +identifier fn, m, f, a, v, t; +identifier func =~ "thread_add_"; +type T1, T2; +position p; +@@ + +?static +T1 fn(T2 *t) +{ +... +func(m,f,a,v,&t)@p +... +} + +@r2@ +identifier m, f, a, v, t; +identifier func =~ "thread_add_"; +type T1; +position p; +@@ + +T1 *t; +... +func(m,f,a,v,&t)@p + +@script:python@ +p << r1.p; +@@ +coccilib.report.print_report(p[0],"Passed double 'struct thread' pointer") + +@script:python@ +p << r2.p; +@@ +coccilib.report.print_report(p[0],"Passed double 'struct thread' pointer") -- 2.39.5