mirror of
https://github.com/sudo-project/sudo.git
synced 2025-08-22 09:57:41 +00:00
Move the sha2 code into libreplace and add configure checks for
SHA224Update in libc and libmd. Solaris uses "void *" where we use "unsigned char *" so we need a check for that too. Solaris sha2.h defines SHA224, SHA256, SHA384, and SHA512 so rename those tokens. Adapted from changes from Vladimir Marek in bug #641.
This commit is contained in:
parent
27aff732f1
commit
218aa1e598
4
MANIFEST
4
MANIFEST
@ -92,6 +92,8 @@ compat/regress/fnmatch/fnm_test.in
|
|||||||
compat/regress/glob/files
|
compat/regress/glob/files
|
||||||
compat/regress/glob/globtest.c
|
compat/regress/glob/globtest.c
|
||||||
compat/regress/glob/globtest.in
|
compat/regress/glob/globtest.in
|
||||||
|
compat/sha2.c
|
||||||
|
compat/sha2.h
|
||||||
compat/sig2str.c
|
compat/sig2str.c
|
||||||
compat/siglist.in
|
compat/siglist.in
|
||||||
compat/snprintf.c
|
compat/snprintf.c
|
||||||
@ -381,8 +383,6 @@ plugins/sudoers/regress/visudo/test4.sh
|
|||||||
plugins/sudoers/regress/visudo/test5.out.ok
|
plugins/sudoers/regress/visudo/test5.out.ok
|
||||||
plugins/sudoers/regress/visudo/test5.sh
|
plugins/sudoers/regress/visudo/test5.sh
|
||||||
plugins/sudoers/set_perms.c
|
plugins/sudoers/set_perms.c
|
||||||
plugins/sudoers/sha2.c
|
|
||||||
plugins/sudoers/sha2.h
|
|
||||||
plugins/sudoers/sssd.c
|
plugins/sudoers/sssd.c
|
||||||
plugins/sudoers/sudo_nss.c
|
plugins/sudoers/sudo_nss.c
|
||||||
plugins/sudoers/sudo_nss.h
|
plugins/sudoers/sudo_nss.h
|
||||||
|
@ -222,8 +222,8 @@ atomode.lo: $(srcdir)/atomode.c $(incdir)/gettext.h $(incdir)/missing.h \
|
|||||||
$(top_builddir)/config.h $(top_srcdir)/compat/stdbool.h
|
$(top_builddir)/config.h $(top_srcdir)/compat/stdbool.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/atomode.c
|
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/atomode.c
|
||||||
conf_test.lo: $(srcdir)/regress/sudo_conf/conf_test.c $(incdir)/missing.h \
|
conf_test.lo: $(srcdir)/regress/sudo_conf/conf_test.c $(incdir)/missing.h \
|
||||||
$(incdir)/queue.h $(incdir)/sudo_conf.h $(top_builddir)/config.h \
|
$(incdir)/queue.h $(incdir)/sudo_conf.h $(incdir)/sudo_util.h \
|
||||||
$(top_srcdir)/compat/stdbool.h
|
$(top_builddir)/config.h $(top_srcdir)/compat/stdbool.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/sudo_conf/conf_test.c
|
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/sudo_conf/conf_test.c
|
||||||
event.lo: $(srcdir)/event.c $(incdir)/alloc.h $(incdir)/fatal.h \
|
event.lo: $(srcdir)/event.c $(incdir)/alloc.h $(incdir)/fatal.h \
|
||||||
$(incdir)/missing.h $(incdir)/queue.h $(incdir)/sudo_debug.h \
|
$(incdir)/missing.h $(incdir)/queue.h $(incdir)/sudo_debug.h \
|
||||||
@ -259,8 +259,8 @@ gidlist.lo: $(srcdir)/gidlist.c $(incdir)/alloc.h $(incdir)/fatal.h \
|
|||||||
$(top_srcdir)/compat/stdbool.h
|
$(top_srcdir)/compat/stdbool.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/gidlist.c
|
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/gidlist.c
|
||||||
hltq_test.lo: $(srcdir)/regress/tailq/hltq_test.c $(incdir)/fatal.h \
|
hltq_test.lo: $(srcdir)/regress/tailq/hltq_test.c $(incdir)/fatal.h \
|
||||||
$(incdir)/missing.h $(incdir)/queue.h $(top_builddir)/config.h \
|
$(incdir)/missing.h $(incdir)/queue.h $(incdir)/sudo_util.h \
|
||||||
$(top_srcdir)/compat/stdbool.h
|
$(top_builddir)/config.h $(top_srcdir)/compat/stdbool.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/tailq/hltq_test.c
|
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/tailq/hltq_test.c
|
||||||
lbuf.lo: $(srcdir)/lbuf.c $(incdir)/alloc.h $(incdir)/fatal.h $(incdir)/lbuf.h \
|
lbuf.lo: $(srcdir)/lbuf.c $(incdir)/alloc.h $(incdir)/fatal.h $(incdir)/lbuf.h \
|
||||||
$(incdir)/missing.h $(incdir)/sudo_debug.h $(top_builddir)/config.h
|
$(incdir)/missing.h $(incdir)/sudo_debug.h $(top_builddir)/config.h
|
||||||
@ -269,7 +269,7 @@ locale_stub.lo: $(top_srcdir)/src/locale_stub.c $(incdir)/fatal.h \
|
|||||||
$(incdir)/gettext.h $(incdir)/missing.h $(top_builddir)/config.h
|
$(incdir)/gettext.h $(incdir)/missing.h $(top_builddir)/config.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(top_srcdir)/src/locale_stub.c
|
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(top_srcdir)/src/locale_stub.c
|
||||||
parseln_test.lo: $(srcdir)/regress/sudo_parseln/parseln_test.c \
|
parseln_test.lo: $(srcdir)/regress/sudo_parseln/parseln_test.c \
|
||||||
$(incdir)/fileops.h $(incdir)/missing.h \
|
$(incdir)/fileops.h $(incdir)/missing.h $(incdir)/sudo_util.h \
|
||||||
$(top_builddir)/config.h $(top_srcdir)/compat/stdbool.h
|
$(top_builddir)/config.h $(top_srcdir)/compat/stdbool.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/sudo_parseln/parseln_test.c
|
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/sudo_parseln/parseln_test.c
|
||||||
progname.lo: $(srcdir)/progname.c $(incdir)/missing.h $(incdir)/sudo_util.h \
|
progname.lo: $(srcdir)/progname.c $(incdir)/missing.h $(incdir)/sudo_util.h \
|
||||||
|
@ -187,7 +187,9 @@ getaddrinfo.lo: $(srcdir)/getaddrinfo.c $(incdir)/missing.h \
|
|||||||
getcwd.lo: $(srcdir)/getcwd.c $(incdir)/missing.h $(top_builddir)/config.h
|
getcwd.lo: $(srcdir)/getcwd.c $(incdir)/missing.h $(top_builddir)/config.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/getcwd.c
|
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/getcwd.c
|
||||||
getgrouplist.lo: $(srcdir)/getgrouplist.c $(incdir)/missing.h \
|
getgrouplist.lo: $(srcdir)/getgrouplist.c $(incdir)/missing.h \
|
||||||
$(top_builddir)/config.h $(top_srcdir)/compat/nss_dbdefs.h
|
$(incdir)/sudo_util.h $(top_builddir)/config.h \
|
||||||
|
$(top_srcdir)/compat/nss_dbdefs.h \
|
||||||
|
$(top_srcdir)/compat/stdbool.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/getgrouplist.c
|
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/getgrouplist.c
|
||||||
getline.lo: $(srcdir)/getline.c $(incdir)/missing.h $(top_builddir)/config.h
|
getline.lo: $(srcdir)/getline.c $(incdir)/missing.h $(top_builddir)/config.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/getline.c
|
$(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/getline.c
|
||||||
|
@ -527,6 +527,9 @@
|
|||||||
/* Define to 1 if you have the `set_auth_parameters' function. */
|
/* Define to 1 if you have the `set_auth_parameters' function. */
|
||||||
#undef HAVE_SET_AUTH_PARAMETERS
|
#undef HAVE_SET_AUTH_PARAMETERS
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `SHA224Update' function. */
|
||||||
|
#undef HAVE_SHA224UPDATE
|
||||||
|
|
||||||
/* Define to 1 if you have the `shl_load' function. */
|
/* Define to 1 if you have the `shl_load' function. */
|
||||||
#undef HAVE_SHL_LOAD
|
#undef HAVE_SHL_LOAD
|
||||||
|
|
||||||
@ -986,6 +989,10 @@
|
|||||||
/* Define to 1 to send mail when the user is not in the sudoers file. */
|
/* Define to 1 to send mail when the user is not in the sudoers file. */
|
||||||
#undef SEND_MAIL_WHEN_NO_USER
|
#undef SEND_MAIL_WHEN_NO_USER
|
||||||
|
|
||||||
|
/* Define to 1 if the sha2 functions use `const void *' instead of `const
|
||||||
|
unsigned char'. */
|
||||||
|
#undef SHA2_VOID_PTR
|
||||||
|
|
||||||
/* Define to 1 if you want sudo to start a shell if given no arguments. */
|
/* Define to 1 if you want sudo to start a shell if given no arguments. */
|
||||||
#undef SHELL_IF_NO_ARGS
|
#undef SHELL_IF_NO_ARGS
|
||||||
|
|
||||||
|
150
configure
vendored
150
configure
vendored
@ -731,6 +731,7 @@ CROSS_COMPILING
|
|||||||
COMPAT_TEST_PROGS
|
COMPAT_TEST_PROGS
|
||||||
LOCALEDIR_SUFFIX
|
LOCALEDIR_SUFFIX
|
||||||
SUDO_NLS
|
SUDO_NLS
|
||||||
|
LIBMD
|
||||||
LIBINTL
|
LIBINTL
|
||||||
LT_STATIC
|
LT_STATIC
|
||||||
LIBDL
|
LIBDL
|
||||||
@ -2974,6 +2975,7 @@ $as_echo "$as_me: Configuring Sudo version $PACKAGE_VERSION" >&6;}
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -3039,6 +3041,7 @@ LCMAN=0
|
|||||||
PSMAN=0
|
PSMAN=0
|
||||||
SEMAN=0
|
SEMAN=0
|
||||||
LIBINTL=
|
LIBINTL=
|
||||||
|
LIBMD=
|
||||||
ZLIB=
|
ZLIB=
|
||||||
ZLIB_SRC=
|
ZLIB_SRC=
|
||||||
AUTH_OBJS=
|
AUTH_OBJS=
|
||||||
@ -18279,6 +18282,153 @@ fi
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
ac_fn_c_check_header_mongrel "$LINENO" "sha2.h" "ac_cv_header_sha2_h" "$ac_includes_default"
|
||||||
|
if test "x$ac_cv_header_sha2_h" = xyes; then :
|
||||||
|
|
||||||
|
for ac_func in SHA224Update
|
||||||
|
do :
|
||||||
|
ac_fn_c_check_func "$LINENO" "SHA224Update" "ac_cv_func_SHA224Update"
|
||||||
|
if test "x$ac_cv_func_SHA224Update" = xyes; then :
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define HAVE_SHA224UPDATE 1
|
||||||
|
_ACEOF
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the data argument of SHA224Update() is void *" >&5
|
||||||
|
$as_echo_n "checking whether the data argument of SHA224Update() is void *... " >&6; }
|
||||||
|
if ${sudo_cv_func_sha2_void_ptr+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
$ac_includes_default
|
||||||
|
#include <sha2.h>
|
||||||
|
void SHA224Update(SHA2_CTX *context, const void *data, size_t len) {return;}
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
sudo_cv_func_sha2_void_ptr=yes
|
||||||
|
else
|
||||||
|
sudo_cv_func_sha2_void_ptr=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_func_sha2_void_ptr" >&5
|
||||||
|
$as_echo "$sudo_cv_func_sha2_void_ptr" >&6; }
|
||||||
|
if test $sudo_cv_func_sha2_void_ptr = yes; then
|
||||||
|
|
||||||
|
$as_echo "#define SHA2_VOID_PTR 1" >>confdefs.h
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
# On some systems, SHA224Update is in libmd
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SHA224Update in -lmd" >&5
|
||||||
|
$as_echo_n "checking for SHA224Update in -lmd... " >&6; }
|
||||||
|
if ${ac_cv_lib_md_SHA224Update+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
ac_check_lib_save_LIBS=$LIBS
|
||||||
|
LIBS="-lmd $LIBS"
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
/* Override any GCC internal prototype to avoid an error.
|
||||||
|
Use char because int might match the return type of a GCC
|
||||||
|
builtin and then its argument prototype would still apply. */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
#endif
|
||||||
|
char SHA224Update ();
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
return SHA224Update ();
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_link "$LINENO"; then :
|
||||||
|
ac_cv_lib_md_SHA224Update=yes
|
||||||
|
else
|
||||||
|
ac_cv_lib_md_SHA224Update=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
LIBS=$ac_check_lib_save_LIBS
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_md_SHA224Update" >&5
|
||||||
|
$as_echo "$ac_cv_lib_md_SHA224Update" >&6; }
|
||||||
|
if test "x$ac_cv_lib_md_SHA224Update" = xyes; then :
|
||||||
|
|
||||||
|
$as_echo "#define HAVE_SHA224UPDATE 1" >>confdefs.h
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the data argument of SHA224Update() is void *" >&5
|
||||||
|
$as_echo_n "checking whether the data argument of SHA224Update() is void *... " >&6; }
|
||||||
|
if ${sudo_cv_func_sha2_void_ptr+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
$ac_includes_default
|
||||||
|
#include <sha2.h>
|
||||||
|
void SHA224Update(SHA2_CTX *context, const void *data, size_t len) {return;}
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
sudo_cv_func_sha2_void_ptr=yes
|
||||||
|
else
|
||||||
|
sudo_cv_func_sha2_void_ptr=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_func_sha2_void_ptr" >&5
|
||||||
|
$as_echo "$sudo_cv_func_sha2_void_ptr" >&6; }
|
||||||
|
if test $sudo_cv_func_sha2_void_ptr = yes; then
|
||||||
|
|
||||||
|
$as_echo "#define SHA2_VOID_PTR 1" >>confdefs.h
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
LIBMD="-lmd"
|
||||||
|
|
||||||
|
else
|
||||||
|
case " $LIBOBJS " in
|
||||||
|
*" sha2.$ac_objext "* ) ;;
|
||||||
|
*) LIBOBJS="$LIBOBJS sha2.$ac_objext"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
else
|
||||||
|
case " $LIBOBJS " in
|
||||||
|
*" sha2.$ac_objext "* ) ;;
|
||||||
|
*) LIBOBJS="$LIBOBJS sha2.$ac_objext"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
if test X"$with_noexec" != X"no"; then
|
if test X"$with_noexec" != X"no"; then
|
||||||
# Check for underscore versions of standard exec functions
|
# Check for underscore versions of standard exec functions
|
||||||
# unless we are using dyld symbole interposition
|
# unless we are using dyld symbole interposition
|
||||||
|
12
configure.ac
12
configure.ac
@ -77,6 +77,7 @@ AC_SUBST([CONFIGURE_ARGS])
|
|||||||
AC_SUBST([LIBDL])
|
AC_SUBST([LIBDL])
|
||||||
AC_SUBST([LT_STATIC])
|
AC_SUBST([LT_STATIC])
|
||||||
AC_SUBST([LIBINTL])
|
AC_SUBST([LIBINTL])
|
||||||
|
AC_SUBST([LIBMD])
|
||||||
AC_SUBST([SUDO_NLS])
|
AC_SUBST([SUDO_NLS])
|
||||||
AC_SUBST([LOCALEDIR_SUFFIX])
|
AC_SUBST([LOCALEDIR_SUFFIX])
|
||||||
AC_SUBST([COMPAT_TEST_PROGS])
|
AC_SUBST([COMPAT_TEST_PROGS])
|
||||||
@ -199,6 +200,7 @@ LCMAN=0
|
|||||||
PSMAN=0
|
PSMAN=0
|
||||||
SEMAN=0
|
SEMAN=0
|
||||||
LIBINTL=
|
LIBINTL=
|
||||||
|
LIBMD=
|
||||||
ZLIB=
|
ZLIB=
|
||||||
ZLIB_SRC=
|
ZLIB_SRC=
|
||||||
AUTH_OBJS=
|
AUTH_OBJS=
|
||||||
@ -2471,6 +2473,16 @@ if test X"$ac_cv_type_struct_timespec" != X"no"; then
|
|||||||
[AC_CHECK_MEMBER([struct stat.st_mtim.st__tim], AC_DEFINE(HAVE_ST__TIM))],
|
[AC_CHECK_MEMBER([struct stat.st_mtim.st__tim], AC_DEFINE(HAVE_ST__TIM))],
|
||||||
[AC_CHECK_MEMBER([struct stat.st_mtimespec], AC_DEFINE([HAVE_ST_MTIMESPEC]))])
|
[AC_CHECK_MEMBER([struct stat.st_mtimespec], AC_DEFINE([HAVE_ST_MTIMESPEC]))])
|
||||||
fi
|
fi
|
||||||
|
AC_CHECK_HEADER([sha2.h], [
|
||||||
|
AC_CHECK_FUNCS(SHA224Update, [SUDO_FUNC_SHA2_VOID_PTR], [
|
||||||
|
# On some systems, SHA224Update is in libmd
|
||||||
|
AC_CHECK_LIB(md, SHA224Update, [
|
||||||
|
AC_DEFINE(HAVE_SHA224UPDATE)
|
||||||
|
SUDO_FUNC_SHA2_VOID_PTR
|
||||||
|
LIBMD="-lmd"
|
||||||
|
], [AC_LIBOBJ(sha2)])
|
||||||
|
])
|
||||||
|
], [AC_LIBOBJ(sha2)])
|
||||||
dnl
|
dnl
|
||||||
dnl Function checks for sudo_noexec
|
dnl Function checks for sudo_noexec
|
||||||
dnl
|
dnl
|
||||||
|
18
m4/sudo.m4
18
m4/sudo.m4
@ -280,6 +280,24 @@ int putenv(const char *string) {return 0;}], [])],
|
|||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Check if the data argument for the sha2 functions is void * or u_char *
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([SUDO_FUNC_SHA2_VOID_PTR],
|
||||||
|
[AC_CACHE_CHECK([whether the data argument of SHA224Update() is void *],
|
||||||
|
sudo_cv_func_sha2_void_ptr,
|
||||||
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
|
||||||
|
#include <sha2.h>
|
||||||
|
void SHA224Update(SHA2_CTX *context, const void *data, size_t len) {return;}], [])],
|
||||||
|
[sudo_cv_func_sha2_void_ptr=yes],
|
||||||
|
[sudo_cv_func_sha2_void_ptr=no])
|
||||||
|
])
|
||||||
|
if test $sudo_cv_func_sha2_void_ptr = yes; then
|
||||||
|
AC_DEFINE(SHA2_VOID_PTR, 1,
|
||||||
|
[Define to 1 if the sha2 functions use `const void *' instead of `const unsigned char'.])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl check for sa_len field in struct sockaddr
|
dnl check for sa_len field in struct sockaddr
|
||||||
dnl
|
dnl
|
||||||
|
@ -50,8 +50,10 @@ INSTALL = $(SHELL) $(top_srcdir)/install-sh -c
|
|||||||
LT_LIBS = $(top_builddir)/common/libsudo_util.la $(LIBOBJDIR)libreplace.la
|
LT_LIBS = $(top_builddir)/common/libsudo_util.la $(LIBOBJDIR)libreplace.la
|
||||||
LIBS = $(LT_LIBS) @LIBINTL@
|
LIBS = $(LT_LIBS) @LIBINTL@
|
||||||
NET_LIBS = @NET_LIBS@
|
NET_LIBS = @NET_LIBS@
|
||||||
SUDOERS_LIBS = @SUDOERS_LIBS@ @AFS_LIBS@ @GETGROUPS_LIB@ $(LIBS) $(NET_LIBS) @ZLIB@ @LIBDL@
|
SUDOERS_LIBS = @SUDOERS_LIBS@ @AFS_LIBS@ @GETGROUPS_LIB@ $(LIBS) $(NET_LIBS) @ZLIB@ @LIBMD@ @LIBDL@
|
||||||
REPLAY_LIBS = @REPLAY_LIBS@ @ZLIB@
|
REPLAY_LIBS = @REPLAY_LIBS@ @ZLIB@
|
||||||
|
VISUDO_LIBS = $(NET_LIBS) @LIBMD@
|
||||||
|
TESTSUDOERS_LIBS = $(NET_LIBS) @LIBMD@ @LIBDL@
|
||||||
|
|
||||||
# C preprocessor flags
|
# C preprocessor flags
|
||||||
CPPFLAGS = -I$(incdir) -I$(top_builddir) -I$(devdir) -I$(srcdir) -I$(top_srcdir) -DLIBDIR=\"$(libdir)\" @CPPFLAGS@
|
CPPFLAGS = -I$(incdir) -I$(top_builddir) -I$(devdir) -I$(srcdir) -I$(top_srcdir) -DLIBDIR=\"$(libdir)\" @CPPFLAGS@
|
||||||
@ -134,7 +136,7 @@ AUTH_OBJS = sudo_auth.lo @AUTH_OBJS@
|
|||||||
|
|
||||||
LIBPARSESUDOERS_OBJS = alias.lo audit.lo base64.lo defaults.lo hexchar.lo \
|
LIBPARSESUDOERS_OBJS = alias.lo audit.lo base64.lo defaults.lo hexchar.lo \
|
||||||
gram.lo match.lo match_addr.lo pwutil.lo pwutil_impl.lo \
|
gram.lo match.lo match_addr.lo pwutil.lo pwutil_impl.lo \
|
||||||
timestr.lo toke.lo toke_util.lo redblack.lo sha2.lo
|
timestr.lo toke.lo toke_util.lo redblack.lo
|
||||||
|
|
||||||
SUDOERS_OBJS = $(AUTH_OBJS) boottime.lo check.lo env.lo find_path.lo \
|
SUDOERS_OBJS = $(AUTH_OBJS) boottime.lo check.lo env.lo find_path.lo \
|
||||||
goodpath.lo group_plugin.lo interfaces.lo iolog.lo \
|
goodpath.lo group_plugin.lo interfaces.lo iolog.lo \
|
||||||
@ -153,7 +155,7 @@ CHECK_ADDR_OBJS = check_addr.o interfaces.o locale.o match_addr.o
|
|||||||
|
|
||||||
CHECK_BASE64_OBJS = check_base64.o base64.o locale.o
|
CHECK_BASE64_OBJS = check_base64.o base64.o locale.o
|
||||||
|
|
||||||
CHECK_DIGEST_OBJS = check_digest.o sha2.o
|
CHECK_DIGEST_OBJS = check_digest.o
|
||||||
|
|
||||||
CHECK_FILL_OBJS = check_fill.o hexchar.o locale.o toke_util.o
|
CHECK_FILL_OBJS = check_fill.o hexchar.o locale.o toke_util.o
|
||||||
|
|
||||||
@ -200,13 +202,13 @@ sudoers.la: $(SUDOERS_OBJS) $(LT_LIBS) libparsesudoers.la @LT_LDDEP@
|
|||||||
$(LIBTOOL) @LT_STATIC@ --mode=link $(CC) $(LDFLAGS) $(LT_LDFLAGS) -o $@ $(SUDOERS_OBJS) libparsesudoers.la $(SUDOERS_LIBS) -module -avoid-version -rpath $(plugindir)
|
$(LIBTOOL) @LT_STATIC@ --mode=link $(CC) $(LDFLAGS) $(LT_LDFLAGS) -o $@ $(SUDOERS_OBJS) libparsesudoers.la $(SUDOERS_LIBS) -module -avoid-version -rpath $(plugindir)
|
||||||
|
|
||||||
visudo: libparsesudoers.la $(VISUDO_OBJS) $(LT_LIBS)
|
visudo: libparsesudoers.la $(VISUDO_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(VISUDO_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) libparsesudoers.la $(LIBS) $(NET_LIBS)
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(VISUDO_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) libparsesudoers.la $(VISUDO_LIBS) $(LIBS)
|
||||||
|
|
||||||
sudoreplay: timestr.lo $(REPLAY_OBJS) $(LT_LIBS)
|
sudoreplay: timestr.lo $(REPLAY_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(REPLAY_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) timestr.lo $(REPLAY_LIBS) $(LIBS)
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(REPLAY_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) timestr.lo $(REPLAY_LIBS) $(LIBS)
|
||||||
|
|
||||||
testsudoers: libparsesudoers.la $(TEST_OBJS) $(LT_LIBS)
|
testsudoers: libparsesudoers.la $(TEST_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(TEST_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) libparsesudoers.la $(LIBS) $(NET_LIBS) @LIBDL@
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(TEST_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) libparsesudoers.la $(TESTSUDOERS_LIBS) $(LIBS)
|
||||||
|
|
||||||
check_addr: $(CHECK_ADDR_OBJS) $(LT_LIBS)
|
check_addr: $(CHECK_ADDR_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_ADDR_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) $(NET_LIBS)
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_ADDR_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) $(NET_LIBS)
|
||||||
@ -215,7 +217,7 @@ check_base64: $(CHECK_BASE64_OBJS) $(LT_LIBS)
|
|||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_BASE64_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS)
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_BASE64_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS)
|
||||||
|
|
||||||
check_digest: $(CHECK_DIGEST_OBJS) $(LT_LIBS)
|
check_digest: $(CHECK_DIGEST_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_DIGEST_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS)
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_DIGEST_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) @LIBMD@
|
||||||
|
|
||||||
check_fill: $(CHECK_FILL_OBJS) $(LT_LIBS)
|
check_fill: $(CHECK_FILL_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_FILL_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS)
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_FILL_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS)
|
||||||
@ -509,12 +511,12 @@ check_base64.o: $(srcdir)/regress/parser/check_base64.c $(incdir)/missing.h \
|
|||||||
$(top_builddir)/config.h
|
$(top_builddir)/config.h
|
||||||
$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/parser/check_base64.c
|
$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/parser/check_base64.c
|
||||||
check_digest.o: $(srcdir)/regress/parser/check_digest.c $(incdir)/missing.h \
|
check_digest.o: $(srcdir)/regress/parser/check_digest.c $(incdir)/missing.h \
|
||||||
$(srcdir)/sha2.h $(top_builddir)/config.h
|
$(top_builddir)/config.h
|
||||||
$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/parser/check_digest.c
|
$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/parser/check_digest.c
|
||||||
check_fill.o: $(srcdir)/regress/parser/check_fill.c $(devdir)/gram.h \
|
check_fill.o: $(srcdir)/regress/parser/check_fill.c $(devdir)/gram.h \
|
||||||
$(incdir)/missing.h $(incdir)/queue.h $(incdir)/sudo_plugin.h \
|
$(incdir)/missing.h $(incdir)/queue.h $(incdir)/sudo_plugin.h \
|
||||||
$(srcdir)/parse.h $(srcdir)/toke.h $(top_builddir)/config.h \
|
$(incdir)/sudo_util.h $(srcdir)/parse.h $(srcdir)/toke.h \
|
||||||
$(top_srcdir)/compat/stdbool.h
|
$(top_builddir)/config.h $(top_srcdir)/compat/stdbool.h
|
||||||
$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/parser/check_fill.c
|
$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/regress/parser/check_fill.c
|
||||||
check_iolog_path.o: $(srcdir)/regress/iolog_path/check_iolog_path.c \
|
check_iolog_path.o: $(srcdir)/regress/iolog_path/check_iolog_path.c \
|
||||||
$(devdir)/def_data.c $(devdir)/def_data.h \
|
$(devdir)/def_data.c $(devdir)/def_data.h \
|
||||||
@ -615,8 +617,8 @@ group_plugin.lo: $(srcdir)/group_plugin.c $(devdir)/def_data.h \
|
|||||||
$(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h
|
$(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/group_plugin.c
|
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/group_plugin.c
|
||||||
group_plugin.o: group_plugin.lo
|
group_plugin.o: group_plugin.lo
|
||||||
hexchar.lo: $(srcdir)/hexchar.c $(incdir)/fatal.h $(incdir)/missing.h \
|
hexchar.lo: $(srcdir)/hexchar.c $(incdir)/missing.h $(incdir)/sudo_debug.h \
|
||||||
$(incdir)/sudo_debug.h $(top_builddir)/config.h
|
$(top_builddir)/config.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/hexchar.c
|
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/hexchar.c
|
||||||
hexchar.o: hexchar.lo
|
hexchar.o: hexchar.lo
|
||||||
interfaces.lo: $(srcdir)/interfaces.c $(devdir)/def_data.h $(incdir)/alloc.h \
|
interfaces.lo: $(srcdir)/interfaces.c $(devdir)/def_data.h $(incdir)/alloc.h \
|
||||||
@ -694,9 +696,9 @@ match.lo: $(srcdir)/match.c $(devdir)/def_data.h $(devdir)/gram.h \
|
|||||||
$(incdir)/gettext.h $(incdir)/missing.h $(incdir)/queue.h \
|
$(incdir)/gettext.h $(incdir)/missing.h $(incdir)/queue.h \
|
||||||
$(incdir)/sudo_debug.h $(incdir)/sudo_plugin.h $(incdir)/sudo_util.h \
|
$(incdir)/sudo_debug.h $(incdir)/sudo_plugin.h $(incdir)/sudo_util.h \
|
||||||
$(srcdir)/defaults.h $(srcdir)/logging.h $(srcdir)/parse.h \
|
$(srcdir)/defaults.h $(srcdir)/logging.h $(srcdir)/parse.h \
|
||||||
$(srcdir)/sha2.h $(srcdir)/sudo_nss.h $(srcdir)/sudoers.h \
|
$(srcdir)/sudo_nss.h $(srcdir)/sudoers.h $(top_builddir)/config.h \
|
||||||
$(top_builddir)/config.h $(top_builddir)/pathnames.h \
|
$(top_builddir)/pathnames.h $(top_srcdir)/compat/fnmatch.h \
|
||||||
$(top_srcdir)/compat/fnmatch.h $(top_srcdir)/compat/glob.h \
|
$(top_srcdir)/compat/glob.h $(top_srcdir)/compat/sha2.h \
|
||||||
$(top_srcdir)/compat/stdbool.h
|
$(top_srcdir)/compat/stdbool.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/match.c
|
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/match.c
|
||||||
match_addr.lo: $(srcdir)/match_addr.c $(devdir)/def_data.h $(incdir)/alloc.h \
|
match_addr.lo: $(srcdir)/match_addr.c $(devdir)/def_data.h $(incdir)/alloc.h \
|
||||||
@ -812,10 +814,6 @@ set_perms.lo: $(srcdir)/set_perms.c $(devdir)/def_data.h $(incdir)/alloc.h \
|
|||||||
$(srcdir)/sudoers.h $(top_builddir)/config.h \
|
$(srcdir)/sudoers.h $(top_builddir)/config.h \
|
||||||
$(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h
|
$(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/set_perms.c
|
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/set_perms.c
|
||||||
sha2.lo: $(srcdir)/sha2.c $(incdir)/missing.h $(srcdir)/sha2.h \
|
|
||||||
$(top_builddir)/config.h $(top_srcdir)/compat/endian.h
|
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/sha2.c
|
|
||||||
sha2.o: sha2.lo
|
|
||||||
sia.lo: $(authdir)/sia.c $(devdir)/def_data.h $(incdir)/alloc.h \
|
sia.lo: $(authdir)/sia.c $(devdir)/def_data.h $(incdir)/alloc.h \
|
||||||
$(incdir)/fatal.h $(incdir)/fileops.h $(incdir)/gettext.h \
|
$(incdir)/fatal.h $(incdir)/fileops.h $(incdir)/gettext.h \
|
||||||
$(incdir)/missing.h $(incdir)/queue.h $(incdir)/sudo_debug.h \
|
$(incdir)/missing.h $(incdir)/queue.h $(incdir)/sudo_debug.h \
|
||||||
@ -898,9 +896,9 @@ toke.lo: $(devdir)/toke.c $(devdir)/def_data.h $(devdir)/gram.h \
|
|||||||
$(incdir)/gettext.h $(incdir)/lbuf.h $(incdir)/missing.h \
|
$(incdir)/gettext.h $(incdir)/lbuf.h $(incdir)/missing.h \
|
||||||
$(incdir)/queue.h $(incdir)/secure_path.h $(incdir)/sudo_debug.h \
|
$(incdir)/queue.h $(incdir)/secure_path.h $(incdir)/sudo_debug.h \
|
||||||
$(incdir)/sudo_plugin.h $(incdir)/sudo_util.h $(srcdir)/defaults.h \
|
$(incdir)/sudo_plugin.h $(incdir)/sudo_util.h $(srcdir)/defaults.h \
|
||||||
$(srcdir)/logging.h $(srcdir)/parse.h $(srcdir)/sha2.h \
|
$(srcdir)/logging.h $(srcdir)/parse.h $(srcdir)/sudo_nss.h \
|
||||||
$(srcdir)/sudo_nss.h $(srcdir)/sudoers.h $(srcdir)/toke.h \
|
$(srcdir)/sudoers.h $(srcdir)/toke.h $(top_builddir)/config.h \
|
||||||
$(top_builddir)/config.h $(top_builddir)/pathnames.h \
|
$(top_builddir)/pathnames.h $(top_srcdir)/compat/sha2.h \
|
||||||
$(top_srcdir)/compat/stdbool.h
|
$(top_srcdir)/compat/stdbool.h
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(devdir)/toke.c
|
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(devdir)/toke.c
|
||||||
toke_util.lo: $(srcdir)/toke_util.c $(devdir)/def_data.h $(devdir)/gram.h \
|
toke_util.lo: $(srcdir)/toke_util.c $(devdir)/def_data.h $(devdir)/gram.h \
|
||||||
|
@ -179,10 +179,10 @@ typedef union {
|
|||||||
#define PRIVS 289
|
#define PRIVS 289
|
||||||
#define LIMITPRIVS 290
|
#define LIMITPRIVS 290
|
||||||
#define MYSELF 291
|
#define MYSELF 291
|
||||||
#define SHA224 292
|
#define SHA224_TOK 292
|
||||||
#define SHA256 293
|
#define SHA256_TOK 293
|
||||||
#define SHA384 294
|
#define SHA384_TOK 294
|
||||||
#define SHA512 295
|
#define SHA512_TOK 295
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
#if defined(__cplusplus) || defined(__STDC__)
|
#if defined(__cplusplus) || defined(__STDC__)
|
||||||
const short sudoerslhs[] =
|
const short sudoerslhs[] =
|
||||||
@ -550,7 +550,7 @@ char *sudoersname[] =
|
|||||||
"NOPASSWD","PASSWD","NOEXEC","EXEC","SETENV","NOSETENV","LOG_INPUT",
|
"NOPASSWD","PASSWD","NOEXEC","EXEC","SETENV","NOSETENV","LOG_INPUT",
|
||||||
"NOLOG_INPUT","LOG_OUTPUT","NOLOG_OUTPUT","ALL","COMMENT","HOSTALIAS",
|
"NOLOG_INPUT","LOG_OUTPUT","NOLOG_OUTPUT","ALL","COMMENT","HOSTALIAS",
|
||||||
"CMNDALIAS","USERALIAS","RUNASALIAS","ERROR","TYPE","ROLE","PRIVS","LIMITPRIVS",
|
"CMNDALIAS","USERALIAS","RUNASALIAS","ERROR","TYPE","ROLE","PRIVS","LIMITPRIVS",
|
||||||
"MYSELF","SHA224","SHA256","SHA384","SHA512",
|
"MYSELF","SHA224_TOK","SHA256_TOK","SHA384_TOK","SHA512_TOK",
|
||||||
};
|
};
|
||||||
#if defined(__cplusplus) || defined(__STDC__)
|
#if defined(__cplusplus) || defined(__STDC__)
|
||||||
const char * const sudoersrule[] =
|
const char * const sudoersrule[] =
|
||||||
@ -594,10 +594,10 @@ char *sudoersrule[] =
|
|||||||
"cmndspeclist : cmndspec",
|
"cmndspeclist : cmndspec",
|
||||||
"cmndspeclist : cmndspeclist ',' cmndspec",
|
"cmndspeclist : cmndspeclist ',' cmndspec",
|
||||||
"cmndspec : runasspec selinux solarisprivs cmndtag digcmnd",
|
"cmndspec : runasspec selinux solarisprivs cmndtag digcmnd",
|
||||||
"digest : SHA224 ':' DIGEST",
|
"digest : SHA224_TOK ':' DIGEST",
|
||||||
"digest : SHA256 ':' DIGEST",
|
"digest : SHA256_TOK ':' DIGEST",
|
||||||
"digest : SHA384 ':' DIGEST",
|
"digest : SHA384_TOK ':' DIGEST",
|
||||||
"digest : SHA512 ':' DIGEST",
|
"digest : SHA512_TOK ':' DIGEST",
|
||||||
"digcmnd : opcmnd",
|
"digcmnd : opcmnd",
|
||||||
"digcmnd : digest opcmnd",
|
"digcmnd : digest opcmnd",
|
||||||
"opcmnd : cmnd",
|
"opcmnd : cmnd",
|
||||||
@ -1089,12 +1089,12 @@ yyloop:
|
|||||||
goto yyreduce;
|
goto yyreduce;
|
||||||
}
|
}
|
||||||
if (yyerrflag) goto yyinrecovery;
|
if (yyerrflag) goto yyinrecovery;
|
||||||
#if defined(lint) || defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
goto yynewerror;
|
goto yynewerror;
|
||||||
#endif
|
#endif
|
||||||
yynewerror:
|
yynewerror:
|
||||||
yyerror("syntax error");
|
yyerror("syntax error");
|
||||||
#if defined(lint) || defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
goto yyerrlab;
|
goto yyerrlab;
|
||||||
#endif
|
#endif
|
||||||
yyerrlab:
|
yyerrlab:
|
||||||
|
@ -33,10 +33,10 @@
|
|||||||
#define PRIVS 289
|
#define PRIVS 289
|
||||||
#define LIMITPRIVS 290
|
#define LIMITPRIVS 290
|
||||||
#define MYSELF 291
|
#define MYSELF 291
|
||||||
#define SHA224 292
|
#define SHA224_TOK 292
|
||||||
#define SHA256 293
|
#define SHA256_TOK 293
|
||||||
#define SHA384 294
|
#define SHA384_TOK 294
|
||||||
#define SHA512 295
|
#define SHA512_TOK 295
|
||||||
#ifndef YYSTYPE_DEFINED
|
#ifndef YYSTYPE_DEFINED
|
||||||
#define YYSTYPE_DEFINED
|
#define YYSTYPE_DEFINED
|
||||||
typedef union {
|
typedef union {
|
||||||
|
@ -142,10 +142,10 @@ static struct sudo_digest *new_digest(int, const char *);
|
|||||||
%token <tok> PRIVS /* Solaris privileges */
|
%token <tok> PRIVS /* Solaris privileges */
|
||||||
%token <tok> LIMITPRIVS /* Solaris limit privileges */
|
%token <tok> LIMITPRIVS /* Solaris limit privileges */
|
||||||
%token <tok> MYSELF /* run as myself, not another user */
|
%token <tok> MYSELF /* run as myself, not another user */
|
||||||
%token <tok> SHA224 /* sha224 digest */
|
%token <tok> SHA224_TOK /* sha224 token */
|
||||||
%token <tok> SHA256 /* sha256 digest */
|
%token <tok> SHA256_TOK /* sha256 token */
|
||||||
%token <tok> SHA384 /* sha384 digest */
|
%token <tok> SHA384_TOK /* sha384 token */
|
||||||
%token <tok> SHA512 /* sha512 digest */
|
%token <tok> SHA512_TOK /* sha512 token */
|
||||||
|
|
||||||
%type <cmndspec> cmndspec
|
%type <cmndspec> cmndspec
|
||||||
%type <cmndspec> cmndspeclist
|
%type <cmndspec> cmndspeclist
|
||||||
@ -370,16 +370,16 @@ cmndspec : runasspec selinux solarisprivs cmndtag digcmnd {
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
digest : SHA224 ':' DIGEST {
|
digest : SHA224_TOK ':' DIGEST {
|
||||||
$$ = new_digest(SUDO_DIGEST_SHA224, $3);
|
$$ = new_digest(SUDO_DIGEST_SHA224, $3);
|
||||||
}
|
}
|
||||||
| SHA256 ':' DIGEST {
|
| SHA256_TOK ':' DIGEST {
|
||||||
$$ = new_digest(SUDO_DIGEST_SHA256, $3);
|
$$ = new_digest(SUDO_DIGEST_SHA256, $3);
|
||||||
}
|
}
|
||||||
| SHA384 ':' DIGEST {
|
| SHA384_TOK ':' DIGEST {
|
||||||
$$ = new_digest(SUDO_DIGEST_SHA384, $3);
|
$$ = new_digest(SUDO_DIGEST_SHA384, $3);
|
||||||
}
|
}
|
||||||
| SHA512 ':' DIGEST {
|
| SHA512_TOK ':' DIGEST {
|
||||||
$$ = new_digest(SUDO_DIGEST_SHA512, $3);
|
$$ = new_digest(SUDO_DIGEST_SHA512, $3);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
@ -81,13 +81,17 @@
|
|||||||
# include <ndir.h>
|
# include <ndir.h>
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_SHA224UPDATE
|
||||||
|
# include <sha2.h>
|
||||||
|
#else
|
||||||
|
# include "compat/sha2.h"
|
||||||
|
#endif
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include <grp.h>
|
#include <grp.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include "sudoers.h"
|
#include "sudoers.h"
|
||||||
#include "parse.h"
|
#include "parse.h"
|
||||||
#include "sha2.h"
|
|
||||||
#include <gram.h>
|
#include <gram.h>
|
||||||
|
|
||||||
static struct member_list empty = TAILQ_HEAD_INITIALIZER(empty);
|
static struct member_list empty = TAILQ_HEAD_INITIALIZER(empty);
|
||||||
@ -561,8 +565,13 @@ static struct digest_function {
|
|||||||
const char *digest_name;
|
const char *digest_name;
|
||||||
const unsigned int digest_len;
|
const unsigned int digest_len;
|
||||||
void (*init)(SHA2_CTX *);
|
void (*init)(SHA2_CTX *);
|
||||||
|
#ifdef SHA2_VOID_PTR
|
||||||
|
void (*update)(SHA2_CTX *, const void *, size_t);
|
||||||
|
void (*final)(void *, SHA2_CTX *);
|
||||||
|
#else
|
||||||
void (*update)(SHA2_CTX *, const unsigned char *, size_t);
|
void (*update)(SHA2_CTX *, const unsigned char *, size_t);
|
||||||
void (*final)(unsigned char *, SHA2_CTX *);
|
void (*final)(unsigned char *, SHA2_CTX *);
|
||||||
|
#endif
|
||||||
} digest_functions[] = {
|
} digest_functions[] = {
|
||||||
{
|
{
|
||||||
"SHA224",
|
"SHA224",
|
||||||
|
@ -39,9 +39,13 @@
|
|||||||
#elif defined(HAVE_INTTYPES_H)
|
#elif defined(HAVE_INTTYPES_H)
|
||||||
# include <inttypes.h>
|
# include <inttypes.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_SHA224UPDATE
|
||||||
|
# include <sha2.h>
|
||||||
|
#else
|
||||||
|
# include "compat/sha2.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "missing.h"
|
#include "missing.h"
|
||||||
#include "sha2.h"
|
|
||||||
|
|
||||||
__dso_public int main(int argc, char *argv[]);
|
__dso_public int main(int argc, char *argv[]);
|
||||||
|
|
||||||
@ -49,8 +53,13 @@ static struct digest_function {
|
|||||||
const char *digest_name;
|
const char *digest_name;
|
||||||
const int digest_len;
|
const int digest_len;
|
||||||
void (*init)(SHA2_CTX *);
|
void (*init)(SHA2_CTX *);
|
||||||
|
#ifdef SHA2_VOID_PTR
|
||||||
|
void (*update)(SHA2_CTX *, const void *, size_t);
|
||||||
|
void (*final)(void *, SHA2_CTX *);
|
||||||
|
#else
|
||||||
void (*update)(SHA2_CTX *, const unsigned char *, size_t);
|
void (*update)(SHA2_CTX *, const unsigned char *, size_t);
|
||||||
void (*final)(unsigned char *, SHA2_CTX *);
|
void (*final)(unsigned char *, SHA2_CTX *);
|
||||||
|
#endif
|
||||||
} digest_functions[] = {
|
} digest_functions[] = {
|
||||||
{
|
{
|
||||||
"SHA224",
|
"SHA224",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
CMNDALIAS ALIAS = SHA224 : DIGEST COMMAND
|
CMNDALIAS ALIAS = SHA224_TOK : DIGEST COMMAND
|
||||||
CMNDALIAS ALIAS = SHA256 : DIGEST COMMAND
|
CMNDALIAS ALIAS = SHA256_TOK : DIGEST COMMAND
|
||||||
|
|
||||||
WORD(5) ALL = ALIAS , ALIAS , SHA512 : DIGEST COMMAND
|
WORD(5) ALL = ALIAS , ALIAS , SHA512_TOK : DIGEST COMMAND
|
||||||
|
@ -1997,6 +1997,11 @@ char *yytext;
|
|||||||
# include <ndir.h>
|
# include <ndir.h>
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_SHA224UPDATE
|
||||||
|
# include <sha2.h>
|
||||||
|
#else
|
||||||
|
# include "compat/sha2.h"
|
||||||
|
#endif
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include "sudoers.h"
|
#include "sudoers.h"
|
||||||
@ -2004,7 +2009,6 @@ char *yytext;
|
|||||||
#include "toke.h"
|
#include "toke.h"
|
||||||
#include <gram.h>
|
#include <gram.h>
|
||||||
#include "lbuf.h"
|
#include "lbuf.h"
|
||||||
#include "sha2.h"
|
|
||||||
#include "secure_path.h"
|
#include "secure_path.h"
|
||||||
|
|
||||||
int sudolineno; /* current sudoers line number. */
|
int sudolineno; /* current sudoers line number. */
|
||||||
@ -2050,7 +2054,7 @@ int (*trace_print)(const char *msg) = sudoers_trace_print;
|
|||||||
|
|
||||||
#define WANTDIGEST 6
|
#define WANTDIGEST 6
|
||||||
|
|
||||||
#line 2053 "lex.sudoers.c"
|
#line 2057 "lex.sudoers.c"
|
||||||
|
|
||||||
/* Macros after this point can all be overridden by user definitions in
|
/* Macros after this point can all be overridden by user definitions in
|
||||||
* section 1.
|
* section 1.
|
||||||
@ -2204,9 +2208,9 @@ YY_DECL
|
|||||||
register char *yy_cp, *yy_bp;
|
register char *yy_cp, *yy_bp;
|
||||||
register int yy_act;
|
register int yy_act;
|
||||||
|
|
||||||
#line 137 "toke.l"
|
#line 141 "toke.l"
|
||||||
|
|
||||||
#line 2209 "lex.sudoers.c"
|
#line 2213 "lex.sudoers.c"
|
||||||
|
|
||||||
if ( yy_init )
|
if ( yy_init )
|
||||||
{
|
{
|
||||||
@ -2292,7 +2296,7 @@ do_action: /* This label is used only to access EOF actions. */
|
|||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 138 "toke.l"
|
#line 142 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE(", ");
|
LEXTRACE(", ");
|
||||||
LEXRETURN(',');
|
LEXRETURN(',');
|
||||||
@ -2300,12 +2304,12 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 2:
|
case 2:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 143 "toke.l"
|
#line 147 "toke.l"
|
||||||
BEGIN STARTDEFS;
|
BEGIN STARTDEFS;
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 3:
|
case 3:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 145 "toke.l"
|
#line 149 "toke.l"
|
||||||
{
|
{
|
||||||
BEGIN INDEFS;
|
BEGIN INDEFS;
|
||||||
LEXTRACE("DEFVAR ");
|
LEXTRACE("DEFVAR ");
|
||||||
@ -2317,7 +2321,7 @@ YY_RULE_SETUP
|
|||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 154 "toke.l"
|
#line 158 "toke.l"
|
||||||
{
|
{
|
||||||
BEGIN STARTDEFS;
|
BEGIN STARTDEFS;
|
||||||
LEXTRACE(", ");
|
LEXTRACE(", ");
|
||||||
@ -2326,7 +2330,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 5:
|
case 5:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 160 "toke.l"
|
#line 164 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("= ");
|
LEXTRACE("= ");
|
||||||
LEXRETURN('=');
|
LEXRETURN('=');
|
||||||
@ -2334,7 +2338,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 6:
|
case 6:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 165 "toke.l"
|
#line 169 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("+= ");
|
LEXTRACE("+= ");
|
||||||
LEXRETURN('+');
|
LEXRETURN('+');
|
||||||
@ -2342,7 +2346,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 7:
|
case 7:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 170 "toke.l"
|
#line 174 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("-= ");
|
LEXTRACE("-= ");
|
||||||
LEXRETURN('-');
|
LEXRETURN('-');
|
||||||
@ -2350,7 +2354,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 8:
|
case 8:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 175 "toke.l"
|
#line 179 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("BEGINSTR ");
|
LEXTRACE("BEGINSTR ");
|
||||||
sudoerslval.string = NULL;
|
sudoerslval.string = NULL;
|
||||||
@ -2360,7 +2364,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 9:
|
case 9:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 182 "toke.l"
|
#line 186 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("WORD(2) ");
|
LEXTRACE("WORD(2) ");
|
||||||
if (!fill(sudoerstext, sudoersleng))
|
if (!fill(sudoerstext, sudoersleng))
|
||||||
@ -2372,7 +2376,7 @@ YY_RULE_SETUP
|
|||||||
|
|
||||||
case 10:
|
case 10:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 191 "toke.l"
|
#line 195 "toke.l"
|
||||||
{
|
{
|
||||||
/* Line continuation char followed by newline. */
|
/* Line continuation char followed by newline. */
|
||||||
sudolineno++;
|
sudolineno++;
|
||||||
@ -2381,7 +2385,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 11:
|
case 11:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 197 "toke.l"
|
#line 201 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("ENDSTR ");
|
LEXTRACE("ENDSTR ");
|
||||||
BEGIN prev_state;
|
BEGIN prev_state;
|
||||||
@ -2416,7 +2420,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 12:
|
case 12:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 229 "toke.l"
|
#line 233 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("BACKSLASH ");
|
LEXTRACE("BACKSLASH ");
|
||||||
if (!append(sudoerstext, sudoersleng))
|
if (!append(sudoerstext, sudoersleng))
|
||||||
@ -2425,7 +2429,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 13:
|
case 13:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 235 "toke.l"
|
#line 239 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("STRBODY ");
|
LEXTRACE("STRBODY ");
|
||||||
if (!append(sudoerstext, sudoersleng))
|
if (!append(sudoerstext, sudoersleng))
|
||||||
@ -2436,7 +2440,7 @@ YY_RULE_SETUP
|
|||||||
|
|
||||||
case 14:
|
case 14:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 243 "toke.l"
|
#line 247 "toke.l"
|
||||||
{
|
{
|
||||||
/* quoted fnmatch glob char, pass verbatim */
|
/* quoted fnmatch glob char, pass verbatim */
|
||||||
LEXTRACE("QUOTEDCHAR ");
|
LEXTRACE("QUOTEDCHAR ");
|
||||||
@ -2447,7 +2451,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 15:
|
case 15:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 251 "toke.l"
|
#line 255 "toke.l"
|
||||||
{
|
{
|
||||||
/* quoted sudoers special char, strip backslash */
|
/* quoted sudoers special char, strip backslash */
|
||||||
LEXTRACE("QUOTEDCHAR ");
|
LEXTRACE("QUOTEDCHAR ");
|
||||||
@ -2458,7 +2462,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 16:
|
case 16:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 259 "toke.l"
|
#line 263 "toke.l"
|
||||||
{
|
{
|
||||||
BEGIN INITIAL;
|
BEGIN INITIAL;
|
||||||
yyless(0);
|
yyless(0);
|
||||||
@ -2467,7 +2471,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 17:
|
case 17:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 265 "toke.l"
|
#line 269 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("ARG ");
|
LEXTRACE("ARG ");
|
||||||
if (!fill_args(sudoerstext, sudoersleng, sawspace))
|
if (!fill_args(sudoerstext, sudoersleng, sawspace))
|
||||||
@ -2478,7 +2482,7 @@ YY_RULE_SETUP
|
|||||||
|
|
||||||
case 18:
|
case 18:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 273 "toke.l"
|
#line 277 "toke.l"
|
||||||
{
|
{
|
||||||
/* Only return DIGEST if the length is correct. */
|
/* Only return DIGEST if the length is correct. */
|
||||||
if (sudoersleng == digest_len * 2) {
|
if (sudoersleng == digest_len * 2) {
|
||||||
@ -2494,7 +2498,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 19:
|
case 19:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 286 "toke.l"
|
#line 290 "toke.l"
|
||||||
{
|
{
|
||||||
/* Only return DIGEST if the length is correct. */
|
/* Only return DIGEST if the length is correct. */
|
||||||
int len;
|
int len;
|
||||||
@ -2518,7 +2522,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 20:
|
case 20:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 307 "toke.l"
|
#line 311 "toke.l"
|
||||||
{
|
{
|
||||||
char *path;
|
char *path;
|
||||||
|
|
||||||
@ -2539,7 +2543,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 21:
|
case 21:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 325 "toke.l"
|
#line 329 "toke.l"
|
||||||
{
|
{
|
||||||
char *path;
|
char *path;
|
||||||
|
|
||||||
@ -2563,7 +2567,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 22:
|
case 22:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 346 "toke.l"
|
#line 350 "toke.l"
|
||||||
{
|
{
|
||||||
char deftype;
|
char deftype;
|
||||||
int n;
|
int n;
|
||||||
@ -2606,7 +2610,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 23:
|
case 23:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 386 "toke.l"
|
#line 390 "toke.l"
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
@ -2635,7 +2639,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 24:
|
case 24:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 412 "toke.l"
|
#line 416 "toke.l"
|
||||||
{
|
{
|
||||||
/* cmnd does not require passwd for this user */
|
/* cmnd does not require passwd for this user */
|
||||||
LEXTRACE("NOPASSWD ");
|
LEXTRACE("NOPASSWD ");
|
||||||
@ -2644,7 +2648,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 25:
|
case 25:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 418 "toke.l"
|
#line 422 "toke.l"
|
||||||
{
|
{
|
||||||
/* cmnd requires passwd for this user */
|
/* cmnd requires passwd for this user */
|
||||||
LEXTRACE("PASSWD ");
|
LEXTRACE("PASSWD ");
|
||||||
@ -2653,7 +2657,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 26:
|
case 26:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 424 "toke.l"
|
#line 428 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("NOEXEC ");
|
LEXTRACE("NOEXEC ");
|
||||||
LEXRETURN(NOEXEC);
|
LEXRETURN(NOEXEC);
|
||||||
@ -2661,7 +2665,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 27:
|
case 27:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 429 "toke.l"
|
#line 433 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("EXEC ");
|
LEXTRACE("EXEC ");
|
||||||
LEXRETURN(EXEC);
|
LEXRETURN(EXEC);
|
||||||
@ -2669,7 +2673,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 28:
|
case 28:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 434 "toke.l"
|
#line 438 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("SETENV ");
|
LEXTRACE("SETENV ");
|
||||||
LEXRETURN(SETENV);
|
LEXRETURN(SETENV);
|
||||||
@ -2677,7 +2681,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 29:
|
case 29:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 439 "toke.l"
|
#line 443 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("NOSETENV ");
|
LEXTRACE("NOSETENV ");
|
||||||
LEXRETURN(NOSETENV);
|
LEXRETURN(NOSETENV);
|
||||||
@ -2685,7 +2689,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 30:
|
case 30:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 444 "toke.l"
|
#line 448 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("LOG_OUTPUT ");
|
LEXTRACE("LOG_OUTPUT ");
|
||||||
LEXRETURN(LOG_OUTPUT);
|
LEXRETURN(LOG_OUTPUT);
|
||||||
@ -2693,7 +2697,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 31:
|
case 31:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 449 "toke.l"
|
#line 453 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("NOLOG_OUTPUT ");
|
LEXTRACE("NOLOG_OUTPUT ");
|
||||||
LEXRETURN(NOLOG_OUTPUT);
|
LEXRETURN(NOLOG_OUTPUT);
|
||||||
@ -2701,7 +2705,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 32:
|
case 32:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 454 "toke.l"
|
#line 458 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("LOG_INPUT ");
|
LEXTRACE("LOG_INPUT ");
|
||||||
LEXRETURN(LOG_INPUT);
|
LEXRETURN(LOG_INPUT);
|
||||||
@ -2709,7 +2713,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 33:
|
case 33:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 459 "toke.l"
|
#line 463 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("NOLOG_INPUT ");
|
LEXTRACE("NOLOG_INPUT ");
|
||||||
LEXRETURN(NOLOG_INPUT);
|
LEXRETURN(NOLOG_INPUT);
|
||||||
@ -2717,7 +2721,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 34:
|
case 34:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 464 "toke.l"
|
#line 468 "toke.l"
|
||||||
{
|
{
|
||||||
/* empty group or netgroup */
|
/* empty group or netgroup */
|
||||||
LEXTRACE("ERROR ");
|
LEXTRACE("ERROR ");
|
||||||
@ -2726,7 +2730,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 35:
|
case 35:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 470 "toke.l"
|
#line 474 "toke.l"
|
||||||
{
|
{
|
||||||
/* netgroup */
|
/* netgroup */
|
||||||
if (!fill(sudoerstext, sudoersleng))
|
if (!fill(sudoerstext, sudoersleng))
|
||||||
@ -2737,7 +2741,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 36:
|
case 36:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 478 "toke.l"
|
#line 482 "toke.l"
|
||||||
{
|
{
|
||||||
/* group */
|
/* group */
|
||||||
if (!fill(sudoerstext, sudoersleng))
|
if (!fill(sudoerstext, sudoersleng))
|
||||||
@ -2748,7 +2752,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 37:
|
case 37:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 486 "toke.l"
|
#line 490 "toke.l"
|
||||||
{
|
{
|
||||||
if (!fill(sudoerstext, sudoersleng))
|
if (!fill(sudoerstext, sudoersleng))
|
||||||
yyterminate();
|
yyterminate();
|
||||||
@ -2758,7 +2762,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 38:
|
case 38:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 493 "toke.l"
|
#line 497 "toke.l"
|
||||||
{
|
{
|
||||||
if (!fill(sudoerstext, sudoersleng))
|
if (!fill(sudoerstext, sudoersleng))
|
||||||
yyterminate();
|
yyterminate();
|
||||||
@ -2768,7 +2772,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 39:
|
case 39:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 500 "toke.l"
|
#line 504 "toke.l"
|
||||||
{
|
{
|
||||||
if (!ipv6_valid(sudoerstext)) {
|
if (!ipv6_valid(sudoerstext)) {
|
||||||
LEXTRACE("ERROR ");
|
LEXTRACE("ERROR ");
|
||||||
@ -2782,7 +2786,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 40:
|
case 40:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 511 "toke.l"
|
#line 515 "toke.l"
|
||||||
{
|
{
|
||||||
if (!ipv6_valid(sudoerstext)) {
|
if (!ipv6_valid(sudoerstext)) {
|
||||||
LEXTRACE("ERROR ");
|
LEXTRACE("ERROR ");
|
||||||
@ -2796,7 +2800,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 41:
|
case 41:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 522 "toke.l"
|
#line 526 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("ALL ");
|
LEXTRACE("ALL ");
|
||||||
LEXRETURN(ALL);
|
LEXRETURN(ALL);
|
||||||
@ -2805,7 +2809,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 42:
|
case 42:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 528 "toke.l"
|
#line 532 "toke.l"
|
||||||
{
|
{
|
||||||
#ifdef HAVE_SELINUX
|
#ifdef HAVE_SELINUX
|
||||||
LEXTRACE("ROLE ");
|
LEXTRACE("ROLE ");
|
||||||
@ -2817,7 +2821,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 43:
|
case 43:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 537 "toke.l"
|
#line 541 "toke.l"
|
||||||
{
|
{
|
||||||
#ifdef HAVE_SELINUX
|
#ifdef HAVE_SELINUX
|
||||||
LEXTRACE("TYPE ");
|
LEXTRACE("TYPE ");
|
||||||
@ -2829,7 +2833,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 44:
|
case 44:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 545 "toke.l"
|
#line 549 "toke.l"
|
||||||
{
|
{
|
||||||
#ifdef HAVE_PRIV_SET
|
#ifdef HAVE_PRIV_SET
|
||||||
LEXTRACE("PRIVS ");
|
LEXTRACE("PRIVS ");
|
||||||
@ -2841,7 +2845,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 45:
|
case 45:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 554 "toke.l"
|
#line 558 "toke.l"
|
||||||
{
|
{
|
||||||
#ifdef HAVE_PRIV_SET
|
#ifdef HAVE_PRIV_SET
|
||||||
LEXTRACE("LIMITPRIVS ");
|
LEXTRACE("LIMITPRIVS ");
|
||||||
@ -2853,7 +2857,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 46:
|
case 46:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 563 "toke.l"
|
#line 567 "toke.l"
|
||||||
{
|
{
|
||||||
got_alias:
|
got_alias:
|
||||||
if (!fill(sudoerstext, sudoersleng))
|
if (!fill(sudoerstext, sudoersleng))
|
||||||
@ -2864,7 +2868,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 47:
|
case 47:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 571 "toke.l"
|
#line 575 "toke.l"
|
||||||
{
|
{
|
||||||
/* XXX - no way to specify digest for command */
|
/* XXX - no way to specify digest for command */
|
||||||
/* no command args allowed for Defaults!/path */
|
/* no command args allowed for Defaults!/path */
|
||||||
@ -2876,47 +2880,47 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 48:
|
case 48:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 580 "toke.l"
|
#line 584 "toke.l"
|
||||||
{
|
{
|
||||||
digest_len = SHA224_DIGEST_LENGTH;
|
digest_len = SHA224_DIGEST_LENGTH;
|
||||||
BEGIN WANTDIGEST;
|
BEGIN WANTDIGEST;
|
||||||
LEXTRACE("SHA224 ");
|
LEXTRACE("SHA224_TOK ");
|
||||||
LEXRETURN(SHA224);
|
LEXRETURN(SHA224_TOK);
|
||||||
}
|
}
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 49:
|
case 49:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 587 "toke.l"
|
#line 591 "toke.l"
|
||||||
{
|
{
|
||||||
digest_len = SHA256_DIGEST_LENGTH;
|
digest_len = SHA256_DIGEST_LENGTH;
|
||||||
BEGIN WANTDIGEST;
|
BEGIN WANTDIGEST;
|
||||||
LEXTRACE("SHA256 ");
|
LEXTRACE("SHA256_TOK ");
|
||||||
LEXRETURN(SHA256);
|
LEXRETURN(SHA256_TOK);
|
||||||
}
|
}
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 50:
|
case 50:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 594 "toke.l"
|
#line 598 "toke.l"
|
||||||
{
|
{
|
||||||
digest_len = SHA384_DIGEST_LENGTH;
|
digest_len = SHA384_DIGEST_LENGTH;
|
||||||
BEGIN WANTDIGEST;
|
BEGIN WANTDIGEST;
|
||||||
LEXTRACE("SHA384 ");
|
LEXTRACE("SHA384_TOK ");
|
||||||
LEXRETURN(SHA384);
|
LEXRETURN(SHA384_TOK);
|
||||||
}
|
}
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 51:
|
case 51:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 601 "toke.l"
|
#line 605 "toke.l"
|
||||||
{
|
{
|
||||||
digest_len = SHA512_DIGEST_LENGTH;
|
digest_len = SHA512_DIGEST_LENGTH;
|
||||||
BEGIN WANTDIGEST;
|
BEGIN WANTDIGEST;
|
||||||
LEXTRACE("SHA512 ");
|
LEXTRACE("SHA512_TOK ");
|
||||||
LEXRETURN(SHA512);
|
LEXRETURN(SHA512_TOK);
|
||||||
}
|
}
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 52:
|
case 52:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 608 "toke.l"
|
#line 612 "toke.l"
|
||||||
{
|
{
|
||||||
BEGIN GOTCMND;
|
BEGIN GOTCMND;
|
||||||
LEXTRACE("COMMAND ");
|
LEXTRACE("COMMAND ");
|
||||||
@ -2926,7 +2930,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 53:
|
case 53:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 615 "toke.l"
|
#line 619 "toke.l"
|
||||||
{
|
{
|
||||||
/* directories can't have args... */
|
/* directories can't have args... */
|
||||||
if (sudoerstext[sudoersleng - 1] == '/') {
|
if (sudoerstext[sudoersleng - 1] == '/') {
|
||||||
@ -2944,7 +2948,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 54:
|
case 54:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 630 "toke.l"
|
#line 634 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("BEGINSTR ");
|
LEXTRACE("BEGINSTR ");
|
||||||
sudoerslval.string = NULL;
|
sudoerslval.string = NULL;
|
||||||
@ -2954,7 +2958,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 55:
|
case 55:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 637 "toke.l"
|
#line 641 "toke.l"
|
||||||
{
|
{
|
||||||
/* a word */
|
/* a word */
|
||||||
if (!fill(sudoerstext, sudoersleng))
|
if (!fill(sudoerstext, sudoersleng))
|
||||||
@ -2965,7 +2969,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 56:
|
case 56:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 645 "toke.l"
|
#line 649 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("( ");
|
LEXTRACE("( ");
|
||||||
LEXRETURN('(');
|
LEXRETURN('(');
|
||||||
@ -2973,7 +2977,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 57:
|
case 57:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 650 "toke.l"
|
#line 654 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE(") ");
|
LEXTRACE(") ");
|
||||||
LEXRETURN(')');
|
LEXRETURN(')');
|
||||||
@ -2981,7 +2985,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 58:
|
case 58:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 655 "toke.l"
|
#line 659 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE(", ");
|
LEXTRACE(", ");
|
||||||
LEXRETURN(',');
|
LEXRETURN(',');
|
||||||
@ -2989,7 +2993,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 59:
|
case 59:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 660 "toke.l"
|
#line 664 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("= ");
|
LEXTRACE("= ");
|
||||||
LEXRETURN('=');
|
LEXRETURN('=');
|
||||||
@ -2997,7 +3001,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 60:
|
case 60:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 665 "toke.l"
|
#line 669 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE(": ");
|
LEXTRACE(": ");
|
||||||
LEXRETURN(':');
|
LEXRETURN(':');
|
||||||
@ -3005,7 +3009,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 61:
|
case 61:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 670 "toke.l"
|
#line 674 "toke.l"
|
||||||
{
|
{
|
||||||
if (sudoersleng & 1) {
|
if (sudoersleng & 1) {
|
||||||
LEXTRACE("!");
|
LEXTRACE("!");
|
||||||
@ -3015,7 +3019,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 62:
|
case 62:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 677 "toke.l"
|
#line 681 "toke.l"
|
||||||
{
|
{
|
||||||
if (YY_START == INSTR) {
|
if (YY_START == INSTR) {
|
||||||
LEXTRACE("ERROR ");
|
LEXTRACE("ERROR ");
|
||||||
@ -3030,14 +3034,14 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 63:
|
case 63:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 689 "toke.l"
|
#line 693 "toke.l"
|
||||||
{ /* throw away space/tabs */
|
{ /* throw away space/tabs */
|
||||||
sawspace = true; /* but remember for fill_args */
|
sawspace = true; /* but remember for fill_args */
|
||||||
}
|
}
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 64:
|
case 64:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 693 "toke.l"
|
#line 697 "toke.l"
|
||||||
{
|
{
|
||||||
sawspace = true; /* remember for fill_args */
|
sawspace = true; /* remember for fill_args */
|
||||||
sudolineno++;
|
sudolineno++;
|
||||||
@ -3046,7 +3050,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 65:
|
case 65:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 699 "toke.l"
|
#line 703 "toke.l"
|
||||||
{
|
{
|
||||||
if (sudoerstext[sudoersleng - 1] == '\n') {
|
if (sudoerstext[sudoersleng - 1] == '\n') {
|
||||||
/* comment ending in a newline */
|
/* comment ending in a newline */
|
||||||
@ -3063,7 +3067,7 @@ YY_RULE_SETUP
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 66:
|
case 66:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 713 "toke.l"
|
#line 717 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("ERROR ");
|
LEXTRACE("ERROR ");
|
||||||
LEXRETURN(ERROR);
|
LEXRETURN(ERROR);
|
||||||
@ -3076,7 +3080,7 @@ case YY_STATE_EOF(STARTDEFS):
|
|||||||
case YY_STATE_EOF(INDEFS):
|
case YY_STATE_EOF(INDEFS):
|
||||||
case YY_STATE_EOF(INSTR):
|
case YY_STATE_EOF(INSTR):
|
||||||
case YY_STATE_EOF(WANTDIGEST):
|
case YY_STATE_EOF(WANTDIGEST):
|
||||||
#line 718 "toke.l"
|
#line 722 "toke.l"
|
||||||
{
|
{
|
||||||
if (YY_START != INITIAL) {
|
if (YY_START != INITIAL) {
|
||||||
BEGIN INITIAL;
|
BEGIN INITIAL;
|
||||||
@ -3089,10 +3093,10 @@ case YY_STATE_EOF(WANTDIGEST):
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 67:
|
case 67:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 728 "toke.l"
|
#line 732 "toke.l"
|
||||||
ECHO;
|
ECHO;
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
#line 3095 "lex.sudoers.c"
|
#line 3099 "lex.sudoers.c"
|
||||||
|
|
||||||
case YY_END_OF_BUFFER:
|
case YY_END_OF_BUFFER:
|
||||||
{
|
{
|
||||||
@ -3983,7 +3987,7 @@ int main()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#line 728 "toke.l"
|
#line 732 "toke.l"
|
||||||
|
|
||||||
struct path_list {
|
struct path_list {
|
||||||
SLIST_ENTRY(path_list) entries;
|
SLIST_ENTRY(path_list) entries;
|
||||||
|
@ -69,6 +69,11 @@
|
|||||||
# include <ndir.h>
|
# include <ndir.h>
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_SHA224UPDATE
|
||||||
|
# include <sha2.h>
|
||||||
|
#else
|
||||||
|
# include "compat/sha2.h"
|
||||||
|
#endif
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include "sudoers.h"
|
#include "sudoers.h"
|
||||||
@ -76,7 +81,6 @@
|
|||||||
#include "toke.h"
|
#include "toke.h"
|
||||||
#include <gram.h>
|
#include <gram.h>
|
||||||
#include "lbuf.h"
|
#include "lbuf.h"
|
||||||
#include "sha2.h"
|
|
||||||
#include "secure_path.h"
|
#include "secure_path.h"
|
||||||
|
|
||||||
int sudolineno; /* current sudoers line number. */
|
int sudolineno; /* current sudoers line number. */
|
||||||
@ -580,29 +584,29 @@ ALL {
|
|||||||
sha224 {
|
sha224 {
|
||||||
digest_len = SHA224_DIGEST_LENGTH;
|
digest_len = SHA224_DIGEST_LENGTH;
|
||||||
BEGIN WANTDIGEST;
|
BEGIN WANTDIGEST;
|
||||||
LEXTRACE("SHA224 ");
|
LEXTRACE("SHA224_TOK ");
|
||||||
LEXRETURN(SHA224);
|
LEXRETURN(SHA224_TOK);
|
||||||
}
|
}
|
||||||
|
|
||||||
sha256 {
|
sha256 {
|
||||||
digest_len = SHA256_DIGEST_LENGTH;
|
digest_len = SHA256_DIGEST_LENGTH;
|
||||||
BEGIN WANTDIGEST;
|
BEGIN WANTDIGEST;
|
||||||
LEXTRACE("SHA256 ");
|
LEXTRACE("SHA256_TOK ");
|
||||||
LEXRETURN(SHA256);
|
LEXRETURN(SHA256_TOK);
|
||||||
}
|
}
|
||||||
|
|
||||||
sha384 {
|
sha384 {
|
||||||
digest_len = SHA384_DIGEST_LENGTH;
|
digest_len = SHA384_DIGEST_LENGTH;
|
||||||
BEGIN WANTDIGEST;
|
BEGIN WANTDIGEST;
|
||||||
LEXTRACE("SHA384 ");
|
LEXTRACE("SHA384_TOK ");
|
||||||
LEXRETURN(SHA384);
|
LEXRETURN(SHA384_TOK);
|
||||||
}
|
}
|
||||||
|
|
||||||
sha512 {
|
sha512 {
|
||||||
digest_len = SHA512_DIGEST_LENGTH;
|
digest_len = SHA512_DIGEST_LENGTH;
|
||||||
BEGIN WANTDIGEST;
|
BEGIN WANTDIGEST;
|
||||||
LEXTRACE("SHA512 ");
|
LEXTRACE("SHA512_TOK ");
|
||||||
LEXRETURN(SHA512);
|
LEXRETURN(SHA512_TOK);
|
||||||
}
|
}
|
||||||
|
|
||||||
sudoedit {
|
sudoedit {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user