Split variable declaration out of debug_decl into debug_decl_vars()

so we can use it in main() when we know sudo_debug_enter() cannot
succeed.
This commit is contained in:
Todd C. Miller
2015-04-22 13:30:58 -06:00
parent e98778b2a2
commit 6f8af4d26d
2 changed files with 8 additions and 7 deletions

View File

@@ -108,15 +108,16 @@ struct sudo_conf_debug_file_list;
* and sets sudo_debug_subsys for sudo_debug_exit().
*/
#ifdef HAVE___FUNC__
# define debug_decl(funcname, subsys) \
const int sudo_debug_subsys = (subsys); \
sudo_debug_enter(__func__, __FILE__, __LINE__, sudo_debug_subsys);
# define debug_decl_vars(funcname, subsys) \
const int sudo_debug_subsys = (subsys);
#else
# define debug_decl(funcname, subsys) \
# define debug_decl_vars(funcname, subsys) \
const int sudo_debug_subsys = (subsys); \
const char __func__[] = #funcname; \
sudo_debug_enter(__func__, __FILE__, __LINE__, sudo_debug_subsys);
const char __func__[] = #funcname;
#endif
#define debug_decl(funcname, subsys) \
debug_decl_vars((funcname), (subsys)) \
sudo_debug_enter(__func__, __FILE__, __LINE__, sudo_debug_subsys);
/*
* Wrappers for sudo_debug_exit() and friends.

View File

@@ -152,7 +152,7 @@ main(int argc, char *argv[], char *envp[])
struct sudo_settings *settings;
struct plugin_container *plugin, *next;
sigset_t mask;
debug_decl(main, SUDO_DEBUG_MAIN)
debug_decl_vars(main, SUDO_DEBUG_MAIN)
/* Make sure fds 0-2 are open and do OS-specific initialization. */
fix_fds();