This patch will upgrade Sudo version 1.8.9 to Sudo version 1.8.9 patchlevel 1. To apply: $ cd sudo-1.8.9 $ patch -p1 < sudo-1.8.9p1.patch diff -urNa sudo-1.8.9/ChangeLog sudo-1.8.9p1/ChangeLog --- sudo-1.8.9/ChangeLog Mon Jan 6 11:25:14 2014 +++ sudo-1.8.9p1/ChangeLog Tue Jan 7 11:11:18 2014 @@ -1,3 +1,28 @@ +2014-01-07 Todd C. Miller + + * NEWS: + The fix for the hang was already in the 1.8.9 tarballs. + [f038ebcc1071] + + * NEWS, configure, configure.ac: + Update for sudo 1.8.9p1 + [732fca0003cf] + + * common/atobool.c, common/event.c, plugins/sudoers/iolog.c, + plugins/sudoers/parse.h, src/exec.c, src/preserve_fds.c: + Update copyright year. + [fdeb5956810e] + + * plugins/sudoers/parse.h: + Go back to making the bit fields in struct cmndtag explicitly + signed. This fixes a problem on gcc 4.8 (at least) which appears to + be treating the value as unsigned by default. + [46b9a7bb10ac] + + * common/atobool.c: + Use debug_return_int() instead of bare return for debugging support. + [c273f822de5f] + 2014-01-06 Todd C. Miller * common/event.c: diff -urNa sudo-1.8.9/NEWS sudo-1.8.9p1/NEWS --- sudo-1.8.9/NEWS Mon Jan 6 11:23:02 2014 +++ sudo-1.8.9p1/NEWS Tue Jan 7 11:09:21 2014 @@ -1,3 +1,9 @@ +What's new in Sudo 1.8.9p1? + + * Fixed a problem with gcc 4.8's handling of bit fields that could + lead to the noexec flag being enabled even when it was not + explicitly set. + What's new in Sudo 1.8.9? * Reworked sudo's main event loop to use a simple event subsystem diff -urNa sudo-1.8.9/common/atobool.c sudo-1.8.9p1/common/atobool.c --- sudo-1.8.9/common/atobool.c Mon Jan 6 11:23:01 2014 +++ sudo-1.8.9p1/common/atobool.c Tue Jan 7 11:09:20 2014 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2012 Todd C. Miller + * Copyright (c) 2010-2014 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -50,34 +50,34 @@ case '0': case '1': if (str[1] == '\0') - return *str - '0'; + debug_return_int(*str - '0'); break; case 'y': case 'Y': if (strcasecmp(str, "yes") == 0) - return 1; + debug_return_int(1); break; case 't': case 'T': if (strcasecmp(str, "true") == 0) - return 1; + debug_return_int(1); break; case 'o': case 'O': if (strcasecmp(str, "on") == 0) - return 1; + debug_return_int(1); if (strcasecmp(str, "off") == 0) - return 0; + debug_return_int(0); break; case 'n': case 'N': if (strcasecmp(str, "no") == 0) - return 0; + debug_return_int(0); break; case 'f': case 'F': if (strcasecmp(str, "false") == 0) - return 0; + debug_return_int(0); break; } debug_return_int(-1); diff -urNa sudo-1.8.9/common/event.c sudo-1.8.9p1/common/event.c --- sudo-1.8.9/common/event.c Mon Jan 6 11:23:01 2014 +++ sudo-1.8.9p1/common/event.c Tue Jan 7 11:09:20 2014 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Todd C. Miller + * Copyright (c) 2013-2014 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff -urNa sudo-1.8.9/configure sudo-1.8.9p1/configure --- sudo-1.8.9/configure Mon Jan 6 11:23:02 2014 +++ sudo-1.8.9p1/configure Tue Jan 7 11:09:22 2014 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for sudo 1.8.9. +# Generated by GNU Autoconf 2.69 for sudo 1.8.9p1. # # Report bugs to . # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='sudo' PACKAGE_TARNAME='sudo' -PACKAGE_VERSION='1.8.9' -PACKAGE_STRING='sudo 1.8.9' +PACKAGE_VERSION='1.8.9p1' +PACKAGE_STRING='sudo 1.8.9p1' PACKAGE_BUGREPORT='http://www.sudo.ws/bugs/' PACKAGE_URL='' @@ -1498,7 +1498,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.8.9 to adapt to many kinds of systems. +\`configure' configures sudo 1.8.9p1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1563,7 +1563,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sudo 1.8.9:";; + short | recursive ) echo "Configuration of sudo 1.8.9p1:";; esac cat <<\_ACEOF @@ -1793,7 +1793,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sudo configure 1.8.9 +sudo configure 1.8.9p1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2502,7 +2502,7 @@ 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.8.9, which was +It was created by sudo $as_me 1.8.9p1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -22667,7 +22667,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.8.9, which was +This file was extended by sudo $as_me 1.8.9p1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -22733,7 +22733,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.8.9 +sudo config.status 1.8.9p1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urNa sudo-1.8.9/configure.ac sudo-1.8.9p1/configure.ac --- sudo-1.8.9/configure.ac Mon Jan 6 11:23:02 2014 +++ sudo-1.8.9p1/configure.ac Tue Jan 7 11:09:22 2014 @@ -1,10 +1,10 @@ dnl dnl Use the top-level autogen.sh script to generate configure and config.h.in dnl -dnl Copyright (c) 1994-1996,1998-2013 Todd C. Miller +dnl Copyright (c) 1994-1996,1998-2014 Todd C. Miller dnl AC_PREREQ([2.59]) -AC_INIT([sudo], [1.8.9], [http://www.sudo.ws/bugs/], [sudo]) +AC_INIT([sudo], [1.8.9p1], [http://www.sudo.ws/bugs/], [sudo]) AC_CONFIG_HEADER([config.h pathnames.h]) AC_CONFIG_SRCDIR([src/sudo.c]) dnl diff -urNa sudo-1.8.9/plugins/sudoers/iolog.c sudo-1.8.9p1/plugins/sudoers/iolog.c --- sudo-1.8.9/plugins/sudoers/iolog.c Mon Jan 6 11:23:03 2014 +++ sudo-1.8.9p1/plugins/sudoers/iolog.c Tue Jan 7 11:09:22 2014 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2013 Todd C. Miller + * Copyright (c) 2009-2014 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff -urNa sudo-1.8.9/plugins/sudoers/parse.h sudo-1.8.9p1/plugins/sudoers/parse.h --- sudo-1.8.9/plugins/sudoers/parse.h Mon Jan 6 11:23:01 2014 +++ sudo-1.8.9p1/plugins/sudoers/parse.h Tue Jan 7 11:09:20 2014 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 1998-2000, 2004, 2007-2013 + * Copyright (c) 1996, 1998-2000, 2004, 2007-2014 * Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any @@ -53,11 +53,11 @@ * Possible values: true, false, IMPLIED, UNSPEC. */ struct cmndtag { - int nopasswd: 3; - int noexec: 3; - int setenv: 3; - int log_input: 3; - int log_output: 3; + signed int nopasswd: 3; + signed int noexec: 3; + signed int setenv: 3; + signed int log_input: 3; + signed int log_output: 3; }; /* diff -urNa sudo-1.8.9/src/exec.c sudo-1.8.9p1/src/exec.c --- sudo-1.8.9/src/exec.c Mon Jan 6 11:23:02 2014 +++ sudo-1.8.9p1/src/exec.c Tue Jan 7 11:09:20 2014 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2013 Todd C. Miller + * Copyright (c) 2009-2014 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff -urNa sudo-1.8.9/src/preserve_fds.c sudo-1.8.9p1/src/preserve_fds.c --- sudo-1.8.9/src/preserve_fds.c Mon Jan 6 11:23:02 2014 +++ sudo-1.8.9p1/src/preserve_fds.c Tue Jan 7 11:09:20 2014 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Todd C. Miller + * Copyright (c) 2013-2014 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above