Bring back SUDOERS_PLUGIN but add .dylib -> .so conversion for

Darwin where libraries end in .dylib but modules end in .so
This commit is contained in:
Todd C. Miller
2010-03-19 20:01:00 -04:00
parent 8c9db4ef6f
commit 2e27226a0d
4 changed files with 24 additions and 1 deletions

View File

@@ -25,6 +25,9 @@
/* Define to 1 if using `alloca.c'. */ /* Define to 1 if using `alloca.c'. */
#undef C_ALLOCA #undef C_ALLOCA
/* The name of the sudoers plugin, including extension. */
#undef SUDOERS_PLUGIN
/* Define to 1 if you want sudo to display "command not allowed" instead of /* Define to 1 if you want sudo to display "command not allowed" instead of
"command not found" when a command cannot be found. */ "command not found" when a command cannot be found. */
#undef DONT_LEAK_PATH_INFO #undef DONT_LEAK_PATH_INFO

12
configure vendored
View File

@@ -11989,6 +11989,12 @@ if test "$enable_shared" = "no"; then
with_noexec=no with_noexec=no
else else
eval _shrext="$shrext_cmds" eval _shrext="$shrext_cmds"
# Darwin uses .dylib for libraries but .so for modules
if test X"$_shrext" = X".dylib"; then
_shrext2=".so"
else
_shrext2="$_shrext"
fi
fi fi
{ echo "$as_me:$LINENO: checking path to sudo_noexec.so" >&5 { echo "$as_me:$LINENO: checking path to sudo_noexec.so" >&5
echo $ECHO_N "checking path to sudo_noexec.so... $ECHO_C" >&6; } echo $ECHO_N "checking path to sudo_noexec.so... $ECHO_C" >&6; }
@@ -26288,6 +26294,10 @@ _ACEOF
eval PLUGINDIR="$with_plugindir" eval PLUGINDIR="$with_plugindir"
cat >>confdefs.h <<EOF cat >>confdefs.h <<EOF
#define _PATH_SUDO_PLUGIN_DIR "$PLUGINDIR" #define _PATH_SUDO_PLUGIN_DIR "$PLUGINDIR"
EOF
cat >>confdefs.h <<EOF
#define SUDOERS_PLUGIN "sudoers$_shrext2"
EOF EOF
exec_prefix="$oexec_prefix" exec_prefix="$oexec_prefix"
@@ -27729,6 +27739,8 @@ fi

View File

@@ -1325,6 +1325,12 @@ if test "$enable_shared" = "no"; then
with_noexec=no with_noexec=no
else else
eval _shrext="$shrext_cmds" eval _shrext="$shrext_cmds"
# Darwin uses .dylib for libraries but .so for modules
if test X"$_shrext" = X".dylib"; then
_shrext2=".so"
else
_shrext2="$_shrext"
fi
fi fi
AC_MSG_CHECKING(path to sudo_noexec.so) AC_MSG_CHECKING(path to sudo_noexec.so)
AC_ARG_WITH(noexec, [AS_HELP_STRING([--with-noexec[=PATH]], [fully qualified pathname of sudo_noexec.so])], AC_ARG_WITH(noexec, [AS_HELP_STRING([--with-noexec[=PATH]], [fully qualified pathname of sudo_noexec.so])],
@@ -2695,6 +2701,7 @@ if test X"$with_noexec" != X"no" -o X"$with_selinux" != X"no"; then
fi fi
eval PLUGINDIR="$with_plugindir" eval PLUGINDIR="$with_plugindir"
SUDO_DEFINE_UNQUOTED(_PATH_SUDO_PLUGIN_DIR, "$PLUGINDIR") SUDO_DEFINE_UNQUOTED(_PATH_SUDO_PLUGIN_DIR, "$PLUGINDIR")
SUDO_DEFINE_UNQUOTED(SUDOERS_PLUGIN, "sudoers$_shrext2")
exec_prefix="$oexec_prefix" exec_prefix="$oexec_prefix"
fi fi
@@ -2722,6 +2729,7 @@ dnl
AH_TEMPLATE(BROKEN_SYSLOG, [Define to 1 if the `syslog' function returns a non-zero int to denote failure.]) AH_TEMPLATE(BROKEN_SYSLOG, [Define to 1 if the `syslog' function returns a non-zero int to denote failure.])
AH_TEMPLATE(CLASSIC_INSULTS, [Define to 1 if you want the insults from the "classic" version sudo.]) AH_TEMPLATE(CLASSIC_INSULTS, [Define to 1 if you want the insults from the "classic" version sudo.])
AH_TEMPLATE(CSOPS_INSULTS, [Define to 1 if you want insults culled from the twisted minds of CSOps.]) AH_TEMPLATE(CSOPS_INSULTS, [Define to 1 if you want insults culled from the twisted minds of CSOps.])
AH_TEMPLATE(SUDOERS_PLUGIN, [The name of the sudoers plugin, including extension.])
AH_TEMPLATE(DONT_LEAK_PATH_INFO, [Define to 1 if you want sudo to display "command not allowed" instead of "command not found" when a command cannot be found.]) AH_TEMPLATE(DONT_LEAK_PATH_INFO, [Define to 1 if you want sudo to display "command not allowed" instead of "command not found" when a command cannot be found.])
AH_TEMPLATE(ENV_EDITOR, [Define to 1 if you want visudo to honor the EDITOR and VISUAL env variables.]) AH_TEMPLATE(ENV_EDITOR, [Define to 1 if you want visudo to honor the EDITOR and VISUAL env variables.])
AH_TEMPLATE(FQDN, [Define to 1 if you want to require fully qualified hosts in sudoers.]) AH_TEMPLATE(FQDN, [Define to 1 if you want to require fully qualified hosts in sudoers.])

View File

@@ -61,7 +61,7 @@ sudo_read_conf(const char *conf_file)
/* Default values */ /* Default values */
info = emalloc(sizeof(*info)); info = emalloc(sizeof(*info));
info->symbol_name = "sudoers_policy"; info->symbol_name = "sudoers_policy";
info->path = "sudoers.so"; info->path = SUDOERS_PLUGIN;
info->prev = info; info->prev = info;
info->next = NULL; info->next = NULL;
tq_append(&pil, info); tq_append(&pil, info);