From e36bb5c572e7345908e64d2cc316f143d14b3760 Mon Sep 17 00:00:00 2001 From: Sukrit Bhatnagar Date: Fri, 13 Jul 2018 23:24:40 +0530 Subject: [PATCH] cfg.mk: variable initialization when declared with cleanup macro A variable, which is never assigned a value in the function, might get passed into the cleanup function which may or may not raise any errors. To maintain the correct usage, the variable must be initialized, either with a value or with NULL. This syntax-check rule takes care of that. Signed-off-by: Sukrit Bhatnagar Reviewed-by: Erik Skultety --- cfg.mk | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/cfg.mk b/cfg.mk index 6bebd0ad9f..609ae869c2 100644 --- a/cfg.mk +++ b/cfg.mk @@ -1057,6 +1057,17 @@ sc_prohibit_backslash_alignment: halt='Do not attempt to right-align backslashes' \ $(_sc_search_regexp) +# Some syntax rules pertaining to the usage of cleanup macros +# implementing GNU C's cleanup attribute + +# Rule to ensure that varibales declared using a cleanup macro are +# always initialized. +sc_require_attribute_cleanup_initialization: + @prohibit='VIR_AUTO(FREE|PTR)\(.+\) *[^=]+;' \ + in_vc_files='\.[chx]$$' \ + halt='variable declared with a cleanup macro must be initialized' \ + $(_sc_search_regexp) + # We don't use this feature of maint.mk. prev_version_file = /dev/null