From 6f8af4d26d1f766644e43f48635eb097aa5713a5 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Wed, 22 Apr 2015 13:30:58 -0600 Subject: [PATCH] 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. --- include/sudo_debug.h | 13 +++++++------ src/sudo.c | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/include/sudo_debug.h b/include/sudo_debug.h index e5441eb33..c48888d79 100644 --- a/include/sudo_debug.h +++ b/include/sudo_debug.h @@ -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. diff --git a/src/sudo.c b/src/sudo.c index ada1805df..ba92d36a8 100644 --- a/src/sudo.c +++ b/src/sudo.c @@ -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(); -- 2.40.0