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(). * and sets sudo_debug_subsys for sudo_debug_exit().
*/ */
#ifdef HAVE___FUNC__ #ifdef HAVE___FUNC__
# define debug_decl(funcname, subsys) \ # define debug_decl_vars(funcname, subsys) \
const int sudo_debug_subsys = (subsys); \ const int sudo_debug_subsys = (subsys);
sudo_debug_enter(__func__, __FILE__, __LINE__, sudo_debug_subsys);
#else #else
# define debug_decl(funcname, subsys) \ # define debug_decl_vars(funcname, subsys) \
const int sudo_debug_subsys = (subsys); \ const int sudo_debug_subsys = (subsys); \
const char __func__[] = #funcname; \ const char __func__[] = #funcname;
sudo_debug_enter(__func__, __FILE__, __LINE__, sudo_debug_subsys);
#endif #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. * 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 sudo_settings *settings;
struct plugin_container *plugin, *next; struct plugin_container *plugin, *next;
sigset_t mask; 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. */ /* Make sure fds 0-2 are open and do OS-specific initialization. */
fix_fds(); fix_fds();