This patch will upgrade Sudo version 1.7.4 to Sudo version 1.7.4 patchlevel 1. To apply: $ cd sudo-1.7.4 $ patch -p1 < sudo-1.7.4p1.patch diff -urNa sudo-1.7.4/ChangeLog sudo-1.7.4p1/ChangeLog --- sudo-1.7.4/ChangeLog Fri Jul 30 12:00:19 2010 +++ sudo-1.7.4p1/ChangeLog Fri Aug 6 10:12:53 2010 @@ -1,8 +1,41 @@ +2010-08-06 Todd C. Miller + + * check.c: + When removing/resetting the timestamp file ignore the tty ticket + contents. + [8b285f601ec0] [tip] + +2010-08-04 Todd C. Miller + + * UPGRADE: + Fix typo + [0f443aa22e96] + +2010-08-03 Todd C. Miller + + * check.c: + Do not produce a warning for "sudo -k" if the ticket file does not + exist. + [eeaaa73d7f5b] + +2010-08-02 Todd C. Miller + + * aclocal.m4, configure: + Add cross-compile defaults for remaining AC_TRY_RUN usage. + [fb88d22eabc6] + +2010-07-31 Todd C. Miller + + * aclocal.m4, config.h.in, configure, configure.in, snprintf.c: + Use AC_CHECK_MEMBER in SUDO_SOCK_SA_LEN Use AC_TYPE_LONG_LONG_INT + and AC_CHECK_SIZEOF([long int]) instead of rolling our own. + [5e7cc557a46e] + 2010-07-30 Todd C. Miller * .hgtags: Added tag SUDO_1_7_4 for changeset 2920a3b9d568 - [e929004d5102] [tip] + [e929004d5102] * pp: Debian: Remove dots from decoded release number AIX: looser matching diff -urNa sudo-1.7.4/UPGRADE sudo-1.7.4p1/UPGRADE --- sudo-1.7.4/UPGRADE Fri Jul 30 11:58:54 2010 +++ sudo-1.7.4p1/UPGRADE Fri Aug 6 09:46:02 2010 @@ -29,7 +29,7 @@ use when searching for configuration files. Adding HOME to env_keep may enable a user to run unrestricted commands via sudo. - The default syslog facility has changed from "local2" or "authpriv" + The default syslog facility has changed from "local2" to "authpriv" (or "auth" if the operating system doesn't have "authpriv"). The --with-logfac configure option can be used to change this or it can be changed in the sudoers file. diff -urNa sudo-1.7.4/aclocal.m4 sudo-1.7.4p1/aclocal.m4 --- sudo-1.7.4/aclocal.m4 Fri Jul 30 11:58:54 2010 +++ sudo-1.7.4p1/aclocal.m4 Fri Aug 6 10:17:36 2010 @@ -227,7 +227,7 @@ ], [sudo_cv_func_unsetenv_void=no], [sudo_cv_func_unsetenv_void=yes], - [sudo_cv_func_unsetenv_void=yes])]) + [sudo_cv_func_unsetenv_void=no])]) if test $sudo_cv_func_unsetenv_void = yes; then AC_DEFINE(UNSETENV_VOID, 1, [Define to 1 if the `unsetenv' function returns void instead of `int'.]) @@ -253,24 +253,14 @@ dnl dnl check for sa_len field in struct sockaddr dnl -AC_DEFUN(SUDO_SOCK_SA_LEN, -[AC_MSG_CHECKING(for sa_len field in struct sockaddr) -AC_CACHE_VAL(sudo_cv_sock_sa_len, -[AC_TRY_RUN([#include -#include -main() { -struct sockaddr s; -s.sa_len = 0; -exit(0); -}], sudo_cv_sock_sa_len=yes, sudo_cv_sock_sa_len=no, - sudo_cv_sock_sa_len=no) -rm -f core core.* *.core])dnl -AC_MSG_RESULT($sudo_cv_sock_sa_len) -if test $sudo_cv_sock_sa_len = yes; then - AC_DEFINE(HAVE_SA_LEN, 1, [Define if your struct sockadr has an sa_len field.]) -fi -]) - +AC_DEFUN(SUDO_SOCK_SA_LEN, [ + AC_CHECK_MEMBER([struct sockaddr.sa_len], + [AC_DEFINE(HAVE_SA_LEN, 1, [Define if your struct sockadr has an sa_len field.])], + [], + [ #include + #include ] + )] +) dnl dnl check for max length of uid_t in string representation. dnl we can't really trust UID_MAX or MAXUID since they may exist @@ -299,32 +289,12 @@ (void) fprintf(f, "%d\n", strlen(b)); (void) fclose(f); exit(0); -}], sudo_cv_uid_t_len=`cat conftestdata`, sudo_cv_uid_t_len=10) +}], sudo_cv_uid_t_len=`cat conftestdata`, sudo_cv_uid_t_len=10, sudo_cv_uid_t_len=10) ]) rm -f conftestdata AC_MSG_RESULT($sudo_cv_uid_t_len) AC_DEFINE_UNQUOTED(MAX_UID_T_LEN, $sudo_cv_uid_t_len, [Define to the max length of a uid_t in string context (excluding the NUL).]) ]) - -dnl -dnl Check for presence of long long and for sizeof(long long) == sizeof(long) -dnl -AC_DEFUN(SUDO_TYPE_LONG_LONG, -[AC_CHECK_TYPES(long long, [AC_DEFINE(HAVE_LONG_LONG, 1, [Define if your compiler supports the "long long" type.])] -[AC_MSG_CHECKING(for long and long long equivalence) -AC_CACHE_VAL(sudo_cv_type_long_is_quad, -[AC_TRY_RUN([ -main() { -if (sizeof(long long) == sizeof(long)) exit(0); -else exit(1); -}], [sudo_cv_type_long_is_quad=yes], -[sudo_cv_type_long_is_quad=no], [sudo_cv_type_long_is_quad=no]) -rm -f core core.* *.core])dnl -AC_MSG_RESULT($sudo_cv_type_long_is_quad) -if test $sudo_cv_type_long_is_quad = yes; then - AC_DEFINE(LONG_IS_QUAD, 1, [Define if sizeof(long) == sizeof(long long).]) -fi -])]) dnl dnl append a libpath to an LDFLAGS style variable diff -urNa sudo-1.7.4/check.c sudo-1.7.4p1/check.c --- sudo-1.7.4/check.c Fri Jul 30 11:58:54 2010 +++ sudo-1.7.4p1/check.c Fri Aug 6 09:45:15 2010 @@ -556,9 +556,12 @@ /* * Check for stored tty info. If the file is zero-sized * it is an old-style timestamp with no tty info in it. + * If removing, we don't care about the contents. * The actual mtime check is done later. */ - if (sb.st_size != 0) { + if (ISSET(flags, TS_REMOVE)) { + status = TS_OLD; + } else if (sb.st_size != 0) { struct tty_info info; int fd = open(timestampfile, O_RDONLY, 0644); if (fd != -1) { @@ -646,7 +649,7 @@ } } else { timevalclear(&tv); - if (touch(-1, path, &tv) == -1) + if (touch(-1, path, &tv) == -1 && errno != ENOENT) error(1, "can't reset %s to Epoch", path); } } diff -urNa sudo-1.7.4/config.h.in sudo-1.7.4p1/config.h.in --- sudo-1.7.4/config.h.in Fri Jul 30 11:58:54 2010 +++ sudo-1.7.4p1/config.h.in Fri Aug 6 10:17:26 2010 @@ -310,8 +310,8 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LOGIN_CAP_H -/* Define if your compiler supports the "long long" type. */ -#undef HAVE_LONG_LONG +/* Define to 1 if the system has the type `long long int'. */ +#undef HAVE_LONG_LONG_INT /* Define to 1 if you have the `lrand48' function. */ #undef HAVE_LRAND48 @@ -616,9 +616,6 @@ /* Define to SLOG_SYSLOG, SLOG_FILE, or SLOG_BOTH. */ #undef LOGGING -/* Define if sizeof(long) == sizeof(long long). */ -#undef LONG_IS_QUAD - /* Define to 1 if you want a two line OTP (S/Key or OPIE) prompt. */ #undef LONG_OTP_PROMPT @@ -722,6 +719,9 @@ /* Define to 1 if you want sudo to set $HOME in shell mode. */ #undef SHELL_SETS_HOME + +/* The size of `long int', as computed by sizeof. */ +#undef SIZEOF_LONG_INT /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS diff -urNa sudo-1.7.4/configure sudo-1.7.4p1/configure --- sudo-1.7.4/configure Fri Jul 30 11:58:54 2010 +++ sudo-1.7.4p1/configure Fri Aug 6 10:17:57 2010 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.65 for sudo 1.7.4. +# Generated by GNU Autoconf 2.65 for sudo 1.7.4p1. # # Report bugs to . # @@ -701,8 +701,8 @@ # Identity of this package. PACKAGE_NAME='sudo' PACKAGE_TARNAME='sudo' -PACKAGE_VERSION='1.7.4' -PACKAGE_STRING='sudo 1.7.4' +PACKAGE_VERSION='1.7.4p1' +PACKAGE_STRING='sudo 1.7.4p1' PACKAGE_BUGREPORT='http://www.sudo.ws/bugs/' PACKAGE_URL='' @@ -1552,7 +1552,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sudo 1.7.4 to adapt to many kinds of systems. +\`configure' configures sudo 1.7.4p1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1617,7 +1617,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sudo 1.7.4:";; + short | recursive ) echo "Configuration of sudo 1.7.4p1:";; esac cat <<\_ACEOF @@ -1828,7 +1828,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sudo configure 1.7.4 +sudo configure 1.7.4p1 generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. @@ -2250,44 +2250,183 @@ } # ac_fn_c_check_type -# ac_fn_c_check_decl LINENO SYMBOL VAR -# ------------------------------------ -# Tests whether SYMBOL is declared, setting cache variable VAR accordingly. -ac_fn_c_check_decl () +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES +# -------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5 -$as_echo_n "checking whether $2 is declared... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid; break else + as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { -#ifndef $2 - (void) $2; -#endif +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=$ac_mid; break else - eval "$3=no" + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + ac_lo= ac_hi= fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid +else + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval () { return $2; } +static unsigned long int ulongval () { return $2; } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + echo >>conftest.val; read $3 &5 +$as_echo_n "checking whether $2 is declared... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +#ifndef $2 + (void) $2; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_decl cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sudo $as_me 1.7.4, which was +It was created by sudo $as_me 1.7.4p1, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ @@ -6584,13 +6762,13 @@ else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:6587: $ac_compile\"" >&5) + (eval echo "\"\$as_me:6765: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:6590: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:6768: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:6593: output\"" >&5) + (eval echo "\"\$as_me:6771: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -7795,7 +7973,7 @@ ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 7798 "configure"' > conftest.$ac_ext + echo '#line 7976 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -9188,11 +9366,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9191: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9369: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9195: \$? = $ac_status" >&5 + echo "$as_me:9373: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -9527,11 +9705,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9530: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9708: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9534: \$? = $ac_status" >&5 + echo "$as_me:9712: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -9632,11 +9810,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9635: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9813: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9639: \$? = $ac_status" >&5 + echo "$as_me:9817: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -9687,11 +9865,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9690: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9868: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9694: \$? = $ac_status" >&5 + echo "$as_me:9872: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12054,7 +12232,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12057 "configure" +#line 12235 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12150,7 +12328,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12153 "configure" +#line 12331 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14099,6 +14277,131 @@ fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 +$as_echo_n "checking for long long int... " >&6; } +if test "${ac_cv_type_long_long_int+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* For now, do not test the preprocessor; as of 2007 there are too many + implementations with broken preprocessors. Perhaps this can + be revisited in 2012. In the meantime, code should not expect + #if to work with literals wider than 32 bits. */ + /* Test literals. */ + long long int ll = 9223372036854775807ll; + long long int nll = -9223372036854775807LL; + unsigned long long int ull = 18446744073709551615ULL; + /* Test constant expressions. */ + typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) + ? 1 : -1)]; + typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 + ? 1 : -1)]; + int i = 63; +int +main () +{ +/* Test availability of runtime routines for shift and division. */ + long long int llmax = 9223372036854775807ll; + unsigned long long int ullmax = 18446744073709551615ull; + return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) + | (llmax / ll) | (llmax % ll) + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull)); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if test "$cross_compiling" = yes; then : + ac_cv_type_long_long_int=yes +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifndef LLONG_MAX + # define HALF \ + (1LL << (sizeof (long long int) * CHAR_BIT - 2)) + # define LLONG_MAX (HALF - 1 + HALF) + #endif +int +main () +{ +long long int n = 1; + int i; + for (i = 0; ; i++) + { + long long int m = n << i; + if (m >> i != n) + return 1; + if (LLONG_MAX / 2 < m) + break; + } + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_type_long_long_int=yes +else + ac_cv_type_long_long_int=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +else + ac_cv_type_long_long_int=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 +$as_echo "$ac_cv_type_long_long_int" >&6; } + if test $ac_cv_type_long_long_int = yes; then + +$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h + + fi + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long int" >&5 +$as_echo_n "checking size of long int... " >&6; } +if test "${ac_cv_sizeof_long_int+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long int))" "ac_cv_sizeof_long_int" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_long_int" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ as_fn_set_status 77 +as_fn_error "cannot compute sizeof (long int) +See \`config.log' for more details." "$LINENO" 5; }; } + else + ac_cv_sizeof_long_int=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_int" >&5 +$as_echo "$ac_cv_sizeof_long_int" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG_INT $ac_cv_sizeof_long_int +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for size_t" >&5 $as_echo_n "checking for size_t... " >&6; } if test "${sudo_cv_type_size_t+set}" = set; then : @@ -14239,10 +14542,7 @@ else rm -f conftestdata if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run test program while cross compiling -See \`config.log' for more details." "$LINENO" 5; } + sudo_cv_uid_t_len=10 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14286,90 +14586,18 @@ _ACEOF -ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default" -if test "x$ac_cv_type_long_long" = x""yes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_LONG_LONG 1 -_ACEOF + ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" " #include + #include +" +if test "x$ac_cv_member_struct_sockaddr_sa_len" = x""yes; then : -$as_echo "#define HAVE_LONG_LONG 1" >>confdefs.h - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long and long long equivalence" >&5 -$as_echo_n "checking for long and long long equivalence... " >&6; } -if test "${sudo_cv_type_long_is_quad+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - sudo_cv_type_long_is_quad=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -main() { -if (sizeof(long long) == sizeof(long)) exit(0); -else exit(1); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - sudo_cv_type_long_is_quad=yes -else - sudo_cv_type_long_is_quad=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -rm -f core core.* *.core -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_type_long_is_quad" >&5 -$as_echo "$sudo_cv_type_long_is_quad" >&6; } -if test $sudo_cv_type_long_is_quad = yes; then - -$as_echo "#define LONG_IS_QUAD 1" >>confdefs.h - -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sa_len field in struct sockaddr" >&5 -$as_echo_n "checking for sa_len field in struct sockaddr... " >&6; } -if test "${sudo_cv_sock_sa_len+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - sudo_cv_sock_sa_len=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -main() { -struct sockaddr s; -s.sa_len = 0; -exit(0); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - sudo_cv_sock_sa_len=yes -else - sudo_cv_sock_sa_len=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -rm -f core core.* *.core -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_sock_sa_len" >&5 -$as_echo "$sudo_cv_sock_sa_len" >&6; } -if test $sudo_cv_sock_sa_len = yes; then - $as_echo "#define HAVE_SA_LEN 1" >>confdefs.h fi + case "$DEFS" in *"RETSIGTYPE"*) ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 @@ -14856,7 +15084,7 @@ $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : - sudo_cv_func_unsetenv_void=yes + sudo_cv_func_unsetenv_void=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -18749,7 +18977,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sudo $as_me 1.7.4, which was +This file was extended by sudo $as_me 1.7.4p1, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18815,7 +19043,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -sudo config.status 1.7.4 +sudo config.status 1.7.4p1 configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" diff -urNa sudo-1.7.4/configure.in sudo-1.7.4p1/configure.in --- sudo-1.7.4/configure.in Fri Jul 30 11:58:54 2010 +++ sudo-1.7.4p1/configure.in Fri Aug 6 10:17:26 2010 @@ -3,7 +3,7 @@ dnl dnl Copyright (c) 1994-1996,1998-2010 Todd C. Miller dnl -AC_INIT([sudo], [1.7.4], [http://www.sudo.ws/bugs/], [sudo]) +AC_INIT([sudo], [1.7.4p1], [http://www.sudo.ws/bugs/], [sudo]) AC_CONFIG_HEADER(config.h pathnames.h) dnl dnl This won't work before AC_INIT @@ -1891,12 +1891,13 @@ #include ]) AC_CHECK_TYPES([struct in6_addr], [AC_DEFINE(HAVE_IN6_ADDR)], [], [#include #include ]) +AC_TYPE_LONG_LONG_INT +AC_CHECK_SIZEOF([long int]) SUDO_TYPE_SIZE_T SUDO_TYPE_SSIZE_T SUDO_TYPE_DEV_T SUDO_TYPE_INO_T SUDO_UID_T_LEN -SUDO_TYPE_LONG_LONG SUDO_SOCK_SA_LEN dnl dnl only set RETSIGTYPE if it is not set already diff -urNa sudo-1.7.4/snprintf.c sudo-1.7.4p1/snprintf.c --- sudo-1.7.4/snprintf.c Fri Jul 30 11:58:54 2010 +++ sudo-1.7.4p1/snprintf.c Fri Aug 6 10:17:26 2010 @@ -89,7 +89,7 @@ #ifndef LONG_MAX # define LONG_MAX (ULONG_MAX / 2) #endif -#ifdef HAVE_LONG_LONG +#ifdef HAVE_LONG_LONG_INT # ifndef ULLONG_MAX # ifdef UQUAD_MAX # define ULLONG_MAX UQUAD_MAX @@ -104,7 +104,7 @@ # define LLONG_MAX (ULLONG_MAX / 2) # endif # endif -#endif /* HAVE_LONG_LONG */ +#endif /* HAVE_LONG_LONG_INT */ /* * Macros for converting digits to letters and vice versa @@ -212,8 +212,8 @@ } /* Identical to __ultoa, but for quads. */ -#ifdef HAVE_LONG_LONG -# ifdef LONG_IS_QUAD +#ifdef HAVE_LONG_LONG_INT +# if SIZEOF_LONG_INT == 8 # define __uqtoa(v, e, b, o, x) __ultoa((unsigned long)(v), (e), (b), (o), (x)) # else static char * @@ -268,8 +268,8 @@ } return (cp); } -# endif /* !LONG_IS_QUAD */ -#endif /* HAVE_LONG_LONG */ +# endif /* !SIZEOF_LONG_INT */ +#endif /* HAVE_LONG_LONG_INT */ /* * Actual printf innards. @@ -292,7 +292,7 @@ int prec; /* precision from format (%.3d), or -1 */ char sign; /* sign prefix (' ', '+', '-', or \0) */ unsigned long ulval; /* integer arguments %[diouxX] */ -#ifdef HAVE_LONG_LONG +#ifdef HAVE_LONG_LONG_INT unsigned long long uqval; /* %q (quad) integers */ #endif int base; /* base for [diouxX] conversion */ @@ -469,11 +469,11 @@ case 'l': flags |= LONGINT; goto rflag; -#ifdef HAVE_LONG_LONG +#ifdef HAVE_LONG_LONG_INT case 'q': flags |= QUADINT; goto rflag; -#endif /* HAVE_LONG_LONG */ +#endif /* HAVE_LONG_LONG_INT */ case 'c': *(cp = buf) = va_arg(ap, int); size = 1; @@ -484,7 +484,7 @@ /*FALLTHROUGH*/ case 'd': case 'i': -#ifdef HAVE_LONG_LONG +#ifdef HAVE_LONG_LONG_INT if (flags & QUADINT) { uqval = va_arg(ap, long long); if ((long long)uqval < 0) { @@ -493,7 +493,7 @@ } } else -#endif /* HAVE_LONG_LONG */ +#endif /* HAVE_LONG_LONG_INT */ { ulval = SARG(); if ((long)ulval < 0) { @@ -504,11 +504,11 @@ base = 10; goto number; case 'n': -#ifdef HAVE_LONG_LONG +#ifdef HAVE_LONG_LONG_INT if (flags & QUADINT) *va_arg(ap, long long *) = ret; else -#endif /* HAVE_LONG_LONG */ +#endif /* HAVE_LONG_LONG_INT */ if (flags & LONGINT) *va_arg(ap, long *) = ret; else if (flags & SHORTINT) @@ -520,11 +520,11 @@ flags |= LONGINT; /*FALLTHROUGH*/ case 'o': -#ifdef HAVE_LONG_LONG +#ifdef HAVE_LONG_LONG_INT if (flags & QUADINT) uqval = va_arg(ap, unsigned long long); else -#endif /* HAVE_LONG_LONG */ +#endif /* HAVE_LONG_LONG_INT */ ulval = UARG(); base = 8; goto nosign; @@ -567,11 +567,11 @@ flags |= LONGINT; /*FALLTHROUGH*/ case 'u': -#ifdef HAVE_LONG_LONG +#ifdef HAVE_LONG_LONG_INT if (flags & QUADINT) uqval = va_arg(ap, unsigned long long); else -#endif /* HAVE_LONG_LONG */ +#endif /* HAVE_LONG_LONG_INT */ ulval = UARG(); base = 10; goto nosign; @@ -581,20 +581,20 @@ case 'x': xdigs = "0123456789abcdef"; hex: -#ifdef HAVE_LONG_LONG +#ifdef HAVE_LONG_LONG_INT if (flags & QUADINT) uqval = va_arg(ap, unsigned long long); else -#endif /* HAVE_LONG_LONG */ +#endif /* HAVE_LONG_LONG_INT */ ulval = UARG(); base = 16; /* leading 0x/X only if non-zero */ if (flags & ALT && -#ifdef HAVE_LONG_LONG +#ifdef HAVE_LONG_LONG_INT (flags & QUADINT ? uqval != 0 : ulval != 0)) #else ulval != 0) -#endif /* HAVE_LONG_LONG */ +#endif /* HAVE_LONG_LONG_INT */ flags |= HEXPREFIX; /* unsigned conversions */ @@ -613,14 +613,14 @@ * -- ANSI X3J11 */ cp = buf + BUF; -#ifdef HAVE_LONG_LONG +#ifdef HAVE_LONG_LONG_INT if (flags & QUADINT) { if (uqval != 0 || prec != 0) cp = __uqtoa(uqval, cp, base, flags & ALT, xdigs); } else -#endif /* HAVE_LONG_LONG */ +#endif /* HAVE_LONG_LONG_INT */ { if (ulval != 0 || prec != 0) cp = __ultoa(ulval, cp, base, diff -urNa sudo-1.7.4/sudo.pp sudo-1.7.4p1/sudo.pp --- sudo-1.7.4/sudo.pp Fri Jul 30 11:58:54 2010 +++ sudo-1.7.4p1/sudo.pp Fri Aug 6 10:36:01 2010 @@ -13,12 +13,14 @@ still allow people to get their work done." vendor="Todd C. Miller" copyright="(c) 1993-1996,1998-2010 Todd C. Miller" - pp_rpm_release="1" + version="1.7.4" + pp_rpm_release="2" pp_rpm_license="BSD" pp_rpm_url="http://www.sudo.ws/" pp_rpm_group="Applications/System" pp_rpm_packager="Todd.Miller@courtesan.com" pp_deb_maintainer="Todd.Miller@courtesan.com" + pp_deb_release="2" pp_sd_vendor_tag="TCM" pp_kit_name="TCM" pp_solaris_name="TCM${name}"