From 9963645ba72d0ba7c3c6399dfc75b317845ea818 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Thu, 23 Jun 2022 23:09:48 +0200 Subject: [PATCH] coccinelle: check return type --- scripts/coccinelle/bad_return_type.cocci | 34 ++++++++++++++++++++++++ src/bin/private.h | 2 +- src/bin/termptyesc.c | 2 +- 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 scripts/coccinelle/bad_return_type.cocci diff --git a/scripts/coccinelle/bad_return_type.cocci b/scripts/coccinelle/bad_return_type.cocci new file mode 100644 index 00000000..7ee70ce4 --- /dev/null +++ b/scripts/coccinelle/bad_return_type.cocci @@ -0,0 +1,34 @@ +@@ +type T, B != T; +identifier func, i; +expression E; +@@ + +T func (...) { +... +( +T i; +| +T i = E; +| +static B i; +| +static B i = E; +| +-B i; ++T i; +| +-B i = E; ++T i = E; +) +<+... +( +return i; +| +return (T) i; +) +...+> +} + + + diff --git a/src/bin/private.h b/src/bin/private.h index 7fa997c8..db3e5865 100644 --- a/src/bin/private.h +++ b/src/bin/private.h @@ -62,7 +62,7 @@ extern int _log_domain; (!strncmp(STR, STATIC_STR, strlen(STATIC_STR))) #if !defined(HAVE_STRCHRNUL) -static inline char * +static inline const char * strchrnul(const char *s, int c) { const char *p = s; diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c index 419e01e8..5e37ec09 100644 --- a/src/bin/termptyesc.c +++ b/src/bin/termptyesc.c @@ -4489,7 +4489,7 @@ _handle_esc_dcs(Termpty *ty, } *b = 0; if ((*cc == ST) || (*cc == '\\')) cc++; - else return 0; + else {return 0}; len = cc - c; switch (buf[0]) {