From f689afb5eea1c6c874a7aa9ac0b6012f1695355f Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Sun, 13 Nov 2011 21:24:54 -0500 Subject: [PATCH] Fix non-dynamic (no dlopen) sudo build. --- plugins/sudoers/group_plugin.c | 12 +++--------- plugins/sudoers/plugin_error.c | 2 +- plugins/sudoers/sudoers.c | 4 ++-- src/conversation.c | 2 ++ 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/plugins/sudoers/group_plugin.c b/plugins/sudoers/group_plugin.c index 133f4619e..9caea154f 100644 --- a/plugins/sudoers/group_plugin.c +++ b/plugins/sudoers/group_plugin.c @@ -16,8 +16,6 @@ #include -#if defined(HAVE_DLOPEN) || defined(HAVE_SHL_LOAD) - #include #include #include @@ -58,6 +56,8 @@ # define RTLD_GLOBAL 0 #endif +#if defined(HAVE_DLOPEN) || defined(HAVE_SHL_LOAD) + static void *group_handle; static struct sudoers_group_plugin *group_plugin; @@ -199,12 +199,6 @@ group_plugin_query(const char *user, const char *group, * No loadable shared object support. */ -#ifndef FALSE -#define FALSE 0 -#endif - -struct passwd; - int group_plugin_load(char *plugin_info) { @@ -216,7 +210,7 @@ void group_plugin_unload(void) { debug_decl(group_plugin_unload, SUDO_DEBUG_UTIL) - debug_return_bool; + debug_return; } int diff --git a/plugins/sudoers/plugin_error.c b/plugins/sudoers/plugin_error.c index 44e073ac0..142eddc1d 100644 --- a/plugins/sudoers/plugin_error.c +++ b/plugins/sudoers/plugin_error.c @@ -35,7 +35,7 @@ static void _warning(int, const char *, va_list); void plugin_cleanup(int); -sigjmp_buf error_jmp; +extern sigjmp_buf error_jmp; extern sudo_conv_t sudo_conv; diff --git a/plugins/sudoers/sudoers.c b/plugins/sudoers/sudoers.c index 20fd435a1..72e379131 100644 --- a/plugins/sudoers/sudoers.c +++ b/plugins/sudoers/sudoers.c @@ -132,8 +132,8 @@ static sigaction_t saved_sa_int, saved_sa_quit, saved_sa_tstp; int NewArgc; char **NewArgv; -/* plugin_error.c */ -extern sigjmp_buf error_jmp; +/* Declared here instead of plugin_error.c for static sudo builds. */ +sigjmp_buf error_jmp; static int sudoers_policy_open(unsigned int version, sudo_conv_t conversation, diff --git a/src/conversation.c b/src/conversation.c index c21a836a6..a2dab5a7c 100644 --- a/src/conversation.c +++ b/src/conversation.c @@ -51,7 +51,9 @@ extern int tgetpass_flags; /* XXX */ +#if defined(HAVE_DLOPEN) || defined(HAVE_SHL_LOAD) sudo_conv_t sudo_conv; /* NULL in sudo front-end */ +#endif /* * Sudo conversation function. -- 2.40.0