summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS5
-rwxr-xr-xconfigure18
-rw-r--r--configure.ac2
-rw-r--r--doc/visudo.cat4
-rw-r--r--doc/visudo.man.in4
-rw-r--r--doc/visudo.mdoc.in4
-rw-r--r--plugins/sudoers/timestamp.c8
7 files changed, 28 insertions, 17 deletions
diff --git a/NEWS b/NEWS
index ddac4b9b9..ff47c91ed 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,8 @@
+What's new in Sudo 1.8.10p2?
+
+ * Fixed a hang introduced in sudo 1.8.10 when timestamp_timeout
+ is set to zero.
+
What's new in Sudo 1.8.10p1?
* Fixed a bug introduced in sudo 1.8.10 that prevented the disabling
diff --git a/configure b/configure
index 0016802df..c72ac8b4f 100755
--- a/configure
+++ b/configure
@@ -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.10p1.
+# Generated by GNU Autoconf 2.69 for sudo 1.8.10p2.
#
# Report bugs to <http://www.sudo.ws/bugs/>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='sudo'
PACKAGE_TARNAME='sudo'
-PACKAGE_VERSION='1.8.10p1'
-PACKAGE_STRING='sudo 1.8.10p1'
+PACKAGE_VERSION='1.8.10p2'
+PACKAGE_STRING='sudo 1.8.10p2'
PACKAGE_BUGREPORT='http://www.sudo.ws/bugs/'
PACKAGE_URL=''
@@ -1505,7 +1505,7 @@ if test "$ac_init_help" = "long"; then
# 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.10p1 to adapt to many kinds of systems.
+\`configure' configures sudo 1.8.10p2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1570,7 +1570,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of sudo 1.8.10p1:";;
+ short | recursive ) echo "Configuration of sudo 1.8.10p2:";;
esac
cat <<\_ACEOF
@@ -1802,7 +1802,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-sudo configure 1.8.10p1
+sudo configure 1.8.10p2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2511,7 +2511,7 @@ 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.8.10p1, which was
+It was created by sudo $as_me 1.8.10p2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -22958,7 +22958,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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.10p1, which was
+This file was extended by sudo $as_me 1.8.10p2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -23024,7 +23024,7 @@ _ACEOF
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.10p1
+sudo config.status 1.8.10p2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 229f6ea98..88af32eb0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ dnl
dnl Copyright (c) 1994-1996,1998-2014 Todd C. Miller <Todd.Miller@courtesan.com>
dnl
AC_PREREQ([2.59])
-AC_INIT([sudo], [1.8.10p1], [http://www.sudo.ws/bugs/], [sudo])
+AC_INIT([sudo], [1.8.10p2], [http://www.sudo.ws/bugs/], [sudo])
AC_CONFIG_HEADER([config.h pathnames.h])
AC_CONFIG_SRCDIR([src/sudo.c])
dnl
diff --git a/doc/visudo.cat b/doc/visudo.cat
index a7b91ea75..66ba0a7f4 100644
--- a/doc/visudo.cat
+++ b/doc/visudo.cat
@@ -74,9 +74,9 @@ DDEESSCCRRIIPPTTIIOONN
--xx _f_i_l_e, ----eexxppoorrtt=_f_i_l_e
Export _s_u_d_o_e_r_s in JSON format and write it to _f_i_l_e. If _f_i_l_e
- is `-', the exported _s_u_d_o_e_r_s policy will to be written to the
+ is `-', the exported _s_u_d_o_e_r_s policy will be written to the
standard output. The exported format is intended to be
- easier for third-party applications to parse that the
+ easier for third-party applications to parse than the
traditional _s_u_d_o_e_r_s format. The various values have explicit
types which removes much of the ambiguity of the _s_u_d_o_e_r_s
format.
diff --git a/doc/visudo.man.in b/doc/visudo.man.in
index 4f622e112..d26eb6761 100644
--- a/doc/visudo.man.in
+++ b/doc/visudo.man.in
@@ -216,9 +216,9 @@ is
\(oq-\(cq,
the exported
\fIsudoers\fR
-policy will to be written to the standard output.
+policy will be written to the standard output.
The exported format is intended to be easier for third-party
-applications to parse that the traditional
+applications to parse than the traditional
\fIsudoers\fR
format.
The various values have explicit types which removes much of the
diff --git a/doc/visudo.mdoc.in b/doc/visudo.mdoc.in
index cc89a1241..c94cdbbda 100644
--- a/doc/visudo.mdoc.in
+++ b/doc/visudo.mdoc.in
@@ -207,9 +207,9 @@ is
.Ql - ,
the exported
.Em sudoers
-policy will to be written to the standard output.
+policy will be written to the standard output.
The exported format is intended to be easier for third-party
-applications to parse that the traditional
+applications to parse than the traditional
.Em sudoers
format.
The various values have explicit types which removes much of the
diff --git a/plugins/sudoers/timestamp.c b/plugins/sudoers/timestamp.c
index f9ddeada6..e005628d4 100644
--- a/plugins/sudoers/timestamp.c
+++ b/plugins/sudoers/timestamp.c
@@ -119,11 +119,13 @@ ts_find_record(int fd, struct timestamp_entry *key, struct timestamp_entry *entr
*/
while (read(fd, &cur, sizeof(cur)) == sizeof(cur)) {
if (cur.size != sizeof(cur)) {
- /* wrong size, seek to next record */
+ /* wrong size, seek to start of next record */
sudo_debug_printf(SUDO_DEBUG_INFO|SUDO_DEBUG_LINENO,
"wrong sized record, got %hu, expected %zu",
cur.size, sizeof(cur));
lseek(fd, (off_t)cur.size - (off_t)sizeof(cur), SEEK_CUR);
+ if (cur.size == 0)
+ break; /* size must be non-zero */
continue;
}
if (ts_match_record(key, &cur)) {
@@ -327,6 +329,10 @@ update_timestamp(struct passwd *pw)
int fd;
debug_decl(update_timestamp, SUDO_DEBUG_AUTH)
+ /* Zero timeout means don't update the time stamp file. */
+ if (def_timestamp_timeout == 0)
+ goto done;
+
/* Check/create parent directories as needed. */
if (!ts_secure_dir(def_timestampdir, true, false))
goto done;