2025-07-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge sudo 1.9.17p2 from branch 'main' into sudo-1.9
	[d1b48c651]

	* configure, configure.ac:
	Fix check for which man page type to use with nroff

	Fixes a bug where configure would use *.man instead of *.mdoc on
	systems without mandoc. Bug #1077.
	[aa2498e46]

	* plugins/sudoers/log_client.c:
	client_msg_cb: make warning match the function that failed
	[f73162df3]

2025-07-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac:
	Sudo 1.9.17p2
	[f0e1a5ca3]

	* plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c:
	digest_matches: plug fd leak on snprinf() failure
	[26a1a7529]

2025-07-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, etc/sudo-python.pp, etc/sudo.pp,
	scripts/mkpkg:
	Add a way to override pp_rpm_arch when building rpms

	This will be used to build x86_64_v2 packages for Alma Linux.
	[55d3c99c4]

	* configure, configure.ac:
	Fix check for which man page type to use with nroff

	Fixes a bug where configure would use *.man instead of *.mdoc on
	systems without mandoc.
	[2dc10cfbd]

	* plugins/sudoers/timestamp.c:
	ts_write: call lseek after fruncate on short write

	We need to make sure the file position is reset to the old EOF on
	error.
	[8e7e0e23f]

2025-07-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	ptrace_readv_string: quiet sign-compare warning
	[fac2a49e7]

	* src/exec_ptrace.c:
	ptrace_readv_string: properly handle reads of more than one page

	When the "intercept" and "intercept_verify" options are enabled and
	either argv[] or envp[] contains a string larger than the page size
	(usually 4096), ptrace_readv_string() would fill the buffer with
	mutiple copies of the same string. Fixes GitHub issue #453.
	[2e93eabed]

2025-07-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	revoke_pty: use killpg() not kill() to send HUP to the process group

	Also make sure we never call killpg(-1, SIGHUP), which would send
	SIGHUP to process 1 (init). It is possible for cmnd_pid to be -1 in
	certain error conditions where sudo killed the command itself. This
	may explain GitHub issue #458.
	[fb208d383]

2025-07-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, etc/sudo-python.pp, etc/sudo.pp, scripts/pp:
	Don't assume RHEL major version is only a single digit

	Fixes handling of RHEL 10 and higher.
	[e5d953f33]

	* plugins/sudoers/visudo.c:
	visudo: create temporary file as mod 0600 not 0700

	This was due to a typo in the mode field when the temporary file was
	created. Noticed by Bjorn Baron of the sudo-rs project.
	[1c254b330]

2025-06-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in:
	We now build sudo releases from git, not mercurial
	[cb4e26734]

2025-06-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac:
	Sudo 1.9.17p1
	[a377770c6]

	* NEWS, configure, configure.ac:
	Sudo 1.9.17p1
	[23aff2b37]

2025-06-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.man.in, docs/sudo.mdoc.in, docs/sudoers.man.in,
	docs/sudoers.mdoc.in, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y,
	plugins/sudoers/regress/sudoers/test24.toke.ok,
	plugins/sudoers/regress/testsudoers/test20.out.ok,
	plugins/sudoers/regress/testsudoers/test26.out.ok,
	plugins/sudoers/visudo_cb.c, src/parse_args.c:
	Deprecate chroot support
	[7a6ee32a9]

2025-04-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/editor.c,
	plugins/sudoers/find_path.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c,
	plugins/sudoers/parse.h, plugins/sudoers/pivot.c,
	plugins/sudoers/pivot.h,
	plugins/sudoers/regress/editor/check_editor.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/resolve_cmnd.c, plugins/sudoers/stubs.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	Revert pivot_root and go back to prepending the new root directory.

	We cannot perform passwd/group lookups _after_ changing the root
	directory. This does mean that symbolic links in a path are not
	currently handled properly when matching chroot()ed commands.

	Fixes a local privilege escalation vulnerability where a user could
	craft their own nsswitch.conf file to load a shared library of their
	choosing and run arbitrary code. CVE-2025-32463

	Reported by Rich Mirch @ Stratascale Cyber Research Unit (CRU).
	[fffcc07c5]

2025-04-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Only allow a remote host to be specified when listing privileges.

	This fixes a bug where a user with sudoers privileges on a different
	host could execute a command on the local host, even if the sudoers
	file would not otherwise allow this. CVE-2025-32462

	Reported by Rich Mirch @ Stratascale Cyber Research Unit (CRU).
	[f8ff956e1]

2025-06-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.man.in, docs/sudo.mdoc.in, docs/sudoers.man.in,
	docs/sudoers.mdoc.in, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y,
	plugins/sudoers/regress/sudoers/test24.toke.ok,
	plugins/sudoers/regress/testsudoers/test20.out.ok,
	plugins/sudoers/regress/testsudoers/test26.out.ok,
	plugins/sudoers/visudo_cb.c, src/parse_args.c:
	Deprecate chroot support
	[bc88e5cbd]

2025-04-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/editor.c,
	plugins/sudoers/find_path.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c,
	plugins/sudoers/parse.h, plugins/sudoers/pivot.c,
	plugins/sudoers/pivot.h,
	plugins/sudoers/regress/editor/check_editor.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/resolve_cmnd.c, plugins/sudoers/stubs.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	Revert pivot_root and go back to prepending the new root directory.

	We cannot perform passwd/group lookups _after_ changing the root
	directory. This does mean that symbolic links in a path are not
	currently handled properly when matching chroot()ed commands.

	Fixes a local privilege escalation vulnerability where a user could
	craft their own nsswitch.conf file to load a shared library of their
	choosing and run arbitrary code. CVE-2025-32463

	Reported by Rich Mirch @ Stratascale Cyber Research Unit (CRU).
	[fdafc2ceb]

2025-04-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Only allow a remote host to be specified when listing privileges.

	This fixes a bug where a user with sudoers privileges on a different
	host could execute a command on the local host, even if the sudoers
	file would not otherwise allow this. CVE-2025-32462

	Reported by Rich Mirch @ Stratascale Cyber Research Unit (CRU).
	[d53036782]

2025-06-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST:
	Add missing tests
	[51c348810]

2025-06-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge sudo 1.9.17 from branch 'main' into sudo-1.9
	[84e7ca675]

2025-06-17  Rose  <gfunni234@gmail.com>

	* lib/iolog/iolog_write.c, plugins/python/regress/iohelpers.c,
	plugins/sudoers/sudo_printf.c, src/conversation.c:
	Properly check against errors against fwrite

	fwrite is not the same as write; you have to explicitly compare
	against the length to detect errors, and sometimes number of items
	is mistaken for length.
	[5fad16bda]

2025-06-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/CONTRIBUTING.md:
	No more mercurial repo, point to git.sudo.ws instead.
	[e6cf241b0]

2025-06-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	fix typo
	[fd6aa4932]

2025-06-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/ca.mo, plugins/sudoers/po/ca.po,
	plugins/sudoers/po/fur.mo, plugins/sudoers/po/fur.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/pt.mo, plugins/sudoers/po/pt.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/ca.mo,
	po/ca.po, po/fur.mo, po/fur.po, po/hr.mo, po/hr.po, po/it.mo,
	po/it.po, po/pt.mo, po/pt.po, po/pt_BR.mo, po/pt_BR.po, po/sr.mo,
	po/sr.po, po/yue.mo, po/zh_TW.mo, po/zh_TW.po:
	Updated translations from translationproject.org
	[04a811750]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update .pot files for 1.9.17
	[d861a00a6]

	* NEWS, configure, configure.ac:
	Sudo 1.9.17
	[cb3355e9d]

	* MANIFEST:
	Add Cantonese translation from GitHub
	[60fff3a3d]

	* scripts/check_man.in:
	Fix typo
	[57f67f67f]

2025-03-13  cantonese-sra  <cantonese.sra@proton.me>

	* po/yue.mo, po/yue.po:
	yue translation
	[666d8c175]

2025-06-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/env.c:
	Fix typo
	[ee1383e31]

2025-06-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.man.in, docs/sudo.mdoc.in, plugins/sudoers/env.c:
	Add SUDO_TTY environment variable if the user has a tty

	This can be used to find the user's original tty device when sudo
	runs the command in its own pty. GitHub issue #447.
	[afd01d856]

2025-06-04  Rose  <gfunni234@gmail.com>

	* lib/iolog/regress/iolog_path/check_iolog_path.c,
	logsrvd/iolog_writer.c:
	Restrict-qualify a few methods that are listed as such
	[a925829e6]

2025-05-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_util.h, lib/util/term.c, lib/util/util.exp.in,
	src/tgetpass.c:
	Use TCSAFLUSH not TCSADRAIN when disabling echo

	A long time ago this was changed from TCSAFLUSH to TCSADRAIN due to
	some systems having problems with TCSAFLUSH. That should no longer
	be a concern. Using TCSAFLUSH ensures that password input that has
	been received by the kernel, but not yet read by sudo, will be
	discarded and not echoed.
	[77fe6ae51]

2025-04-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	log_failure: only display "command not found" if running a command

	If the user is not allowed to run a command, we try to give them a
	more useful message than "Sorry, user foo may not run sudo on bar."
	However, this should only be done when running, not listing, a
	command. Otherwise, it would be possible for a user with no sudo
	privileges to use "sudo -l /path/to/some/command" to determine
	whether an executable exists in a directory that they do not have
	search access to.
	[82ebb1eaa]

2025-03-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/passwd.c:
	Use constant-time string compare for plain text password check.

	Avoid potential password guessing based on timing attacks on the
	strcmp() function. Reported by Quarkslab.
	[111fd83fb]

2025-04-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/check.c:
	check_user: refactor the "running as self" check into its own
	function
	[a294a8be0]

	* plugins/sudoers/check.c:
	check_user: restrict the special case for running as the invoking
	user

	The intent is to allow the user to run a command or edit a file as
	themself without entering a password. It should not apply to listing
	a command via "sudo -l command".
	[28837b2af]

2025-04-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/cvtsudoers.man.in, docs/sudo.conf.man.in, docs/sudo.man.in,
	docs/sudo_logsrv.proto.man.in, docs/sudo_logsrvd.conf.man.in,
	docs/sudo_logsrvd.man.in, docs/sudo_plugin.man.in,
	docs/sudo_plugin_python.man.in, docs/sudo_sendlog.man.in,
	docs/sudoers.ldap.man.in, docs/sudoers.man.in,
	docs/sudoers_timestamp.man.in, docs/sudoreplay.man.in,
	docs/visudo.man.in:
	Regenerate man format manuals
	[9c98d0f4a]

	* docs/sudo.conf.mdoc.in, examples/sudo.conf.in:
	Sync "Path intercept" comment with default sudo.conf and man page
	[b876e3bbf]

2025-04-28  peppapig450  <peppapig450@pm.me>

	* docs/sudo_logsrv.proto.mdoc.in:
	Fix typo and update Protocol Buffers URL in sudo_logsrv.proto man
	page

	- Remove duplicate "The" in description of log_id field. - Update
	outdated Protocol Buffers link from
	https://developers.google.com/protocol-buffers/ to
	https://protobuf.dev, the new canonical URL.

	Signed-off-by: peppapig450 <peppapig450@pm.me>
	[d173674c2]

	* docs/sudoers.ldap.mdoc.in:
	Fix minor grammar errors in sudoers.ldap man page

	Signed-off-by: peppapig450 <peppapig450@pm.me>
	[334e23183]

	* docs/cvtsudoers.mdoc.in, docs/sudo.mdoc.in,
	docs/sudo_logsrv.proto.mdoc.in, docs/sudo_logsrvd.conf.mdoc.in,
	docs/sudo_logsrvd.mdoc.in, docs/sudo_plugin.mdoc.in,
	docs/sudo_plugin_python.mdoc.in, docs/sudo_sendlog.mdoc.in,
	docs/sudoers.ldap.mdoc.in, docs/sudoers.mdoc.in,
	docs/sudoers_timestamp.mdoc.in, docs/sudoreplay.mdoc.in,
	docs/visudo.mdoc.in:
	Fix typo: 'Please not report' → 'Please do not report' in
	documentation

	Signed-off-by: peppapig450 <peppapig450@pm.me>
	[aa5d4b2b4]

	* docs/sudo.conf.mdoc.in:
	Fix minor grammar and spelling issues in sudo.conf man page

	Signed-off-by: peppapig450 <peppapig450@pm.me>
	[2f4d6bfe2]

2025-03-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/iolog_writer.c, logsrvd/logsrvd_local.c,
	plugins/audit_json/audit_json.c:
	Free existing contents of struct eventlog before overwriting.

	In the unlikely event that there are duplicate keys in info_msgs,
	free the old string before overwriting with the new one.
	[ce0ec8ddc]

	* src/tgetpass.c:
	Use a pointer to end of buffer instead of tracking space left.

	Fixes a problem in feedback mode where an initial backspace would
	reduce the effective buffer size. GitHub issue #439
	[e8695d536]

2025-03-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .gitignore, .hgignore:
	Ignore scripts/check_man
	[627ae4b09]

2025-03-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md, config.h.in, configure, configure.ac,
	plugins/sudoers/defaults.c:
	Make ignore_dot the default

	Add --disable-ignore-dot to disable it and deprecate
	--with-ignore-dot.
	[fce45b276]

2025-02-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo_logsrv.proto.man.in, docs/sudo_logsrv.proto.mdoc.in,
	docs/sudo_logsrvd.conf.man.in, docs/sudo_logsrvd.conf.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.mdoc.in, docs/sudoreplay.man.in,
	docs/sudoreplay.mdoc.in:
	Dash/hyphen related style fixes from check_man.
	[ff3c2185f]

	* scripts/check_man.in:
	Add hyphen/dash checks
	[eae70b05c]

2025-02-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, configure, configure.ac, docs/Makefile.in,
	scripts/check_man.in:
	Add check_man script to check for man page warnings.
	[c2e77b713]

2025-02-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo_plugin_python.man.in, docs/sudo_plugin_python.mdoc.in:
	Sync sudo.DEBUG descriptions with comments in sudo_debug.h.
	[38c0bdd7a]

2025-02-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.conf.man.in, docs/sudo.conf.man.in.sed,
	docs/sudo.man.in, docs/sudo.man.in.sed, docs/sudoers.man.in,
	docs/sudoers.man.in.sed:
	Sync sed scripts that add back troff conditionals.

	The sudo manuals contain conditional to avoid describing
	system-specific behavior on systems that don't support it. When we
	convert from mdoc to man format we lose those conditionals, these
	sed scripts add them back. Changes to the mdoc files can prevent the
	regexps from matching so they need to be updated periodically.
	[cf1b87c71]

2025-02-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in,
	docs/sudo_plugin_python.man.in, docs/sudo_plugin_python.mdoc.in:
	Fix some style warnings from "mandoc -Tlint"
	[4d331e602]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Style fixes from Bjarni Ingi Gislason.
	[3ba525a34]

2025-02-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Most Defaults entries are applied in order.

	The exceptions are command-specific Defaults (which cannot be
	applied until the command's path is resolved) and a small number of
	"early" defaults that affect other entries.
	[b04386f63]

2025-02-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/Makefile.in, lib/util/mksiglist.c, lib/util/mksigname.c:
	Only use system includes for mksiglist and mksigname.

	These are standalone programs that run on the host system (which may
	differ from the target system) so we should not include config.h and
	sudo_compat.h.
	[1bdead1bb]

	* Makefile.in, lib/eventlog/Makefile.in, lib/fuzzstub/Makefile.in,
	lib/iolog/Makefile.in, lib/logsrv/Makefile.in,
	lib/protobuf-c/Makefile.in, lib/ssl_compat/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/audit_json/Makefile.in, plugins/group_file/Makefile.in,
	plugins/python/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_approval/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	No longer need to define NSIG for cppcheck.

	There is now a configure check that defines it as needed.
	[b0d94331c]

2025-02-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c:
	Split the code to fill an exec closure into two functions.

	This lets us initialize the exec closure early and fill in the
	events later. It also makes things consistent with the exec_pty
	version.
	[1032030f8]

2025-02-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, docs/Makefile.in:
	Run groff with warnings enabled for "make lint".
	[a4a999b5e]

	* lib/util/getentropy.c, src/sudo.c:
	Prefer POSIX getpgrp() to getpgid(0).

	We use getpgrp() in most place so prefer it for consistency with the
	rest of the code base.
	[257a078a8]

	* docs/sudo.man.in, docs/sudo_logsrv.proto.man.in,
	docs/sudoers.man.in, docs/visudo.man.in:
	regen
	[8feff96d3]

	* docs/visudo.mdoc.in:
	Make DIAGNOSTICS descriptions indent consistent with sudo.mdoc.in.
	[d3293c528]

2025-02-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.mdoc.in, docs/visudo.mdoc.in:
	Avoid using ".It Li foo ..." in sudo manuals.

	The .Li macro is deprecated and makes no difference on terminal
	devices. Also avoid using items greater than 80 characters which
	will wrap incorrectly. Bug #1075.
	[dc0f16dbc]

	* docs/sudo.mdoc.in, docs/sudo_logsrv.proto.mdoc.in,
	docs/sudoers.mdoc.in:
	Fix warnings from groff -mandoc -t -K utf8 -rF0 -rHY=0 -ww -b -z

	Specify list offset and width in ens where applicable. Shorten the
	ttyname description in sudo_logsrv.proto.mdoc.in. Bug #1075.
	[aad69105d]

2025-02-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, etc/sudo-python.pp, etc/sudo.pp:
	Only package parent directories that match a non-default prefix

	For example, if sudo is installed into /opt/sudo we only want to
	package directories under /opt and not /var.
	[a9e112079]

	* plugins/sudoers/Makefile.in:
	regen
	[43f16c1d2]

	* MANIFEST:
	Add lib/util/login_max.c
	[4bb4c6a15]

2025-01-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	Initialize exec closure before calling
	sudo_fatal_callback_register()

	The pty_cleanup() function, which may be called via
	fatal()/fatalx(), expects that ec->details is set. If there is a
	fatal error after the cleanup hook is registered but before the exec
	closure it filled in, pty_cleanup() would dereference a NULL
	pointer. Reported by Bjorn Baron.
	[0be9f0f94]

2025-01-17  Mateusz Piotrowski  <0mp@FreeBSD.org>

	* src/exec_pty.c:
	Fix a typo in the description of exec_pty()
	[6fc816d90]

2025-01-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/ttyname_dev.c:
	Quiet a -Wconversion warning.
	[a5bca1b94]

2025-01-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/fuzzstub/fuzzstub.c, lib/iolog/iolog_nextid.c,
	lib/iolog/regress/iolog_filter/check_iolog_filter.c,
	lib/util/event.c, lib/util/regress/fuzz/fuzz_sudo_conf.c,
	logsrvd/logsrvd.c, logsrvd/logsrvd_local.c, logsrvd/logsrvd_relay.c,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c, logsrvd/sendlog.c,
	plugins/sudoers/ldap.c, plugins/sudoers/log_client.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/tsdump.c,
	plugins/sudoers/visudo.c, src/conversation.c, src/copy_file.c,
	src/exec_monitor.c, src/exec_ptrace.c, src/sudo_intercept_common.c,
	src/tgetpass.c, src/ttyname.c:
	Check for negative return value of read, write and lseek instead of
	-1

	The return values are used in ways that assume they are positive. In
	practice, it is not possible to have a negative return value other
	than -1 due to the size of the buffers being read from or written
	to. Also add overflow checks when updating the buffer len. Quiets
	several coverity warnings.
	[a27b989c9]

2025-01-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .github/workflows/main.yml:
	Switch to upload-sarif v3
	[6df96785f]

	* .github/workflows/codeql-analysis.yml:
	Update codeql GitHub actions to a non-deprecated version.
	[7cc0a0cc4]

	* .github/workflows/main.yml:
	Use upload-artifact@v4, v3 is deprecated.
	[c5b86f06e]

2025-01-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec.c, src/exec_nopty.c, src/exec_pty.c, src/sudo_exec.h:
	Check the controlling tty to determine if a tty belongs to the user.

	Previously, we compared the terminal device number returned by
	get_process_ttyname() with that of stdin, stdout and stderr. This
	causes problems on Linux if the user is logged in on the console,
	which is a virtual device that may correspond to one of several
	different terminal devices. In this specific case, there is a
	mismatch between the controlling terminal listed in /proc/self/stat
	(which corresponds to the underlying terminal device) and the device
	number of stdin, stdout and stderr (which is that of /dev/console).
	[fd3ff3a0b]

	* lib/util/login_max.c, plugins/sudoers/cvtsudoers_pwutil.c,
	plugins/sudoers/pwutil_impl.c:
	Move LOGIN_NAME_MAX compat define to login_max.c
	[a3cd820d2]

2025-01-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/toke_util.c:
	copy_string: use an end pointer to quiet a coverity warning

	Instead of modifying the len parameter and using it for bounds
	checking, compute the end of the source string and bound check on
	that instead. Also simplify the code slightly and enable debugging.
	[e3753309f]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	expand_include: initialize dst_size to 1 to quiet coverity warning

	This could only be an issue if the sudoers file was an empty string,
	which is not possible.
	[af4634a1c]

	* plugins/sudoers/match_digest.c:
	digest_matches: don't initialize digest_len to -1

	This was done to quiet a coverity warning but newer coverity now
	warns about this instead.
	[34a3c84de]

	* lib/util/setgroups.c:
	Check for sysconf() negative return value instead of -1

	Quiets a coverity warning.
	[0fdbb6e2e]

	* include/sudo_util.h, lib/util/Makefile.in, lib/util/gethostname.c,
	lib/util/login_max.c, lib/util/util.exp.in,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/match.c,
	plugins/sudoers/pwutil_impl.c:
	Add sudo_login_name_max() and sudo_host_name_max()

	These convenience functions cache the value and handle any potenial
	errors from sysconf().
	[405070d48]

	* config.h.in, configure, configure.ac, include/sudo_util.h:
	Add an OFF_T_MAX define

	This will be used for integer overflow checks when copying files.
	[7c075c100]

2025-01-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* LICENSE.md:
	Update copyright year
	[30729312c]

2025-01-15  Ignacy Gawędzki  <ignacy.gawedzki@green-communications.fr>

	* src/ttyname.c:
	Fix getting ppid in get_process_ttyname for Linux.

	The ppid field in /proc/self/stat is the fourth and not the third.
	The latter is the process state (S, R, etc.).

	Signed-off-by: Ignacy Gawędzki
	<ignacy.gawedzki@green-communications.fr>
	[5794e511d]

2025-01-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c:
	Format T_TIMESPEC as "%d.%d" instead of "%.1f"

	This fixes the display of the timeout values in the "sudo -V" output
	on systems without a C99-compliant snprintf(). The snprintf()
	replacement sudo ships with does not support floating point.
	[01b1410d6]

2024-12-22  vayers  <violetlastname@gmail.com>

	* plugins/sudoers/sudoers.in:
	Replace tab with space

	A line in the sudoers file contains a tab where a space seems to be
	more appropriate.
	[7c121ff83]

2025-01-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Newer macOS deprecates -force_flat_namespace for -flat_namespace

	The linker warns about -force-flat_namespace and uses
	-flat_namespace instead. Check for -flat_namespace if
	-force-flat_namespace is not found.
	[103af8cb2]

	* scripts/build_pkgs:
	build_pkgs: adapt to work with a git repo
	[46831d6ef]

	* scripts/log2cl.pl:
	Remove unused -b option
	[b52ef1fbb]

2025-01-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* aclocal.m4, configure, m4/libtool.m4, m4/ltoptions.m4,
	m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4,
	scripts/ltmain.sh:
	Update to libtool 2.5.3
	[355c82a1d]

2025-01-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/log2cl.pl:
	Add markdown mode for use with the sudo web site.
	[e13163ce0]

2024-12-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/log2cl.pl:
	Use Text::Wrap::fill() for ChangeLog body, not wrap().
	[a3c1cbd88]

2024-12-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo_sendlog.man.in, docs/sudo_sendlog.mdoc.in:
	Sort entries in the "SEE ALSO" section.
	[e670d2a85]

	* docs/sudo.man.in, docs/sudo.mdoc.in, src/tgetpass.c:
	If sudo is run without a tty via ssh, suggest using "ssh -t"

	The current warning message mentions using sudo's -S option but this
	will cause the password to be echoed without a terminal. In most
	cases, the user just needs to run ssh with the -t option.
	[516f72960]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y:
	The "ALL" command should not override a previous NOSETENV tag in a
	rule.

	Command tags are inherited from previous Cmnds in a Cmnd_Spec_List.
	There is a special case of the SETENV tag for the "ALL" command,
	where SETENV is implied if no explicit SETENV or NOSETENV tag is
	specified. The code to inherit the SETENV tag didn't take into
	account that an implied value for SETENV should also be overridden
	by an explicit SETENV or NOSETENV tag in the previous Cmnd in the
	Cmnd_Spec_List.
	[4dbb07c19]

2024-12-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in, lib/eventlog/Makefile.in, lib/fuzzstub/Makefile.in,
	lib/iolog/Makefile.in, lib/logsrv/Makefile.in,
	lib/protobuf-c/Makefile.in, lib/ssl_compat/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/audit_json/Makefile.in, plugins/group_file/Makefile.in,
	plugins/python/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_approval/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Don't need to undef _POSIX_HOST_NAME_MAX, it is not used.
	[de3b179a0]

2024-11-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/codespell.ignore, src/exec_ptrace.h:
	Quiet codespell 2.3.0 complaints.
	[3226c60e6]

2024-11-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_compat.h, lib/util/ttyname_dev.c,
	plugins/sudoers/policy.c, plugins/sudoers/timestamp.c,
	src/regress/ttyname/check_ttyname.c, src/sudo.c, src/ttyname.c:
	Use NODEV macro instead of explicit (dev_t)-1.

	Also fix an assignment of dev_t to -1 that should be NODEV. Bug
	#1074.
	[d5028a00c]

2024-11-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_16p2 for changeset 3c721fa0ff0c
	[015a0d717]

	* :
	Merge sudo 1.9.16p2 from tip.
	[172cbd968]

	* NEWS, configure, configure.ac:
	Sudo 1.9.16p2
	[73cbe4e7e]

2024-11-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoreplay.c:
	Work around a bug in UBSan that is causing CI failures.

	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116834
	[f8987fc0b]

2024-11-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_pwutil.c,
	plugins/sudoers/pwutil_impl.c:
	Avoid multiple calls to sysonf() via the MAX macro.

	The expansion of MAX would result in multiple calls to sysconf(). It
	is less error-prone to store the result of sysconf() in a long.
	[da20ccec0]

	* lib/util/setgroups.c, plugins/sudoers/sudo_printf.c,
	src/conversation.c:
	Add some casts to quiet -Wconversion
	[3d85f2e98]

2024-11-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_plugin.h, plugins/sudoers/policy.c, src/hooks.c:
	Cast hook functions to sudo_hook_fn_t to fix C23 compile error.

	The sudo plugin API defines sudo_hook_fn_t as a function with
	unspecified arguments. This is no longer supported in C23 so use a
	variadic function for sudo_hook_fn_t instead. Moving to a union may
	be a better long-term fix. GitHub issue #420.
	[9613ef944]

	* lib/util/regress/parse_gids/parse_gids_test.c:
	Use NULL, not false, in the terminating entry of test_data[].
	[4c99e29bb]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Pass NULL, not false, to sudoers_format_default_line().
	[9c63ff0e1]

	* lib/util/ttyname_dev.c:
	sudo_ttyname_dev: On Linux try to use /proc/self/fd/{0,1,2} if
	possible.

	If one of std{in,out,err} matches the specified device, try to
	resolve it to a path by using /proc/self/fd/{0,1,2}. This avoids
	searching all of /dev and works in a chroot where /proc is mounted
	but /dev/pts is not. GitHub issue #421.
	[b7efb8ab5]

2024-11-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo.c, src/ttyname.c:
	get_process_ttyname: always return the terminal device if we find
	one.

	If sudo cannot map the device number to a device file, set name to
	the empty string. The caller now checks for an empty name and only
	passes the tty path to the plugin if it is non-empty. This allows
	sudo to run without warnings in a chroot() jail where the terminal
	device files are not present. GitHub issue #421.
	[7e8f00688]

2024-11-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_16p1 for changeset d6059bdf2a76
	[1fbc14667]

	* :
	Merge sudo 1.9.16p1 from tip.
	[7b41190db]

	* NEWS, configure, configure.ac:
	Sudo 1.9.16p1
	[abc0baffc]

2024-11-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/pam.c:
	pam_get_item() takes a void ** arg, not const void **, on Solaris
	[0f41cd717]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Shell-style substitution is not supported in env_file.

	Also document that comments are supported.
	[8b5375716]

2024-10-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	Do not send mail for "sudo -nv" or "sudo -nl"

	This avoids sending mail for users running "sudo -nv" or "sudo -nl"
	even when mail_badpass or mail_always are enabled. We already avoid
	logging in that case but mailing was not disabled when that change
	was made. Bug #1072.
	[116115229]

2024-10-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, README.LDAP.md, docs/Makefile.in, docs/SECURITY.md,
	docs/TROUBLESHOOTING.md, docs/UPGRADE.md:
	Run igor on other docs too, not just man pages
	[9d49f861c]

	* INSTALL.md, LICENSE.md, docs/CONTRIBUTING.md, docs/UPGRADE.md:
	Remove trailing whitespace
	[5180dd802]

2024-10-28  Ikko Eltociear Ashimine  <eltociear@gmail.com>

	* NEWS:
	docs: update NEWS

	minor fix
	[28df79a24]

2024-10-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/pam.c:
	sudo_pam_verify: move PAM_USER after getpass_error check

	Move it into the PAM_SUCCESS case of the switch *pam_status switch.
	[17aa7688c]

	* plugins/sudoers/auth/pam.c:
	Fix indentation
	[52c73b8f5]

2024-10-02  Marco Trevisan (Treviño)  <mail@3v1n0.net>

	* plugins/sudoers/auth/pam.c:
	plugins/pam: Check the user didn't change during PAM transaction

	PAM modules can change the user during their execution, in such
	case, sudo would still use the user that has been provided giving
	potentially access to another user with the credentials of another
	one.

	So prevent this to happen, by ensuring that the final PAM user is
	matching the one which started the transaction
	[a68e821ef]

2024-09-28  Célestin Matte  <dev@cmatte.me>

	* plugins/sudoers/sudoers.in:
	Fix typo in sudoer file comment
	[05b5de538]

2024-09-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md:
	Document "--with-secure-path-value=no"
	[f6e1a87be]

2024-08-17  Rose  <gfunni234@gmail.com>

	* plugins/sudoers/strvec_join.c, plugins/sudoers/sudoers.h:
	Put restrict qualifers in strvec_join function pointer
	[77672d83c]

2024-09-17  Andy Fiddaman  <illumos@fiddaman.net>

	* configure.ac, plugins/sudoers/sudoers.in:
	Allow --secure-path-value=no

	This adds support for --with-secure-path-value=no to allow packagers
	to ship the sudoers configuration file with the secure path line
	commented out if required.
	[131e7e2de]

2024-09-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .github/workflows/main.yml:
	Update CIFuzz GitHub action
	[ae5cf31a9]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	alias_error: display the file and line info for the duplicate alias

	Having the file and line of the previous alias definition should
	make it easier to fix duplicate alias errors.
	[0cbddb693]

2024-09-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/ttyname.c:
	On AIX, psinfo.pr_ttydev is 0 when a process has no terminal. On
	most other systems, psinfo.pr_ttydev is -1 for processes with no
	associated terminal. GitHub issue #408
	[d001abc8e]

2024-09-10  Ferdinand Bachmann  <ferdinand.bachmann@yrlf.at>

	* plugins/sudoers/sudoers.in:
	Add pam_silent setting to sudoers example config
	[ce36f01de]

2024-09-09  Ferdinand Bachmann  <ferdinand.bachmann@yrlf.at>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Fix version typo for pam_silent option in sudoers man page
	[915935ab6]

2024-09-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog.c, logsrvd/logsrvd_local.c,
	plugins/sudoers/logging.c:
	Fix the date written used by the exit record in sudo-format log
	files

	The change to always get the current time when building a struct
	evlog in sudoers broke the data and time written for exit records.
	This only affected file-based logs, not syslog. GitHub issue #405.
	[22b320645]

2024-09-04  Arjen Lentz  <arjenlentz@users.noreply.github.com>

	* src/exec_ptrace.c:
	Fixed typo in exec_ptrace.c
	[f47c88065]

2024-09-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Better test for cross-compiling when checking for C99 snprintf

	We want to avoid calling AX_FUNC_SNPRINTF entirely if
	cross-compiling since it is not possible to undo the setting of
	PREFER_PORTABLE_SNPRINTF. The previous attempt to do this failed to
	take into account that PREFER_PORTABLE_SNPRINTF would still be
	defined. GitHub issue #969
	[3e12cacc0]

2024-08-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_16 for changeset 28c38a84aced
	[483e5e87c]

	* :
	Merge sudo 1.9.16 from tip.
	[c1a614060]

2024-08-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c:
	Make a ttydev parse error non-fatal for now

	This is new for sudo 1.9.16 so we don't want to break sudo if there
	ends up being a bug in formatting dev_t from the front-end.
	[4751a4d2d]

2024-08-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo_plugin.man.in, docs/sudo_plugin.mdoc.in:
	Document that ttydev is formatted as a long long.
	[6a5a8f58e]

	* config.h.in, configure, configure.ac,
	src/regress/ttyname/check_ttyname.c, src/sudo.c:
	Format ttydev as (signed) long long, not unsigned.

	Now that we parse ttydev as a long long it makes more sense to
	format it the same way. This completely avoids the sign extension
	issue on systems where dev_t is signed.
	[cc8c43c4d]

2024-08-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo.c:
	Fix sign compare warning

	Store the result of asprintf() in an int, not size_t.
	[6b90acbfb]

	* config.h.in, configure, configure.ac,
	src/regress/ttyname/check_ttyname.c, src/sudo.c:
	Fix formatting of ttydev on systems with signed 32-bit dev_t

	If dev_t is 32-bit and signed, formatting as an unsigned long long
	may result in a bogus value due to sign extension.
	[46274e725]

	* src/regress/ttyname/check_ttyname.c:
	get_process_ttyname() now returns a dev_t, not a string.
	[f3aa3f1f2]

2024-08-13  Rose  <gfunni234@gmail.com>

	* include/compat/glob.h, lib/util/glob.c:
	Restrict-qualify glob and its functions

	glob is restrict-qualified in the standard
	[e9e0096a1]

	* include/sudo_util.h, lib/util/hexchar.c:
	Restrict-qualify sudo_hexchar_v1

	sudo_hexchar_v1 requires an array of at least size-2, and is not
	aliased.
	[82eac2b41]

2024-08-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c:
	Use sudo_strtonum() instead of strtoull().

	Fixes building on systems that lack strtoull(). While dev_t is
	unsigned on most systems, we can still use sudo_strtonum() here as
	long as we allow the full range of values [LLONG_MIN,LLONG_MAX]. We
	don't use strtoul() here since some 32-bit systems have 64-bit
	dev_t.
	[827fa8b76]

2024-08-13  Rose  <gfunni234@gmail.com>

	* include/sudo_util.h, lib/util/uuid.c:
	Use static declaration for array sizes to uuid functions
	[cba5d2a5c]

2024-08-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_compat.h:
	Include time.h if missing utimensat() or futimens().

	Now that we declare these as taking a timespec array we cannot get
	away with a simple forward declaration.
	[6f8dfd968]

2024-08-13  Rose  <gfunni234@gmail.com>

	* include/sudo_util.h, lib/util/multiarch.c:
	Restrict-qualify stat_multiarch
	[e7483ae8e]

	* src/load_plugins.c:
	Replace sudo_stat_plugin with sudo_qualify_plugin, as
	sudo_stat_plugin does not exist

	sudo_qualify_plugin was probably meant instead.
	[7269ee2be]

2024-08-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/parser/check_base64.c:
	Sync base64_encode and base64_decode prototypes with parse.h.
	[e3fd614e7]

2024-08-12  Rose Silicon  <gfunni234@gmail.com>

	* plugins/sudoers/parse.h:
	Restrict-qualify dst in base64_decode

	Definition restrict qualifies but not declaration in header.
	[60b6f3002]

2024-08-12  Rose  <gfunni234@gmail.com>

	* include/sudo_compat.h, lib/util/fstatat.c, lib/util/gmtime_r.c,
	lib/util/inet_pton.c, lib/util/localtime_r.c, lib/util/utimens.c:
	Use the full definition of the emulated function that is missing
	[f96e6d134]

	* include/sudo_util.h, lib/util/uuid.c:
	Use restrict to optimize sudo_uuid_to_string_v1
	[787a64f51]

	* plugins/sudoers/b64_decode.c, plugins/sudoers/b64_encode.c,
	plugins/sudoers/parse.h:
	Add restrict qualifiers to base64_decode and base64_encode
	[818aae38c]

	* include/sudo_iolog.h, plugins/sudoers/iolog_path_escapes.c:
	Restrict-qualify iolog_path_escapes like we do with check_iolog_path

	Also add it to the function pointer definition to act as a hint to
	use restrict in the various copy functions.
	[85d08e96b]

	* include/sudo_util.h, lib/util/uuid.c:
	sudo_uuid_to_string_v1's first argument should be const

	uuid is not modified.
	[36cea6e5f]

2024-08-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Use FD_CLOEXEC instead of just 1
	[1381a69f5]

2024-07-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention --with-secure-path-value configure option
	[f6064b04c]

	* INSTALL.md, configure, configure.ac:
	Add --with-secure-path-value option

	This can be used by package maintainers to set the value of
	secure_path that is substituted into the default sudoers file.
	[e24737eac]

	* configure, configure.ac, docs/sudoers.man.in,
	docs/sudoers.mdoc.in:
	Rename secure_path_set -> secure_path_status
	[986fdec53]

	* docs/sudo_logsrvd.man.in, docs/sudo_sendlog.man.in,
	docs/sudoers.man.in:
	regen
	[a5f5ceecf]

2024-07-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po, po/fr.mo,
	po/fr.po:
	Updated translations from translationproject.org
	[cb2457410]

2024-07-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo_logsrvd.mdoc.in, docs/sudo_sendlog.mdoc.in,
	docs/sudoers.mdoc.in:
	Add sudo_logsrv.proto manual cross-reference.
	[200af679d]

2024-07-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Late changes for 1.9.16
	[9837fa141]

2024-07-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	If cross-compiling with a C99 compiler, assume snprintf is
	compliant.

	This is a better default than assuming it is not compliant (the
	previous behavior) when cross-compiling. These days it is rare for
	sudo to be built on pre-C99 systems. GitHub issue #969
	[920710b18]

2024-06-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in:
	Reference schema.IBM_LDAP.
	[fc051ceff]

	* MANIFEST, plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/id.mo, plugins/sudoers/po/id.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/ro.mo, plugins/sudoers/po/ro.po,
	plugins/sudoers/po/ru.mo, plugins/sudoers/po/ru.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/hr.mo,
	po/hr.po, po/id.mo, po/id.po, po/ja.mo, po/ja.po, po/ko.mo,
	po/ko.po, po/pl.mo, po/pl.po, po/ro.mo, po/ro.po, po/ru.mo,
	po/ru.po, po/sv.mo, po/sv.po, po/uk.mo, po/uk.po, po/zh_CN.mo,
	po/zh_CN.po:
	Updated translations from translationproject.org
	[b2af245b3]

	* MANIFEST, README.LDAP.md, docs/schema.IBM_LDAP:
	Add schema for IBM Directory Server in LDIF format.

	GitHub issue #384
	[e97060d2f]

2024-06-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Remove an errant line that should have been removed.
	[e92467723]

2024-06-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention changes to the default sudoers file.
	[e94feadff]

2024-06-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Improve the description of secure_path.
	[06799eddf]

2024-06-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md, configure, configure.ac, docs/sudoers.mdoc.in,
	plugins/sudoers/sudoers.in:
	Enable secure_path in default sudoers file.

	It is still disabled by default in the sudo binary.
	[e0e24456b]

	* configure, configure.ac, plugins/sudoers/sudoers.in:
	Preserve SUDO_EDITOR, EDITOR, and VISUAL for visudo.
	[1db145355]

2024-06-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update .pot files for 1.9.16
	[14a8d9c09]

	* NEWS, configure, configure.ac:
	Sudo 1.9.16
	[eec523aab]

	* INSTALL.md, configure, configure.ac:
	Compile in support for insults by default.

	Insults are still disabled by default but can be enabled in the
	sudoers file. To completely disable insult support, use the
	--without-insults configure option.
	[50ae48a4b]

2024-06-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/regress/cvtsudoers/test41.out.ok,
	plugins/sudoers/regress/cvtsudoers/test41.sh:
	Treat unresolvable User_Alias/Host_Alias as non-aliases in JSON
	output.

	This matches the behavior of the sudoers parser. There is no way to
	tell for sure if an upper case word is an alias or a user or host
	name. An unresolvable command alias is never a command since it
	doesn't start with a '/'. GitHub issue #381
	[e9d65e67a]

	* lib/util/json.c:
	Set need_comma when closing an array or object.

	This fixes an issue where an empty array or object would not have a
	comma after it. GitHub issue #381
	[4e1c58753]

2024-05-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/Makefile.in:
	Add comment that the .mdoc files are generated from .mdoc.in
	[648ce410f]

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in,
	docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in, docs/sudo.man.in,
	docs/sudo.mdoc.in, docs/sudo_logsrv.proto.man.in,
	docs/sudo_logsrv.proto.mdoc.in, docs/sudo_logsrvd.conf.man.in,
	docs/sudo_logsrvd.conf.mdoc.in, docs/sudo_logsrvd.man.in,
	docs/sudo_logsrvd.mdoc.in, docs/sudo_plugin.man.in,
	docs/sudo_plugin.mdoc.in, docs/sudo_plugin_python.man.in,
	docs/sudo_plugin_python.mdoc.in, docs/sudo_sendlog.man.in,
	docs/sudo_sendlog.mdoc.in, docs/sudoers.ldap.man.in,
	docs/sudoers.ldap.mdoc.in, docs/sudoers.man.in,
	docs/sudoers.mdoc.in, docs/sudoers_timestamp.man.in,
	docs/sudoers_timestamp.mdoc.in, docs/sudoreplay.man.in,
	docs/sudoreplay.mdoc.in, docs/visudo.man.in, docs/visudo.mdoc.in:
	Sync BUGS section with the bugs section of README.md.

	Also mention how to report security issues based on SECURITY.md.
	GitHub issue #377.
	[74d64bc89]

2024-05-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/sudoers/test24.in,
	plugins/sudoers/regress/sudoers/test24.json.ok,
	plugins/sudoers/regress/sudoers/test24.ldif.ok,
	plugins/sudoers/regress/sudoers/test24.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test24.out.ok,
	plugins/sudoers/regress/sudoers/test24.toke.ok,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Allow the path in Chdir_Spec | Chroot_Spec to be double-quoted.

	The other values of an Option_Spec could already be quoted but path
	names are treated specially.
	[7c74a971d]

2024-05-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/cvtsudoers.man.in, docs/sudo.conf.man.in, docs/sudo.man.in,
	docs/sudo_logsrv.proto.man.in, docs/sudo_logsrvd.conf.man.in,
	docs/sudo_logsrvd.man.in, docs/sudo_plugin.man.in,
	docs/sudo_plugin_python.man.in, docs/sudo_sendlog.man.in,
	docs/sudoers.ldap.man.in, docs/sudoers.man.in,
	docs/sudoers_timestamp.man.in, docs/sudoreplay.man.in,
	docs/visudo.man.in:
	regen
	[58fec2f0c]

	* docs/Makefile.in:
	Include the name of the original .mdoc.in file in the .man.in file.

	This should make it more obvious which is the authoritative file.
	[54ac175d3]

2024-05-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_monitor.c, src/exec_pty.c, src/sudo.h:
	When revoking the pty, kill the foreground process from the parent
	sudo.

	There's no need to send messages back and forth to the monitor when
	the main process can just do it. GitHub issue #367.
	[62e4d29f8]

	* scripts/pp:
	Fix a syntax error in the systemd sudo-logsrvd.postinst script:
	sudo-logsrvd.postinst: 120: [: -eq: unexpected operator
	[52772ae6e]

	* scripts/mkpkg:
	Fix check for libaudit package on Debian-based systems.

	Newer systems only have /usr/lib with /lib as a symbolic link.
	[52586b0db]

2024-05-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/schema.ActiveDirectory:
	Add double quotes around #schemaNamingContext in example.

	GitHub issue #376
	[ee56176b1]

2024-05-15  Robert Manner  <robert.manner@quest.com>

	* logsrvd/logsrvd.c, logsrvd/tls_client.c,
	plugins/sudoers/log_client.c:
	logsrvd,plugins/sudoers: add debug log on TLS verification error
	[ba29f54d9]

2024-05-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/lookup.c:
	apply_cmndspec: plug potential memory leak

	If apply_cmndspec() is called where the cmndspec defines an apparmor
	profile or Solaris privileges, and then is called again with a
	cmndspec that does not have those set we would leak the original
	value.
	[f2a979f40]

	* plugins/sudoers/policy.c, src/parse_args.c, src/sudo.h:
	We do not pass apparmor_profile from the front-end to the policy.

	There is no command line option to specify a profile, it is only
	passed from the policy to the front-end.
	[43ffe34ab]

2024-05-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.dict:
	Sync fuzz_sudoers dictionary with def_data.in.
	[720a1450e]

	* plugins/sudoers/lookup.c:
	apply_cmndspec: plug apparmor_profile leak

	Also override existing Solaris privs if specified.
	[718df95e1]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	free_cmndspec: plug apparmor_profile leak
	[07d6aa247]

2024-05-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/regress/testhelpers.c:
	Python 3.12 backtraces use '~' in addition to '^' when underlining.
	GitHub issue #374
	[89918caf5]

2024-05-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/sudoers/test31.in,
	plugins/sudoers/regress/sudoers/test31.json.ok,
	plugins/sudoers/regress/sudoers/test31.ldif.ok,
	plugins/sudoers/regress/sudoers/test31.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test31.out.ok,
	plugins/sudoers/regress/sudoers/test31.toke.ok:
	Add test for parsing SELinux, AppArmor and Solaris privileges.
	[2e6c90cde]

	* plugins/sudoers/check.c, plugins/sudoers/cvtsudoers_csv.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_merge.c, plugins/sudoers/display.c,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/ldap_util.c,
	plugins/sudoers/lookup.c, plugins/sudoers/parse.h,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoers_ctx_free.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Unifdef parser support for SELinux, AppArmor and Solaris privileges.
	[389c8550c]

2024-04-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/display.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/ldap_util.c:
	Add some missing AppArmor bits.

	o Display ApparmorProfile in "long list" format. o Propagate
	apparmor_profile setting to commands in a list. o Support
	apparmor_profile in an LDAP sudoOption.
	[38b98b417]

	* src/exec_monitor.c:
	Quiet compiler warning on Solaris 10
	[ef52db46f]

	* configure, configure.ac, plugins/sudoers/regress/harness.in:
	Check JSON output with jq if present.
	[4d47acf69]

	* plugins/sudoers/cvtsudoers_json.c:
	Format SELinux, AppArmor and Solaris privileges as Options.

	Previously these were output as separate arrays without an enclosing
	object. GitHub issue #373
	[7c2204d34]

2024-04-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo_logsrvd.mdoc.in, docs/sudo_plugin.mdoc.in,
	docs/sudoers.mdoc.in, docs/sudoers_timestamp.mdoc.in,
	etc/codespell.exclude, lib/util/lbuf.c, logsrvd/logsrvd_journal.c,
	plugins/sudoers/parse_ldif.c, src/exec_intercept.c:
	Pass "make spell" with updated codespell.
	[27963e39f]

	* src/exec_monitor.c:
	mon_handle_revoke: only send SIGHUP to the foreground process group.

	There's no need to signal both the foreground process group and the
	command itself (if different). This matches the behavior of the
	session leader exiting, which is what we want to simulate.
	[195b7c2bc]

2024-04-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_monitor.c, src/exec_pty.c, src/sudo.h:
	Avoid using ioctl(TIOCNOTTY) in the monitor.

	We don't need to revoke the terminal in the monitor, just signal the
	foreground process group. This is more portable and has the same
	effect as ioctl(TIOCNOTTY) would on Linux. Since we now signal the
	command from the monitor, there is no reason to forward SIGHUP from
	the kernel. GitHub issue #367.
	[a2d01a957]

	* plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/regress/sudoers/test24.json.ok:
	Fix copy and paste error in the fix for GitHub issue #369 Fixes
	GitHub issue #371
	[e770c857f]

2024-04-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_monitor.c, src/exec_pty.c, src/sudo.h:
	If user's tty goes away, tell monitor to revoke the tty in its
	session.

	Previously, we would simply close the pty leader in the main sudo
	process. This had the effect of revoking the pty, but the foreground
	process would not necessarily receive SIGHUP. By using TIOCNOTTY in
	the monitor, the running command has a better chance of getting
	SIGHUP. Once the monitor has revoked the pty, the main sudo process
	will close the pty leader, invalidating the pty. GitHub issue #367.
	[41978a56e]

2024-04-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in:
	Commands with multiple digests of the same type are stored in an
	array.
	[37f8a8453]

2024-04-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/regress/sudoers/test14.json.ok:
	Store mulitple command digests of the same type as an array.

	Otherwise, we end up with duplicated keys in the object. GitHub
	issue #370
	[c42922069]

2024-04-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/ins_2001.h,
	plugins/sudoers/ins_classic.h, plugins/sudoers/ins_csops.h,
	plugins/sudoers/ins_goons.h, plugins/sudoers/ins_python.h:
	Call gettext() on insults when displayed, not when declared.
	[78699a8f7]

2024-04-01  alberic89  <alberic89@gmx.com>

	* plugins/sudoers/ins_2001.h, plugins/sudoers/ins_classic.h,
	plugins/sudoers/ins_csops.h, plugins/sudoers/ins_goons.h,
	plugins/sudoers/ins_python.h:
	Make insults translatable
	[8666c66ff]

2024-04-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/regress/sudoers/test24.json.ok:
	When converting CWD and CHROOT tags, store them as objects. Fixes
	GitHub issue #369
	[26ce75110]

2024-04-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/auth/pam.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c:
	Add pam_silent sudoers option. Inspired by PR #368 GitHub issue #216
	[ecdf0c80f]

2024-03-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md, config.h.in, configure, configure.ac,
	plugins/sudoers/ins_classic.h, plugins/sudoers/ins_csops.h:
	Remove offensive insults that were disabled by default anyway. Bug
	#1058
	[f0823c70c]

2024-03-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	logsrvd/logsrvd_conf.c, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers.c:
	Remove EVLOG_JSON, callers must use EVLOG_JSON_COMPACT or
	EVLOG_JSON_PRETTY
	[b6175b78a]

	* docs/sudo_logsrvd.conf.man.in, docs/sudo_logsrvd.conf.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.mdoc.in, include/sudo_eventlog.h,
	lib/eventlog/eventlog.c, logsrvd/logsrvd_conf.c,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoers_cb.c:
	Add "json_pretty" log format, currently the same as "json".

	In a future version, "json" will be an alias for "json_compact"
	instead. GitHub issue #357.
	[46e31a74d]

2024-03-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo_logsrvd.conf.man.in, docs/sudo_logsrvd.conf.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.mdoc.in, include/sudo_eventlog.h,
	lib/eventlog/eventlog.c, logsrvd/logsrvd_conf.c,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers_cb.c:
	Add json_compact log type for compact/minified JSON.

	The "json_compact" log type logs one event per line in
	compact/minified JSON format. GitHub issue #357.
	[1debad3be]

	* plugins/sudoers/logging.c:
	Fix typo
	[b3ade1c5f]

	* docs/sudo.man.in, docs/sudo.mdoc.in, plugins/sudoers/env.c:
	Set SUDO_HOME to the invoking user's home directory. GitHub issue
	#358
	[602a58e86]

2024-03-02  Martin  <spleefer90@gmail.com>

	* etc/sudo-logsrvd.pp:
	sudo-logsrvd.pp: Remove syslog.target (non-existent upstream since
	11~ years ago)

	Remove syslog.target from service file, this target hasn't existed
	for over a decade.

	https://github.com/systemd/systemd/blob/6aa8d43ade72e24c9426e604f7fc
	4b7582b9db7c/NEWS#L72-L73
	[836d2b556]

2024-02-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/Makefile.in:
	Explicitly link check_symbols with zlib.

	Fixes a test failure on some systems when using sudo's built-in
	zlib.
	[72cee2fa2]

2024-02-22  Fabrice Fontaine  <fontaine.fabrice@gmail.com>

	* m4/openssl.m4:
	m4/openssl.m4: fix cross-compilation with wolfssl

	Do not append -I/usr/include/wolfssl when cross-compiling

	Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
	[f66ebfa0f]

2024-02-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/Makefile.in, lib/fuzzstub/Makefile.in,
	lib/iolog/Makefile.in, lib/protobuf-c/Makefile.in,
	lib/ssl_compat/Makefile.in, lib/util/Makefile.in,
	logsrvd/Makefile.in, plugins/audit_json/Makefile.in,
	plugins/group_file/Makefile.in, plugins/python/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_approval/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Regenerate dependencies
	[81acb2bd7]

	* lib/eventlog/Makefile.in, lib/fuzzstub/Makefile.in,
	lib/iolog/Makefile.in, lib/logsrv/Makefile.in,
	lib/protobuf-c/Makefile.in, lib/ssl_compat/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/audit_json/Makefile.in, plugins/group_file/Makefile.in,
	plugins/python/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_approval/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Use $(CPP) instead if $(CC) -E when buiding .i files from .c.
	[3944ab1fb]

	* Makefile.in:
	Add missing subdirs to depend target.
	[2a61e4b07]

	* lib/util/Makefile.in, scripts/mkdep.pl:
	Using $< in a non-suffix rule context is a GNU make extension.
	[9b073f312]

2024-02-17  Yann E. MORIN  <yann.morin.1998@free.fr>

	* lib/util/Makefile.in:
	lib/utils: detect failure to generate signals list and names

	Currently, we generate the signal list and names by running cpp on
	our header, and piping the result into sed.

	However, when cpp fails [0], we do not catch that failure, as the
	error code of the LHS of a pipe is lost, with the pipe returning the
	RHS-most return code.

	Fix that by introducing two new intermediate rules, each to generate
	the preprocessed .i files, and use those as dependencies and input
	to the rule that generates the headers. Those two .i files will be
	cleaned up by the existing *.i glob.

	[0] a failure happens on recent hosts, due to inconsistency with
	time64_t and large-file support (lines elided and wrapped for
	readability):

	/usr/bin/cpp [...] ./sys_signame.h \ | /usr/bin/sed -e '1,/^int
	sudo_end_of_headers;/d' -e '/^#/d' > mksigname.h In file included
	from /usr/include/features.h:394, from /usr/include/sys/types.h:25,
	from ./sys_signame.h:4: /usr/include/features-time64.h:26:5: error:
	#error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64" 26
	| # error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
	| ^~~~~ /usr/bin/gcc [...] ./mksigname.c -o mksigname In file
	included from /usr/include/features.h:394, from
	/usr/include/bits/libc-header-start.h:33, from
	/usr/include/stdlib.h:26, from ./mksigname.c:27:
	/usr/include/features-time64.h:26:5: error: #error "_TIME_BITS=64 is
	allowed only with _FILE_OFFSET_BITS=64" 26 | # error "_TIME_BITS=64
	is allowed only with _FILE_OFFSET_BITS=64" | ^~~~~ make[2]: ***
	[Makefile:263: mksigname] Error 1

	In that case, we were lucky that the subsequent gcc call also
	failed, and for the same reason. That time64_t and lfs issue should
	be fixed (at least investigated), but that does not mean we should
	not be more robust when parsing the header either.

	Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
	[6ec958f27]

2024-02-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure:
	Regen with autoconf 2.72
	[f3ebf31aa]

	* configure.ac:
	Check if ac_cv_sys_file_offset_bits is "64", not "yes"

	This is used for determining whether to set _TIME_BITS with autoconf
	versions before 2.72.
	[bafdcc3d4]

2024-02-17  Yann E. MORIN  <yann.morin.1998@free.fr>

	* src/exec_ptrace.c:
	src/exec_ptrace: fix build without precess_vm_readv()

	Commit 32f4b98f6b4a (sudo frontend: silence most -Wconversion
	warnings.) broke the build on C libraries that miss
	process_vm_readv(), like uClibc-ng.

	Indeed, the ssize_t nwritten is declared guarded by
	HAVE_PROCESS_VM_READV, but is then re-assigned and used a few lines
	below, outside any guard.

	Fix that by always declaring the object, as it is always needed.

	Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
	[5bbfaa8e6]

2024-01-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/HISTORY.md:
	Quest no longer sponsors sudo development.
	[f69031da2]

2024-01-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	Correct a misleading debug message.
	[0a39814e4]

	* LICENSE.md, lib/zlib/deflate.c, lib/zlib/deflate.h,
	lib/zlib/gzguts.h, lib/zlib/gzlib.c, lib/zlib/inflate.c,
	lib/zlib/inftrees.c, lib/zlib/inftrees.h, lib/zlib/trees.c,
	lib/zlib/zconf.h.in, lib/zlib/zlib.h, lib/zlib/zutil.h:
	Update embedded copy of zlib to version 1.3.1.
	[eb4506f43]

2024-01-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, etc/sudo-python.pp, etc/sudo.pp:
	Update copyright data in the package files.
	[3899f2ef9]

2024-01-12  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* lib/util/glob.c, plugins/sudoers/tsdump.c:
	Prefer putchar over fputc where possible

	putchar is easier to understand than fputc and printf and does less
	work than those two do.
	[725d3fdc2]

2024-01-13  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* plugins/sudoers/iolog_path_escapes.c:
	Add restrict qualifiers to strlcpy_no_slash

	It's just strlcpy except it replaces '/' with '_'.
	[7fc7d6953]

2024-01-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	Only log "a password is required" for "sudo -n" if a command is
	specified. This means that it is not logged for "sudo -nv" and "sudo
	-nl". We only log this message when sudo's -n flag is specified (and
	not when the user presses ^C at the password prompt) so that there
	is a record of failed non-interactive commands.
	[67e328d6f]

2024-01-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Document side-effects of enabling the use_pty option.
	[b39dc7c5f]

	* plugins/sudoers/sudoers.in:
	Update "!use_pty" example to only disable it for non-root users.

	Also add a commented out entry for "exec_background" which can also
	be used to prevent sudo from consuming tty input. Related to GitHub
	issue #338
	[ff3dbe60b]

2024-01-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/regress/mktemp/mktemp_test.c:
	Add check for sysconf(_SC_PAGESIZE) failure.
	[00452471b]

	* src/sudo_edit.c:
	sudo_edit_mktemp: remove useless cast
	[f52fa574c]

2023-12-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* LICENSE.md:
	Welcome to 2024
	[22b01501e]

	* LICENSE.md:
	Bump zlib copyright date for version 1.3
	[c15e0aeea]

2023-12-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	Restore the ability to override default configure settings.

	The user-specified options must go last...
	[69a024304]

2023-12-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_15p5 for changeset 4418cfdc5b2a
	[a0a68f22c]

	* NEWS, configure, configure.ac:
	Sudo 1.9.15p5
	[00b2bd358]

	* NEWS, configure, configure.ac:
	Sudo 1.9.15p5
	[fc9369cb4]

2023-12-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	Handle Debian GNU Hurd
	[b5a3513fb]

	* plugins/sudoers/cvtsudoers_pwutil.c,
	plugins/sudoers/pwutil_impl.c:
	Properly handle sysconf(_SC_LOGIN_NAME_MAX) returning -1 on failure.

	The cast to size_t needs to be outside the MAX() macro or the -1
	will get cast to unsigned.
	[ada47ee10]

	* plugins/sudoers/cvtsudoers_pwutil.c,
	plugins/sudoers/pwutil_impl.c:
	Properly handle sysconf(_SC_LOGIN_NAME_MAX) returning -1 on failure.

	The cast to size_t needs to be outside the MAX() macro or the -1
	will get cast to unsigned.
	[e4057faca]

2023-12-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, plugins/sudoers/timestamp.c:
	Automatically migrate lecture file path from name-based to
	uid-based.

	GitHub issue #342.
	[63ebe354c]

	* config.h.in, configure, configure.ac, plugins/sudoers/timestamp.c:
	Automatically migrate lecture file path from name-based to
	uid-based.

	GitHub issue #342.
	[ad4dc22d5]

2023-12-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/regress/iolog_path/check_iolog_path.c:
	Add missing checks for strdup() failure.
	[63f2c54b8]

2023-12-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/ldap_conf.c:
	Disable netgroup_query when netgroup_base is not set.

	The logic was inverted when support for netgroup_query was added.
	This supercedes PR #341.
	[286c8ddc5]

	* plugins/sudoers/ldap_conf.c:
	Disable netgroup_query when netgroup_base is not set.

	The logic was inverted when support for netgroup_query was added.
	This supercedes PR #341.
	[5fbf7a362]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	In the NOEXEC example make it clear that "shanty" is a host. Bug
	#1064
	[0e8b722e8]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	In the NOEXEC example make it clear that "shanty" is a host. Bug
	#1064
	[6d4ffe674]

2023-12-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog.c:
	closefrom_nodebug: skip fds < 0

	This can only happen if lowfd < 0, which is never the case. Quiets a
	static analyzer warning.
	[10fd66ac9]

2023-12-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/defaults.c:
	Fix printing of warning when a Defaults setting is missing a value.

	This is a bug in parse_default_entry() introduced in sudo 1.8.19
	when support for using the default syslog facility was added at the
	wrong place in a switch().
	[318e0eff3]

	* plugins/sudoers/defaults.c:
	Fix printing of warning when a Defaults setting is missing a value.

	This is a bug in parse_default_entry() introduced in sudo 1.8.19
	when support for using the default syslog facility was added at the
	wrong place in a switch().
	[701914816]

2023-12-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h:
	Sprinkle some more const in defaults.c.
	[f67a7e623]

	* plugins/sudoers/defaults.c:
	Fix evaluation of a tuple used in "true" boolean context.

	Previously, a tuple in boolean context was always treated as a
	negated entry, which doesn't match the documentation. We assume that
	there are at least two tuple entries where the first maps to boolean
	false and the second maps to boolean true.
	[ae7dc397b]

	* plugins/sudoers/defaults.c:
	Fix evaluation of a tuple used in "true" boolean context.

	Previously, a tuple in boolean context was always treated as a
	negated entry, which doesn't match the documentation. We assume that
	there are at least two tuple entries where the first maps to boolean
	false and the second maps to boolean true.
	[2df637b26]

	* .hgtags:
	Added tag SUDO_1_9_15p4 for changeset cc9d22d261de
	[80a2794b0]

	* NEWS, configure, configure.ac:
	Sudo 1.9.15p4
	[680352b91]

	* NEWS, configure, configure.ac:
	Sudo 1.9.15p4
	[2535c5ae1]

	* plugins/sudoers/lookup.c:
	sudoers_lookup_pseudo: init match to UNSPEC for
	sudo_nss_can_continue().

	Otherwise, processing will stop after the first sudoers nsswitch
	service specification where [SUCCESS=return] is present.
	[fbc4c50d4]

	* plugins/sudoers/lookup.c:
	sudoers_lookup_pseudo: init match to UNSPEC for
	sudo_nss_can_continue().

	Otherwise, processing will stop after the first sudoers nsswitch
	service specification where [SUCCESS=return] is present.
	[5f6e0a41d]

2023-12-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_15p3 for changeset 20d368229c6a
	[319ada9ab]

	* NEWS, configure, configure.ac:
	Sudo 1.9.15p3
	[c9198ef4d]

	* NEWS, configure, configure.ac:
	Sudo 1.9.15p3
	[a1bb5e5c1]

2023-12-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c:
	Pass back Solaris privs as "runas_privs" and "runas_limitprivs".

	The "runas_" prefix got inadvertantly removed in the big
	sudoers_context refactor.
	[de242c573]

	* plugins/sudoers/policy.c:
	Pass back Solaris privs as "runas_privs" and "runas_limitprivs".

	The "runas_" prefix got inadvertantly removed in the big
	sudoers_context refactor.
	[f149dd2c8]

2023-12-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_util.h, lib/util/term.c, lib/util/ttysize.c,
	lib/util/util.exp.in, src/sudo.h, src/ttyname.c:
	sudo_term_is_raw: only try to lock the fd if it is a tty

	This moves sudo_isatty() to libsudo_util so sudo_term_is_raw() can
	use it. Fixes GitHub issue #335
	[1e03cbd0b]

	* include/sudo_util.h, lib/util/term.c, lib/util/ttysize.c,
	lib/util/util.exp.in, src/sudo.h, src/ttyname.c:
	sudo_term_is_raw: only try to lock the fd if it is a tty

	This moves sudo_isatty() to libsudo_util so sudo_term_is_raw() can
	use it. Fixes GitHub issue #335
	[2fc78071c]

2023-12-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoreplay.c:
	setup_terminal: fix an editing error introduced in 1.9.15.
	[d17e28ad6]

	* plugins/sudoers/sudoreplay.c:
	setup_terminal: fix an editing error introduced in 1.9.15.
	[6ef5310e0]

2023-12-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match_command.c:
	command_matches_regex: retry with canonicalized path if possible

	If ctx->user.cmnd doesn't match, use ctx->user.cmnd_dir (if present)
	to construct a canonicalized path and match on that.
	[0c2de39da]

2023-12-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match_command.c:
	command_matches_fnmatch: retry with canonicalized path if possible

	If ctx->user.cmnd doesn't match, use ctx->user.cmnd_dir (if present)
	to construct a canonicalized path and match on that.
	[44f0908e7]

	* lib/util/gethostname.c:
	If sysconf(_SC_HOST_NAME_MAX) returns 0, just use 255.

	This should not actually be possible.
	[24f443981]

	* plugins/sudoers/sethost.c:
	Fall back to "localhost" if gethostname() fails.

	GitHub issue #332
	[b16d194bb]

	* plugins/sudoers/sethost.c:
	Fall back to "localhost" if gethostname() fails.

	GitHub issue #332
	[8faf43249]

	* plugins/sudoers/match_command.c:
	command_matches_glob: fix comparison of canonicalized parent
	directories

	Bug #1062
	[3cbcb308c]

	* plugins/sudoers/match_command.c:
	command_matches_glob: fix comparison of canonicalized parent
	directories

	Bug #1062
	[8dd296776]

2023-12-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_csv.c:
	Add missing print_member_list_csv() return value check.
	[9c3eb2fec]

	* plugins/sudoers/tsdump.c:
	Check sudoers_debug_register() return value.
	[79ed29c4a]

2023-11-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, scripts/config.guess, scripts/config.sub:
	Regenerate with the autoconf 2.72d snapshot.
	[c3ac12297]

2023-11-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in:
	Add cmddenial_message to def_data.in
	[77700a4b7]

2023-11-28  THE-Spellchecker  <THE-Spellchecker@outlook.com>

	* INSTALL.md, docs/UPGRADE.md, lib/util/event.c, lib/util/fatal.c,
	lib/util/fnmatch.c, lib/util/lbuf.c, lib/util/snprintf.c,
	lib/util/sudo_dso.c, plugins/python/example_io_plugin.py,
	plugins/python/example_policy_plugin.py,
	plugins/sample/sample_plugin.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.in,
	plugins/sudoers/ldap.c, plugins/sudoers/lookup.c,
	plugins/sudoers/parse.h, plugins/sudoers/parse_ldif.c,
	plugins/sudoers/policy.c, plugins/sudoers/pwutil.h,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoers.c, src/exec.c, src/exec_monitor.c,
	src/exec_ptrace.c, src/exec_pty.c:
	Typographical and Grammatical fixes
	[5eba4b48c]

2023-11-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Reword the description of cmddenial_message.
	[b4ae559c8]

	* docs/sudoreplay.man.in:
	Regenerate from sudoreplay.mdoc.in
	[6b6e0aed0]

2023-11-20  Guillaume Destuynder  <gdestuynder@google.com>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/logging.c,
	plugins/sudoers/regress/sudoers/test26.in,
	plugins/sudoers/regress/sudoers/test26.json.ok,
	plugins/sudoers/regress/sudoers/test26.ldif.ok,
	plugins/sudoers/regress/sudoers/test26.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test26.out.ok,
	plugins/sudoers/regress/sudoers/test26.toke.ok:
	Add support for a custom message when the command execution is
	denied.
	[a4cbfecda]

2023-11-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/ttyname_dev.c:
	No need to include sys/param.h here.
	[55db82908]

	* plugins/sudoers/tsdump.c:
	tsdump: quiet compiler warnings on some platforms.

	Quiet a -Wshadow warning from gcc. Cast major() and minor() to
	unsigned int when printing.
	[522f1b634]

	* plugins/sudoers/tsdump.c:
	tsdump: display both the terminal path and device number.

	If no terminal device can be found, print "major, minor" device
	numbers instead.
	[288593875]

	* docs/sudoers_timestamp.man.in, docs/sudoers_timestamp.mdoc.in:
	Sync time stamp defines with sudoers timestamp.h

	The types and flags are now explicitly unsigned.
	[7d7dfbfd4]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	docs/sudoers_timestamp.man.in, docs/sudoers_timestamp.mdoc.in:
	Mention the tsdump utility
	[0c958e185]

	* plugins/sudoers/Makefile.in:
	Build tsdump by default so it does not suffer bit rot.
	[66c9a636d]

	* include/sudo_debug.h:
	Add sudo_debug_exit_dev_t stub for fuzzing.
	[67ed8fbe5]

	* lib/util/chacha_private.h, lib/util/inet_pton.c:
	Avoid using the u_int type, which is not portable.
	[be911b77d]

	* plugins/sudoers/tsdump.c:
	tsdump: update to use a uid-based path by default

	This matches the changes in sudo 1.9.15 to the sudoers policy
	module.
	[5ff6f4965]

2023-11-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	*
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout:
	Update for plugin version 1.22.
	[ce74f50b4]

	* docs/sudo_plugin.man.in, docs/sudo_plugin.mdoc.in,
	include/sudo_plugin.h:
	Document ttydev and bump plugin version to 1.22
	[61dbfe092]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/timestamp.c:
	Add ttydev to sudoers_user_context and use for timestamp file.

	GitHub issue #329
	[a85494b5c]

	* include/sudo_debug.h, src/sudo.c, src/sudo.h, src/ttyname.c:
	Pass tty device number from front-end to policy module.

	GitHub issue #329
	[3dfbf9316]

2023-11-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	lib/eventlog/parse_json.c, lib/iolog/iolog_legacy.c,
	lib/iolog/iolog_loginfo.c, logsrvd/iolog_writer.c,
	logsrvd/logsrvd_local.c, logsrvd/sendlog.c, plugins/sudoers/audit.c,
	plugins/sudoers/iolog.c, plugins/sudoers/logging.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoreplay.c:
	Rename submit_time -> event_time in struct eventlog.
	[b9275b7ea]

	* plugins/sudoers/audit.c, plugins/sudoers/logging.c:
	We can use evlog.submit_time in the call to eventlog_alert().

	This is set to the current wallclock time by sudoers_to_eventlog().
	[0e53d5fdd]

	* plugins/sudoers/logging.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h:
	Replace submit_time in struct sudoers_context with start_time.

	We need to track the (monotonic) command start time to be able to
	generate an accurate run time. Instead of setting submit time when
	the policy initializes (and using that time for logging purposes),
	set evlog->submit_time to the current wallclock time when we need to
	perform logging. This is more consistent with how sudo logging was
	performed in the past. Fixes GitHub issues #327.
	[39ea3176c]

	* plugins/sudoers/audit.c, plugins/sudoers/iolog.c,
	plugins/sudoers/log_client.c, plugins/sudoers/log_client.h,
	plugins/sudoers/logging.c:
	log_server_open: always pass in awake time, not wallclock time.

	The timespec passed to log_server_open() should be from
	sudo_gettime_awake() since it is used to build the command run time.
	[432b08555]

	* plugins/sudoers/log_client.c, plugins/sudoers/log_client.h,
	plugins/sudoers/logging.c:
	log_server_alert: use fmt_alert_message not fmt_reject_message

	Only affects intercepted commands.
	[6965e1b0a]

	* plugins/sudoers/audit.c, plugins/sudoers/log_client.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h:
	log_server_alert: struct timespec argument was not actually used

	The struct timespec argument is used to initialize the command start
	time, which is not used for an alert message.
	[13dec64f3]

2023-11-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_csv.c:
	cvtsudoers_csv.c: remove most sudo_fatal() calls.

	Errors are now propagated up the call stack.
	[47a43c540]

	* plugins/sudoers/cvtsudoers_ldif.c:
	No need for sudo_fatalx() here, just pass back an error.
	[dd5f7a450]

	* plugins/sudoers/cvtsudoers_ldif.c:
	cvtsudoers_ldif: display warning on write error
	[2c06aa321]

	* plugins/sudoers/cvtsudoers_merge.c:
	cvtsudoers_merge.c: remove sudo_fatal() calls.

	Errors are now propagated up the call stack.
	[7e4632691]

2023-11-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_merge.c:
	Make new_member() return NULL on failure and adjust callers.
	[8cfd4467f]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Pass return values back instead of using sudo_fatal().
	[564d8ac01]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Add printf_attribute_ldif() to printf-format an LDIF attribute.

	This replaces multiple sequences of asprintf() and
	print_attribute_ldif().
	[d28884b1c]

2023-11-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_json.c:
	cvtsudoers_json.c: check sudo_json_* return values.

	Previously, we set memfatal to true in sudo_json_init() instead.
	This also gets rid of a number of sudo_fatalx() calls.
	[12e55dcd7]

	* plugins/audit_json/audit_json.c:
	add_timestamp: check sudo_json_* return values.
	[1a68935ae]

	* plugins/sudoers/alias.c, plugins/sudoers/check_aliases.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_csv.c,
	plugins/sudoers/parse.h, plugins/sudoers/testsudoers.c:
	alias_apply: change return type to bool

	We can use the rbapply() return value to detect failure.
	[a2998a670]

	* src/sudo.c:
	Always disable core dumps when sudo sends itself a fatal signal.

	When a command exits due to a fatal signal, sudo will re-send that
	signal to itself so the shell does not ignore keyboard-generated
	signals. However, now that sudo disables core dumps by default for
	the command, we cannot rely on WCOREDUMP() telling us whether or not
	the signal will lead to a core dump. It is safest to always disable
	core dumps before sending the signal to ourself.
	[4795e4b36]

	* src/sudo.c:
	Always disable core dumps when sudo sends itself a fatal signal.

	When a command exits due to a fatal signal, sudo will re-send that
	signal to itself so the shell does not ignore keyboard-generated
	signals. However, now that sudo disables core dumps by default for
	the command, we cannot rely on WCOREDUMP() telling us whether or not
	the signal will lead to a core dump. It is safest to always disable
	core dumps before sending the signal to ourself.
	[ab49adb92]

	* .hgtags:
	Added tag SUDO_1_9_15p2 for changeset 4d03c1608a23
	[79bf0960d]

2023-11-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge sudo 1.9.15p2 from tip.
	[22298e15e]

	* NEWS, configure, configure.ac:
	Sudo 1.9.15p2
	[62895ea44]

	* scripts/pp:
	Update PolyPkg from upstream.
	[0f40753d4]

	* lib/util/term.c:
	sudo_term_restore: don't check c_cflag on systems with TCSASOFT.

	If TCSASOFT is present, tcsetattr() will ignore c_cflag. Fixes a bug
	where sudo_term_restore() would refuse to change the terminal
	settings back if the PARENB control flag was set. GitHub issue #326.
	[a6ac589cc]

	* scripts/mkpkg:
	Quote $osversion since it may include whitespace.
	[0497bde98]

2023-11-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.h:
	Use C99 designated struct initializers.

	This is less error-prone and would have avoided GitHub issue #325.
	[e0d912d1d]

	* .hgtags:
	Added tag SUDO_1_9_15p1 for changeset d23f72517e07
	[70e1e9826]

	* :
	Merge sudo 1.9.15p1 from tip.
	[29c5a12af]

	* NEWS, configure, configure.ac:
	Sudo 1.9.15p1
	[45aeeddcb]

	* plugins/sudoers/sudoers.h:
	Correct the order of the strings in SUDOERS_CONTEXT_INITIALIZER.

	Fixes GitHub issue #325, a bug introduced in sudo 1.9.15.
	[87c193f3f]

2023-11-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	In the sudo 1.9.14p3 section, "Python python" should be "Python
	plugin".
	[d45071af4]

	* .hgtags:
	Added tag SUDO_1_9_15 for changeset 277833c12efb
	[839758ebe]

	* :
	Merge sudo 1.9.15 from tip.
	[f7ae17d3d]

	* NEWS:
	Sudo now logs the submitenv in the JSON logs.
	[747c34059]

	* docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Document special cases for AIX-style shared libraries.

	The shared object is a member of an archive file that is specified
	in parentheses.
	[3686c9fdd]

2023-11-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in:
	Add sudoers plugin Debug example and x-ref sudoers man page for
	details.
	[e77247927]

	* docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in:
	The HP-UX getgrouplist() code has been disabled due to bugs.
	[ec6906f63]

2023-11-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/sudo_conf.c:
	sudo_conf_debug_files: special handling of DSO members for AIX

	When matching debug files for AIX-style DSOs like
	sudoers.a(sudoers.so) we want to match on the full name, the name
	without the member and on the member itself. This makes it possible
	to use the existing examples in the sudo.conf fiile on AIX.
	[097bec06b]

	* plugins/sudoers/pwutil.c:
	sudo_set_grlist and sudo_set_gidlist: set auth registry based on
	username

	Previously we used the global registry but since we have the user's
	passwd info we should use that when storing the group and gid lists.
	[24351bdad]

2023-11-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse_ldif.c:
	role_to_sudoers: only try to reuse a privilege if one is present
	[2ffcda8e1]

	* plugins/sudoers/defaults.c:
	store_plugin: avoid potential NULL deref in boolean context

	Coverity CID 330466
	[1a11be4d9]

	* plugins/sudoers/sudoreplay.c, src/conversation.c:
	Avoid passing sudo_term_is_raw() -1 for the fd.

	Coverity CID 330472 Coverity CID 330468
	[4833ac0f0]

	* logsrvd/sendlog.c:
	fmt_info_messages: bump info_msgs_size for submitenv
	[3b891c136]

	* NEWS:
	Better log message when rejecting a setid command in intercept mode.
	[77c258290]

	* plugins/sudoers/logging.c, plugins/sudoers/lookup.c,
	plugins/sudoers/match_command.c, plugins/sudoers/parse.h,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Move the check for running setid commands in intercept mode to
	later.

	Checking for setid commands in intercept mode after command matching
	allows us to log a proper error message. Previously, we simply
	ignored setid commands when matching and the only indication of why
	was in the debug logs.
	[886f1414e]

	* plugins/sudoers/timestamp.c:
	timestamp_open: add some debugging
	[45e3c0dd1]

2023-10-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/sia.c:
	sudo_sia_begin_session: add missing struct sudoers_context * arg.
	[3297ffa26]

	* plugins/sudoers/auth/kerb5.c:
	verify_krb_v5_tgt: auth name must be const to match struct
	sudo_auth.
	[747114f33]

	* .circleci/config.yml:
	Disable PAM before enabling Kerberos V.
	[9ef52151e]

	* .circleci/config.yml, docker/debian/latest/Dockerfile,
	docker/debian/testing/Dockerfile, docker/fedora/latest/Dockerfile,
	docker/fedora/rawhide/Dockerfile, docker/ubuntu/devel/Dockerfile,
	docker/ubuntu/latest/Dockerfile, docker/ubuntu/rolling/Dockerfile:
	Add Kerberos V build and test to CI.
	[7ed7b4536]

2023-10-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po:
	Updated translations from translationproject.org
	[145faa3fe]

2023-10-31  Renato Botelho  <garga@FreeBSD.org>

	* plugins/sudoers/auth/kerb5.c:
	Add missing sudoers_context to verify_krb_v5_tgt()

	Commit 244017495421 added ctx variable to log_warningx() call but
	that variable was not declared in that context, breaking the build.
	[75e829b74]

2023-10-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention new Indonesian translation and sudo_logsrvd fd limit change.
	[5f3a6b4f6]

2023-10-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c:
	Set the open file descriptor limit to the maximum allowed value.

	Each connection can require up to 9 descriptors.
	[31bcdec23]

2023-10-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/ro.mo, plugins/sudoers/po/ro.po,
	plugins/sudoers/po/ru.mo, plugins/sudoers/po/ru.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/hr.mo,
	po/hr.po, po/ja.mo, po/ja.po, po/sr.mo, po/sr.po, po/zh_CN.mo,
	po/zh_CN.po:
	Updated translations from translationproject.org
	[bf722e18b]

	* docs/CONTRIBUTORS.md:
	Add Andika Triwidada
	[86f1d52a0]

	* MANIFEST, po/id.mo, po/id.po:
	New Indonesian translation from translationproject.org
	[9a2a882d1]

2023-10-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention GitHub issue #318
	[0fbb17de5]

	* plugins/sudoers/env.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Avoid a double-free in fuzz_policy caused by the early
	env_init(NULL).

	This adds an env_free() function to explicitly free both the old and
	new copies of the environment. It is really only needed by
	fuzz_policy, which calls the policy module multiple times.
	[392ae0f03]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	lib/eventlog/eventlog_free.c, lib/eventlog/parse_json.c,
	logsrvd/iolog_writer.c, logsrvd/sendlog.c, plugins/sudoers/iolog.c,
	plugins/sudoers/log_client.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h:
	Store submitenv in eventlog and pass it to sudo_logsrvd.
	[3bbc7c8f8]

2023-10-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	lib/eventlog/eventlog_free.c, lib/eventlog/parse_json.c,
	lib/iolog/iolog_loginfo.c, logsrvd/iolog_writer.c,
	logsrvd/sendlog.c, plugins/sudoers/iolog.c,
	plugins/sudoers/log_client.c, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoreplay.c:
	struct eventlog: rename argv/env to runargv/runenv.

	This matches the JSON logs.
	[726b646b4]

	* plugins/sudoers/logging.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	struct sudoers_user_context: rename env_vars to env_add
	[c7a61a943]

	* plugins/sudoers/audit.c, plugins/sudoers/logging.c:
	Only log the run environment for commands that are allowed.

	It may not be available otherwise and unless the command is being
	run it has no real meaning.
	[2b87749f8]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c:
	Free the private copy of the environment in sudoers_check_cmnd().

	This reverts 5118eb5797fb, which had the side-effect of the PAM
	session code running with the run environment instead of the
	invoking user's environment. Issue #318
	[077826292]

2023-10-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/iolog_swapids.c:
	iolog_swapids: short circuit if effective ids match iolog ids.
	[8486976b9]

	* lib/iolog/iolog_mkdirs.c, logsrvd/iolog_writer.c:
	logsrvd: display error string in message if iolog_mkpath() fails
	[09a426437]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update .pot files for 1.9.15
	[29f796742]

2023-10-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.in:
	Add example for disabling intercept/log_subcmds for certain
	commands.
	[e3edd7a09]

	* lib/util/mksiglist.c, lib/util/mksigname.c:
	Use NSIG instead of nitems(array) for the loop bound.

	This matches the sudo_sys_siglist[] and sudo_sys_signame[]
	declarations.
	[78edde5ea]

	* plugins/sudoers/tsdump.c:
	tsdump: fix compiler warnings
	[385d506d3]

2023-10-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/regress/logwrap/check_wrap.c, lib/util/mksiglist.c,
	lib/util/mksigname.c, logsrvd/sendlog.c,
	plugins/python/regress/iohelpers.c, plugins/sudoers/tsdump.c:
	Avoid using %zu or %zd with printf() and fprintf().

	This prevents problems on systems where the system printf(3) is not
	C99-compliant. We use our own snprintf() on such systems so that is
	safe.
	[14d514e5a]

	* plugins/sudoers/sudo_printf.c, src/conversation.c:
	Use vsnprintf() instead of vfprintf() for sudo_printf() to avoid
	problems on systems where the system printf(3) is not C99-compliant.
	We use our own snprintf() on such systems.
	[58d6554a7]

	* include/sudo_compat.h, lib/util/getdelim.c, lib/util/realpath.c,
	lib/util/regress/getdelim/getdelim_test.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	strlcpy_expand_host, sudo_getdelim, sudo_realpath: add restrict
	qualifier
	[cf9fc5317]

	* NEWS:
	Fixed GitHub issue #312.
	[29ddd2679]

2023-10-16  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* plugins/sudoers/prompt.c, plugins/sudoers/strlcpy_unesc.c,
	plugins/sudoers/sudoers.h:
	Add restrict to strlcpy and expand_prompt
	[97f805242]

2023-10-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/term.c:
	Better handling of multiple sudo processes modifying terminal
	settings. 1. Lock the terminal before tcgetattr/tcsetattr 2. Don't
	restore terminal settings if changed by another process 3. Don't set
	terminal to raw mode if it is already raw GitHub issue #312
	[fabb6264f]

	* src/exec_pty.c:
	Add a little extra debugging info.
	[2f80865e7]

2023-05-05  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* plugins/sudoers/sudoers_hooks.c:
	Redundant cast removal in sudoers_hooks

	def_sudoers_locale is already a char*
	[b2a44430b]

2023-07-18  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* lib/eventlog/regress/logwrap/check_wrap.c, lib/util/glob.c,
	lib/util/mksiglist.c, lib/util/mksigname.c,
	lib/util/regress/glob/globtest.c, logsrvd/sendlog.c,
	plugins/group_file/plugin_test.c,
	plugins/python/regress/check_python_examples.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/tsdump.c:
	Prefer fputs over fprintf where possible

	fprintf does extra work and meant for formatting strings.
	[e095069d2]

2023-10-15  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* lib/util/regress/hexchar/hexchar_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c, lib/util/sudo_conf.c:
	Swap calloc arguments to use them properly.
	[a4cbd7fe7]

2023-10-13  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* include/sudo_util.h, src/exec_ptrace.h:
	Specify 1U over 1 for bitmaps
	[dd8426f9c]

2023-10-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	ptrace_intercept_execve: make flags unsigned to match
	command_details
	[873e0de07]

2023-10-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/parse.h,
	plugins/sudoers/sudoers.h:
	Fix spelling: resistent -> resistant
	[2d437c793]

2023-10-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .gitignore, .hgignore:
	Add plugins/sudoers/tsgetusershell.c to ignore files.
	[98c2eeafd]

2023-10-02  Alexander F. Rødseth  <alexander.fet.rodseth@schibsted.com>

	* plugins/sudoers/visudo.c:
	Add Orbiton ("o") to the list of editors that supports +lineno
	[07426f8a1]

	* plugins/sudoers/visudo.c:
	Sort the list of editors that supports +lineno
	[356ea96ef]

2023-10-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/mkdefaults:
	Fix compatibility with older versions of (new) awk.

	Do not rely on awk supporting "-f -" to read the program from stdin.
	Avoid using POSIX character classes in regular expressions.
	[9a715b694]

2023-09-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Mention potential problems with log_subcmds and intercept.
	[3141f63b2]

	* src/sudo.c:
	Add more user info to the list of objects to be garbage-collected at
	exit.
	[f6561bc97]

2023-09-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/pyhelpers.c, plugins/python/pyhelpers.h:
	Use long, not long long, when getting/setting numeric attributes.

	We use int or long, not long long, in the Python plugin.
	[344e0daec]

	* lib/eventlog/parse_json.c, lib/iolog/iolog_legacy.c,
	lib/iolog/iolog_timing.c, logsrvd/iolog_writer.c,
	logsrvd/logsrvd_conf.c, logsrvd/logsrvd_journal.c,
	logsrvd/logsrvd_local.c, logsrvd/sendlog.c,
	plugins/sudoers/defaults.c, plugins/sudoers/iolog.c,
	plugins/sudoers/log_client.c:
	Add casts when storing values in a struct timespec.

	Fixes -Wconversion warnings on some 32-bit systems where time_t is
	still 32-bit.
	[1398289fa]

	* plugins/sudoers/file.c:
	sudo_file_open: initialize parser before calling open_sudoers().

	Otherwise, the parser_conf settings in the context passed to
	sudo_file_open() will not be honored by open_sudoers(). Affected
	settings include ignore_perms, sudoers mode, uid and gid.
	[9cc57f493]

2023-09-27  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* lib/util/roundup.c:
	Use U, not UL, for 32-bit platforms

	size_t is an unsigned int on 32-bit platforms, not an unsigned long.
	[b2f8c5666]

2023-09-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match_digest.c:
	digest_matches: actually use fd2 in place of fd as needed.
	[837f400ac]

	* plugins/sudoers/match_digest.c:
	digest_matches: if fd argument is -1, try to open path before
	failing
	[ff2d8464c]

	* plugins/sudoers/regress/cvtsudoers/test31.sh,
	plugins/sudoers/regress/cvtsudoers/test32.sh,
	plugins/sudoers/regress/cvtsudoers/test35.sh,
	plugins/sudoers/regress/cvtsudoers/test36.sh,
	plugins/sudoers/regress/cvtsudoers/test39.sh,
	plugins/sudoers/regress/testsudoers/test20.sh,
	plugins/sudoers/regress/testsudoers/test21.sh,
	plugins/sudoers/regress/testsudoers/test22.sh,
	plugins/sudoers/regress/testsudoers/test23.sh,
	plugins/sudoers/regress/testsudoers/test24.sh,
	plugins/sudoers/regress/testsudoers/test25.sh,
	plugins/sudoers/regress/testsudoers/test26.sh,
	plugins/sudoers/regress/testsudoers/test27.sh,
	plugins/sudoers/regress/testsudoers/test28.sh,
	plugins/sudoers/regress/testsudoers/test29.sh,
	plugins/sudoers/regress/testsudoers/test30.sh,
	plugins/sudoers/regress/testsudoers/test31.sh:
	Add missing execute bit on some test scripts.
	[4d4279d0c]

2023-09-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.h:
	max_groups in sudoers_plugin_settings is no longer used.
	[29feb41da]

	* include/sudo_conf.h, include/sudo_debug.h, include/sudo_event.h,
	include/sudo_eventlog.h, include/sudo_fatal.h, include/sudo_json.h,
	include/sudo_util.h, lib/eventlog/eventlog.c,
	lib/eventlog/eventlog_conf.c, lib/eventlog/eventlog_free.c,
	lib/eventlog/logwrap.c, lib/eventlog/parse_json.c,
	lib/eventlog/parse_json.h,
	lib/eventlog/regress/eventlog_store/store_json_test.c,
	lib/eventlog/regress/eventlog_store/store_sudo_test.c,
	lib/eventlog/regress/logwrap/check_wrap.c,
	lib/eventlog/regress/parse_json/check_parse_json.c,
	lib/fuzzstub/fuzzstub.c, lib/iolog/host_port.c,
	lib/iolog/hostcheck.c, lib/iolog/iolog_clearerr.c,
	lib/iolog/iolog_close.c, lib/iolog/iolog_conf.c,
	lib/iolog/iolog_eof.c, lib/iolog/iolog_filter.c,
	lib/iolog/iolog_flush.c, lib/iolog/iolog_gets.c,
	lib/iolog/iolog_json.c, lib/iolog/iolog_legacy.c,
	lib/iolog/iolog_loginfo.c, lib/iolog/iolog_mkdirs.c,
	lib/iolog/iolog_mkdtemp.c, lib/iolog/iolog_mkpath.c,
	lib/iolog/iolog_nextid.c, lib/iolog/iolog_open.c,
	lib/iolog/iolog_openat.c, lib/iolog/iolog_path.c,
	lib/iolog/iolog_read.c, lib/iolog/iolog_seek.c,
	lib/iolog/iolog_swapids.c, lib/iolog/iolog_timing.c,
	lib/iolog/iolog_util.c, lib/iolog/iolog_write.c,
	lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c,
	lib/iolog/regress/host_port/host_port_test.c,
	lib/iolog/regress/iolog_filter/check_iolog_filter.c,
	lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/iolog/regress/iolog_timing/check_iolog_timing.c,
	lib/logsrv/log_server.pb-c.c, lib/protobuf-c/protobuf-c.c,
	lib/ssl_compat/ssl_compat.c, lib/util/aix.c, lib/util/arc4random.c,
	lib/util/arc4random_buf.c, lib/util/arc4random_uniform.c,
	lib/util/basename.c, lib/util/cfmakeraw.c, lib/util/closefrom.c,
	lib/util/digest.c, lib/util/digest_gcrypt.c,
	lib/util/digest_openssl.c, lib/util/dup3.c, lib/util/event.c,
	lib/util/event_poll.c, lib/util/event_select.c,
	lib/util/explicit_bzero.c, lib/util/fatal.c, lib/util/fchmodat.c,
	lib/util/fchownat.c, lib/util/fnmatch.c, lib/util/freezero.c,
	lib/util/fstatat.c, lib/util/getaddrinfo.c, lib/util/getdelim.c,
	lib/util/getentropy.c, lib/util/getgrouplist.c,
	lib/util/gethostname.c, lib/util/getopt_long.c, lib/util/gettime.c,
	lib/util/getusershell.c, lib/util/gidlist.c, lib/util/glob.c,
	lib/util/gmtime_r.c, lib/util/hexchar.c, lib/util/inet_ntop.c,
	lib/util/inet_pton.c, lib/util/isblank.c, lib/util/json.c,
	lib/util/key_val.c, lib/util/lbuf.c, lib/util/localtime_r.c,
	lib/util/locking.c, lib/util/logfac.c, lib/util/logpri.c,
	lib/util/memrchr.c, lib/util/mkdir_parents.c, lib/util/mkdirat.c,
	lib/util/mksiglist.c, lib/util/mksigname.c, lib/util/mktemp.c,
	lib/util/mmap_alloc.c, lib/util/multiarch.c, lib/util/nanosleep.c,
	lib/util/openat.c, lib/util/parseln.c, lib/util/pipe2.c,
	lib/util/pread.c, lib/util/progname.c, lib/util/pw_dup.c,
	lib/util/pwrite.c, lib/util/rcstr.c, lib/util/reallocarray.c,
	lib/util/regex.c, lib/util/regress/closefrom/closefrom_test.c,
	lib/util/regress/digest/digest_test.c,
	lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/fuzz/fuzz_sudo_conf.c,
	lib/util/regress/getdelim/getdelim_test.c,
	lib/util/regress/getgrouplist/getgids.c,
	lib/util/regress/getgrouplist/getgrouplist_test.c,
	lib/util/regress/glob/globtest.c,
	lib/util/regress/hexchar/hexchar_test.c,
	lib/util/regress/json/json_test.c,
	lib/util/regress/mktemp/mktemp_test.c,
	lib/util/regress/multiarch/multiarch_test.c,
	lib/util/regress/open_parent_dir/open_parent_dir_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/regex/regex_test.c,
	lib/util/regress/strsig/strsig_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/strtofoo/strtobool_test.c,
	lib/util/regress/strtofoo/strtoid_test.c,
	lib/util/regress/strtofoo/strtomode_test.c,
	lib/util/regress/strtofoo/strtonum_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c,
	lib/util/regress/uuid/uuid_test.c, lib/util/roundup.c,
	lib/util/secure_path.c, lib/util/setgroups.c, lib/util/sha2.c,
	lib/util/sig2str.c, lib/util/snprintf.c, lib/util/str2sig.c,
	lib/util/strlcat.c, lib/util/strlcpy.c, lib/util/strndup.c,
	lib/util/strnlen.c, lib/util/strsignal.c, lib/util/strsplit.c,
	lib/util/strtobool.c, lib/util/strtoid.c, lib/util/strtomode.c,
	lib/util/strtonum.c, lib/util/sudo_conf.c, lib/util/sudo_debug.c,
	lib/util/sudo_dso.c, lib/util/sys_siglist.h, lib/util/sys_signame.h,
	lib/util/term.c, lib/util/timegm.c, lib/util/ttyname_dev.c,
	lib/util/ttysize.c, lib/util/unlinkat.c, lib/util/utimens.c,
	lib/util/uuid.c, logsrvd/iolog_writer.c, logsrvd/logsrv_util.c,
	logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/logsrvd_journal.c, logsrvd/logsrvd_local.c,
	logsrvd/logsrvd_queue.c, logsrvd/logsrvd_relay.c,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c,
	logsrvd/regress/logsrvd_conf/logsrvd_conf_test.c, logsrvd/sendlog.c,
	logsrvd/sendlog.h, logsrvd/tls_client.c, logsrvd/tls_common.h,
	logsrvd/tls_init.c, plugins/audit_json/audit_json.c,
	plugins/group_file/getgrent.c, plugins/group_file/group_file.c,
	plugins/group_file/plugin_test.c, plugins/python/pyhelpers.c,
	plugins/python/pyhelpers.h, plugins/python/python_plugin_common.c,
	plugins/python/regress/check_python_examples.c,
	plugins/python/regress/iohelpers.h,
	plugins/python/regress/testhelpers.h,
	plugins/python/sudo_python_debug.c,
	plugins/python/sudo_python_debug.h, plugins/sample/sample_plugin.c,
	plugins/sample_approval/sample_approval.c, plugins/sudoers/alias.c,
	plugins/sudoers/audit.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/b64_decode.c, plugins/sudoers/b64_encode.c,
	plugins/sudoers/boottime.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/canon_path.c, plugins/sudoers/check.c,
	plugins/sudoers/check_aliases.c, plugins/sudoers/check_util.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_csv.c, plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_merge.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/digestname.c,
	plugins/sudoers/display.c, plugins/sudoers/editor.c,
	plugins/sudoers/env.c, plugins/sudoers/env_pattern.c,
	plugins/sudoers/exptilde.c, plugins/sudoers/file.c,
	plugins/sudoers/filedigest.c, plugins/sudoers/find_path.c,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/fmtsudoers_cvt.c,
	plugins/sudoers/gc.c, plugins/sudoers/gentime.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/getspwuid.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/group_plugin.c, plugins/sudoers/insults.h,
	plugins/sudoers/interfaces.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_path_escapes.c, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_conf.c, plugins/sudoers/ldap_innetgr.c,
	plugins/sudoers/ldap_util.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/locale.c, plugins/sudoers/log_client.c,
	plugins/sudoers/log_client.h, plugins/sudoers/logging.c,
	plugins/sudoers/lookup.c, plugins/sudoers/match.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/match_command.c,
	plugins/sudoers/match_digest.c, plugins/sudoers/parse.h,
	plugins/sudoers/parse_ldif.c, plugins/sudoers/parser_warnx.c,
	plugins/sudoers/pivot.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/redblack.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/editor/check_editor.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/exptilde/check_exptilde.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/serialize_list/check_serialize_list.c,
	plugins/sudoers/regress/starttime/check_starttime.c,
	plugins/sudoers/regress/unescape/check_unesc.c,
	plugins/sudoers/resolve_cmnd.c, plugins/sudoers/serialize_list.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sethost.c,
	plugins/sudoers/solaris_audit.c, plugins/sudoers/sssd.c,
	plugins/sudoers/starttime.c, plugins/sudoers/strlcpy_unesc.c,
	plugins/sudoers/strlist.c, plugins/sudoers/strvec_join.c,
	plugins/sudoers/stubs.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudo_printf.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers_cb.c,
	plugins/sudoers/sudoers_ctx_free.c, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/sudoers_debug.h, plugins/sudoers/sudoers_hooks.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/testsudoers_pwutil.c,
	plugins/sudoers/testsudoers_pwutil.h, plugins/sudoers/timeout.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/timestr.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/tsdump.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/unesc_str.c,
	plugins/sudoers/visudo.c, plugins/sudoers/visudo_cb.c,
	plugins/system_group/system_group.c, src/apparmor.c,
	src/conversation.c, src/copy_file.c, src/edit_open.c,
	src/env_hooks.c, src/exec.c, src/exec_common.c,
	src/exec_intercept.c, src/exec_iolog.c, src/exec_monitor.c,
	src/exec_nopty.c, src/exec_preload.c, src/exec_ptrace.c,
	src/exec_pty.c, src/get_pty.c, src/hooks.c, src/intercept.pb-c.c,
	src/limits.c, src/load_plugins.c, src/openbsd.c, src/parse_args.c,
	src/preload.c, src/preserve_fds.c,
	src/regress/net_ifs/check_net_ifs.c,
	src/regress/noexec/check_noexec.c,
	src/regress/ttyname/check_ttyname.c, src/selinux.c, src/sesh.c,
	src/signal.c, src/solaris.c, src/sudo.c, src/sudo.h,
	src/sudo_edit.c, src/sudo_intercept.c, src/sudo_intercept_common.c,
	src/sudo_noexec.c, src/suspend_parent.c, src/tgetpass.c,
	src/ttyname.c, src/utmp.c:
	Use #include <foo.h> instead of #include "foo.h" in most cases.

	We rely on the include path to find many of these headers. It
	especially doesn't make sense to use #include "foo.h" for headers in
	the top-level include directory.
	[e343e0754]

	* .circleci/config.yml:
	Bump xcode to 14.2.0
	[884b02596]

2023-09-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/mkdefaults:
	Add support for "plugin" defaults type.
	[1c13b8a62]

	* plugins/sudoers/mkdefaults:
	Support multiple input files.
	[c1708f0cf]

2023-09-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_monitor.c, src/exec_pty.c:
	No need to loop reading from/writing to a blocking socketpair.

	This removes some infinite loops that can cause static analyzer
	warnings. The fds are not in non-blocking mode and we use
	restartable system calls so there is no need to loop.
	[171abbe11]

	* plugins/sudoers/check.c:
	check_user: fix return value for intercept mode

	Also use early return on error to quiet a PVS-Studio warning.
	[1c7d757b7]

2023-09-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	Set ec->term_raw to false even if sudo_term_restore() fails.

	Either the fd is not a terminal or we don't have the controlling
	terminal. Either way, we can't know the current status of the
	terminal and will need to set to raw mode again (if possible). Also
	make sure to set ec->term_raw to false if sudo_term_raw() fails.
	[988d7f60f]

2023-09-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* pathnames.h.in, plugins/sudoers/env.c, plugins/sudoers/sudoers.c:
	Only define _PATH_ENVIRONMENT on systems where we use
	/etc/environment.
	[f2d267bfb]

	* config.h.in, configure, configure.ac:
	Sudo assumes that a uid_t can be cast to unsigned int without
	problems.

	Add a configure check and error out if sizeof(uid_t) > 4.
	[0c6745692]

	* docs/UPGRADE.md:
	Mention the time stamp and lecture file name changes in 1.9.15.
	[f4acc4366]

2023-08-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac:
	sudo 1.9.15
	[37ee2946a]

2023-09-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/iolog_path_escapes.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Replace '/' with '_' in paths using the user, group or host name.
	[d9da92951]

2023-09-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	docs/sudoers_timestamp.man.in, docs/sudoers_timestamp.mdoc.in,
	plugins/sudoers/check.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/timestamp.h:
	Use the user-ID instead of user-name for the timestamp and lecture
	file.

	This avoids problems if the user name itself contains a path
	separator.
	[7363ad7b3]

2023-09-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, m4/sudo.m4,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/env.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/policy.c, src/sudo.c, src/sudo_edit.c:
	Replace MAX_UID_T_LEN with calls to STRLEN_MAX_UNSIGNED.
	[94b80e3ad]

	* include/sudo_util.h, lib/eventlog/eventlog.c,
	lib/iolog/iolog_timing.c, lib/util/json.c, lib/util/lbuf.c,
	lib/util/sudo_debug.c, plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/display.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/logging.c, src/exec_preload.c, src/limits.c:
	Add macros to determine the length of an integer type in string
	form.

	Adapted from answer #6 in:
	https://stackoverflow.com/questions/10536207/ansi-c-maximum-number-o
	f-characters-printing-a-decimal-int
	[d53bbb54b]

2023-09-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/visudo.c:
	visudo: use verbose and strict in parser_conf

	Where the sudoers_context is available we can use the values of
	verbose and strict instead of passing around quiet and strict flags.
	[221a10340]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/find_path.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/resolve_cmnd.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Add resolve_cmnd(), a wrapper around find_path().

	This is a convenience function that sets PERM_RUNAS and calls
	find_path(). If the command is not found it will retry with
	PERM_USER instead.
	[6e75f2311]

	* plugins/sudoers/sudoers.h, plugins/sudoers/visudo.c:
	Promote strict field in sudoers_parser_config from bool to int.

	This will be used by visudo to indicate when "visudo -s" is run.
	[8fcb21b5c]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/check_aliases.c, plugins/sudoers/defaults.c,
	plugins/sudoers/parse.h, plugins/sudoers/parser_warnx.c:
	Add parser_warnx() and parser_vwarnx() that displays file:line:col

	Used by defaults.c and check_aliases.c.
	[e28dc0f27]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_cb.c:
	Add a separate file for visudo callbacks.
	[3a7731437]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoers_cb.c:
	Rename callbacks.c -> sudoers_cb.c.
	[c277e55f4]

	* src/exec_monitor.c:
	Wait on a socketpair for the parent to grant child the controlling
	tty.

	This upgrades the error pipe to a bi-directional socketpair that the
	parent will write to after it has granted the child process the
	controlling terminal. That fixes an issue where the child could end
	up in a tight CPU loop waiting on the parent which may not be
	scheduled immediately.
	[0cb3e3344]

2023-09-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.h:
	Undefine AUTH_{SUCCESS,FAILURE,ERROR} before defining them.

	Quiets a warning on AIX where usersec.h defines AUTH_SUCCESS and
	AUTH_FAILURE. We avoided this problem in the past because the old
	values for AUTH_SUCCESS and AUTH_FAILURE match what AIX defines.
	[a127ddf6d]

	* config.h.in, configure, configure.ac, lib/util/term.c, m4/sudo.m4,
	src/exec_pty.c:
	Only cast TIOCSWINSZ to int on systems that might require it (AIX).

	Otherwise we end up with a -Wconversion warning on systems where the
	ioctl() request argument is unsigned long.
	[49c7c1f4d]

	* plugins/sudoers/display.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Promote verbose flag to int for display_privs and display_cmnd.

	A negative verbosity will prevent non-error output from being
	displayed.
	[51d6b0f42]

2023-09-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/stubs.c:
	No need to include cvtsudoers.h here.
	[a9ee97580]

	* plugins/sudoers/match_command.c, plugins/sudoers/pivot.c,
	plugins/sudoers/pivot.h, plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/stubs.c, plugins/sudoers/testsudoers.c:
	Remove pivot_get_root() and pivot_get_cwd().

	They are unnecessary since struct sudoers_pivot is not opaque. The
	implementation details are private to match_command.c.
	[0011333f8]

	* plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/parser/check_fill.c:
	Quiet some -Wconversion warnings in the tests.
	[2aae36f34]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/editor.c, plugins/sudoers/find_path.c,
	plugins/sudoers/regress/editor/check_editor.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.h:
	Make flag in union sudo_defs_val bool to match how it is used.

	Adjust find_path()'s ignore_dot function argument to match.
	[b8f2680cf]

	* plugins/sudoers/audit.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/bsm_audit.h, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h:
	Parse euid and egid from sudo front-end.

	These are needed by bsm_audit.c.
	[a9801cc99]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/timestamp.c:
	Parse pid and ppid from sudo front-end.

	We can now use the stored ppid in ts_init_key().
	[38ddbb14f]

	* plugins/sudoers/match_command.c, plugins/sudoers/pivot.c,
	plugins/sudoers/pivot.h, plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/stubs.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c:
	Use struct sudoers_pivot instead of defining sudoers_pivot_t.

	We want to pass around a pointer, not the struct itself.
	[34990c0e0]

2023-09-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/pivot.h:
	Don't expose the implementation of the pivot_root state.
	[15b3d786d]

	* plugins/sudoers/match_command.c, plugins/sudoers/pivot.c,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c, plugins/sudoers/stubs.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	Don't expose the implementation of the pivot_root state.
	[0b52ffd1a]

	* src/exec_ptrace.c:
	Only call ptrace_verify_post_exec() for intercept, not log_subcmds.

	This fixes a logic goof introduced in sudo 1.9.14.
	[4117ad146]

2023-09-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/Makefile.in:
	tsgetusershell.c: don't rely on GNU sed extensions.
	[c0553cd38]

	* plugins/sudoers/testsudoers.c:
	testsudoers: add -S option to specify /etc/shells path.
	[0a8586928]

	* Makefile.in, lib/util/getusershell.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/tsgetgrpw.h:
	Add testsudoers_setshellfile() and use it in testsudoers.
	[034b2f3bd]

	* plugins/sudoers/Makefile.in:
	regen
	[62b92c7fb]

	* lib/util/Makefile.in, lib/util/getusershell.c:
	Remove unnecessary sudo_gettext.h include and add missing const.
	[166ef55aa]

2023-09-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/check.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/timestamp.h:
	Return AUTH_* flags from check_user() instead of 1/0/-1.
	[c54bdd799]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil.h, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/testsudoers_pwutil.h:
	Wrap valid_shell and add to sudo_pwutil_set_backend().

	This will make it possible to support a different getusershell()
	implementation for testsudoers in the future.
	[2fdb4db33]

	* plugins/sudoers/check_util.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil.h, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	Move check_user_shell() to pwutil.c as user_shell_valid()

	This will make it possible to support a different backend which may
	be used by testsudoers in the future.
	[d18ee8e0e]

	* plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/check.c,
	plugins/sudoers/timestamp.h:
	Merge check_user() and check_user_interactive(), move getpass
	callbacks.

	The getpass callbacks are now defined in sudo_auth.c, which
	implements auth_getpass(). As a result, struct getpass_closure is
	now public and defined in timestamp.h.
	[28a13501d]

	* plugins/sudoers/Makefile.in, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/check.c,
	plugins/sudoers/timestamp.h:
	Make most sudo_auth functions return AUTH_{SUCCESS,FAILURE,FATAL}.
	[0495afac5]

	* plugins/sudoers/ldap.c, plugins/sudoers/lookup.c,
	plugins/sudoers/match.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c,
	plugins/sudoers/parse.h,
	plugins/sudoers/regress/parser/check_addr.c, plugins/sudoers/sssd.c:
	Make all match functions return ALLOW/DENY not true/false.
	[2ef90231a]

	* plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/lookup.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.h:
	Try to make sudo less vulnerable to ROWHAMMER attacks.

	We now use ROWHAMMER-resistent values for ALLOW, DENY, AUTH_SUCCESS,
	AUTH_FAILURE, AUTH_ERROR and AUTH_NONINTERACTIVE. In addition, we
	explicitly test for expected values instead of using a negated test
	against an error value. In the parser match functions this means
	explicitly checking for ALLOW or DENY instead of accepting anything
	that is not set to UNSPEC.

	Thanks to Andrew J. Adiletta, M. Caner Tol, Yarkin Doroz, and Berk
	Sunar, all affiliated with the Vernam Applied Cryptography and
	Cybersecurity Lab at Worcester Polytechnic Institute, for the
	report. Paper preprint: https://arxiv.org/abs/2309.02545
	[7873f8334]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l:
	Honor ignore_perms plugin argument for @include and @includedir.
	[525803db2]

2023-09-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/check.c:
	Don't set on_suspend and on_resume twice.
	[499121229]

2023-09-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/policy.c, plugins/sudoers/sethost.c,
	plugins/sudoers/stubs.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	sudoers_sethost: refactor code to set host names in sudoers_context.

	The sudoers_sethost() function can be shared by the sudoers plugin,
	visudo, cvtsudoers and testsudoers.
	[956de5cbb]

2023-09-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	sudoers_trace_print: use debug_decl_vars instead of doing it by
	hand.
	[0c9ca88f5]

	* include/sudo_compat.h:
	sudo_realpath() returns char *, not void *.
	[080e08b0f]

2023-08-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Only print "no valid sudoers sources found, quitting" for multiple
	sources.

	If there is only a single source (usually the sudoers file), the
	open function provide enough of an error message. Printing two error
	messages is just confusing.
	[d898d073b]

2023-08-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/pwutil.c:
	user_in_group: the user's group vector already includes the primary
	group.

	There's no need to look up the name of user's primary group
	(pw_gid), we always include the primary group ID in the group
	vector.
	[f5b3f9909]

2023-08-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.h, plugins/sudoers/sudoers_debug.h:
	Move sudoers_debug.c prototypes to sudoers_debug.h.
	[05f823df2]

	* plugins/sudoers/sudoers.h:
	sudo_conv, sudo_printf and plugin_event_alloc live in policy.c.
	[35a7283dd]

	* include/sudo_iolog.h, plugins/sudoers/defaults.c:
	Move default value for "iolog_file" to sudo_iolog.h.
	[68a9e9186]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/callbacks.c, plugins/sudoers/check.c,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/regress/starttime/check_starttime.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/starttime.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/timestamp.c, plugins/sudoers/timestamp.h,
	plugins/sudoers/tsdump.c:
	Rename check.h -> timestamp.h and add remaining timestamp.c
	prototypes.
	[75209e271]

	* plugins/sudoers/auth/API, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/auth/sudo_auth.h:
	Restore AUTH_INTR support, it is still needed.

	We still need AUTH_INTR to know when to break out of the password
	prompt loop.
	[8cd0d74fb]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Add ignore_perms plugin argument to skip the sudoers file security
	checks.

	This is not intended to be used in a production environment.
	[3c05e748a]

2023-08-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, m4/sudo.m4:
	Fix test for unsetenv() returning void with clang 16.

	Clang has dropped support for K&R function definitions so rewrite
	the test to require a unsetenv() prototype in stdlib.h. Fixes GitHub
	issue #302.
	[1eb4392e1]

	* plugins/sudoers/defaults.c:
	Disable fast_glob and fdexec if SUDOERS_NAME_MATCH is defined.

	We use SUDOERS_NAME_MATCH for fuzzing when we want to avoid
	searching the file system for commands.
	[07003d902]

2023-08-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/API, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h:
	Rename AUTH_FATAL -> AUTH_ERROR.
	[c858acc48]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/match.c:
	Do not rely on the definition of ALLOW/DENY being true/false.

	We now explicitly check for ALLOW and DENY when checking return
	values and negating values.
	[cf00568d8]

	* plugins/sudoers/auth/API, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/auth/sudo_auth.h:
	Replace AUTH_INTR return with AUTH_FAILURE.

	The two were treated identically by the caller.
	[bae716642]

2023-08-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/audit.c:
	Call log_allowed() even when "log_allowed" is disabled.

	Otherwise, sudo will not send mail if "mail_always" or
	"mail_all_cmnds" is set.
	[b42cab112]

	* plugins/sudoers/defaults.c:
	Don't set defaults values for features that are not present.

	This means that lecture_status_dir and timestampdir are only set if
	_PATH_SUDO_LECTURE_DIR and _PATH_SUDO_TIMEDIR respectively are set.
	Also, the log server defaults are only set when SUDOERS_LOG_CLIENT
	is defined.
	[4cdee2e31]

	* plugins/sudoers/callbacks.c:
	Only set I/O logging callbacks if SESSID_MAX is defined.
	[993ee338d]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Move tty_present() into policy.c as sudoers_tty_present().

	This function is policy-dependent. For the modern sudo front-end it
	will simply check tcpgid and/or ttypath.
	[30fc28829]

2023-08-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/event_poll.c, lib/util/getentropy.c,
	plugins/sudoers/ldap.c:
	Silence a few remaining -Wconversion warnings.
	[df969d30b]

	* plugins/sudoers/sudoers.c:
	No need to inclue auth/sudo_auth.h
	[522ac12f2]

	* configure, m4/sudo.m4:
	--enable-pvs-studio: check for license file in the default location
	[18aba4984]

2023-08-23  ken  <41325712+rtczza@users.noreply.github.com>

	* plugins/sudoers/timestamp.c:
	modify ret type from int to bool (#298)

	* modify ret type from int to bool

	* change debug_return_int to debug_return_bool

	* modify ret type
	[60e584201]

2023-08-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/callbacks.c, plugins/sudoers/check.h,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/timestamp.c:
	Move timestampowner sudoers callback to timestamp.c.
	[091051125]

	* plugins/sudoers/set_perms.c:
	Quiet a PVS-Studio false positive about possible NULL dereference.

	set_perms() is only called with a NULL ctx for PERM_ROOT,
	PERM_SUDOERS and PERM_TIMESTAMP.
	[593998cb6]

2023-08-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/set_perms.c:
	set_perms: ctx may be NULL for PERM_ROOT, PERM_SUDOERS,
	PERM_TIMESTAMP.
	[821799d1f]

	* plugins/sudoers/audit.c, plugins/sudoers/iolog_path_escapes.c,
	plugins/sudoers/logging.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoers_ctx_free.c:
	Move a few fields from sudoers_user_contect to sudoers_context.

	They are not really specific to the user or user-specified.
	[c7157ce0b]

	* plugins/sudoers/policy.c:
	Remove dead code dealing with unknown user and MODE_INVALIDATE.

	The timestamp unlink code does not need the user's struct passwd
	pointer, just the user name (which we already have). Found by
	PVS-Studio.
	[9aaba80a0]

	* lib/iolog/iolog_read.c, lib/iolog/iolog_write.c,
	lib/util/sudo_dso.c:
	Suppress some other PVS-Studio false positives.
	[df730dec5]

	* plugins/sudoers/set_perms.c:
	Quiet a PVS-Studio false positive about possible NULL dereference.

	set_perms() is only called with a NULL ctx for PERM_ROOT,
	PERM_SUDOERS and PERM_TIMESTAMP.
	[49cd7463c]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.h:
	MODE_KILL is never set in the sudoers plugin, remove it.
	[816120544]

	* plugins/sample/sample_plugin.c, plugins/sudoers/editor.c,
	plugins/sudoers/group_plugin.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoreplay.c, src/exec_ptrace.c:
	Cast int to size_t before adding instead of casting the result.

	Quiets PVS-Studio warning V1028.
	[c6987aa26]

	* plugins/sudoers/audit.c:
	Fix log_server_accept() definition for --disable-log-client builds.
	[9f05bfd29]

	* src/exec_pty.c:
	Use a global static struct exec_closure for the cleanup hook.

	This is safer than storing a pointer to a stack variable in the
	cleanup function since we don't need to worry about it ever going
	out of scope. Quiets a clang 15 analyzer warning.
	[e933fc7ba]

	* plugins/sudoers/logging.c:
	Plug memory leak if journal_parse_error() fails.

	Found by the clang 15 analyzer.
	[6fa478653]

	* lib/eventlog/eventlog.c, plugins/sudoers/testsudoers.c:
	Eliminate some clang analyzer false positives.
	[46e6955ba]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Move sudoedit_nfiles into struct sudoers_context.
	[ff5914d7f]

	* plugins/sudoers/audit.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/check.c, plugins/sudoers/env.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/lookup.c, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	Move sudo_mode into struct sudoers_context.
	[3473bf936]

	* plugins/sudoers/audit.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers_ctx_free.c:
	Move NewArgv, NewArgc and saved_argv into struct sudoers_context.
	[837da1bef]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/file.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Add struct sudoers_conf to struct sudoers_plugin_context.

	There's now no need to pass this directly to init_parser() since we
	already pass in a pointer to a sudoers_context struct.
	[87571dab0]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/sudo_ldap_conf.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	Store policy paths in struct sudoers_context.

	This removes the need for the getters in policy.c.
	[9e53d903e]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/stubs.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers_ctx_free.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Add sudoers_ctx_free() and use it for freeing struct sudoers
	context.

	This replaces sudoers_user_ctx_free() and sudoers_runas_ctx_free().
	[bbaf29391]

	* plugins/sudoers/audit.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/callbacks.c,
	plugins/sudoers/check.c, plugins/sudoers/check.h,
	plugins/sudoers/check_aliases.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers.h, plugins/sudoers/cvtsudoers_pwutil.c,
	plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/display.c, plugins/sudoers/env.c,
	plugins/sudoers/file.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path_escapes.c,
	plugins/sudoers/ldap.c, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/lookup.c, plugins/sudoers/match.c,
	plugins/sudoers/match_command.c, plugins/sudoers/parse.h,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil.h,
	plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/regress/exptilde/check_exptilde.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/solaris_audit.c,
	plugins/sudoers/solaris_audit.h, plugins/sudoers/sssd.c,
	plugins/sudoers/stubs.c, plugins/sudoers/sudo_nss.h,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/testsudoers_pwutil.h,
	plugins/sudoers/timestamp.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.h, plugins/sudoers/toke.l,
	plugins/sudoers/visudo.c:
	Make struct sudoers_context private to sudoers.c.

	We now pass a pointer to the context where necessary. There are a
	few cases where we need to request the context from sudoers via
	sudoers_get_context() for the plugin API functions. If the plugin
	API was able to pass around a closure pointer this would not be
	necessary.
	[244017495]

2023-08-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/audit.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/callbacks.c,
	plugins/sudoers/check.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/defaults.c, plugins/sudoers/display.c,
	plugins/sudoers/env.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/iolog_path_escapes.c, plugins/sudoers/ldap.c,
	plugins/sudoers/logging.c, plugins/sudoers/lookup.c,
	plugins/sudoers/match.c, plugins/sudoers/match_command.c,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/regress/exptilde/check_exptilde.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/solaris_audit.c,
	plugins/sudoers/sssd.c, plugins/sudoers/stubs.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/visudo.c:
	Add a sudoers_context struct that embeds the user and runas structs.
	[2d2529a15]

2023-08-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	free_parse_tree: clear the nss pointer when freeing.
	[1b9fb405a]

	* plugins/sudoers/parse_ldif.c:
	sudoers_parse_ldif: do not free parse_tree before using

	The user is expected to pass in an initialized and empty parse_tree
	so there is no need to free it first.
	[a712af5a2]

	* lib/zlib/adler32.c, lib/zlib/compress.c, lib/zlib/crc32.c,
	lib/zlib/deflate.c, lib/zlib/deflate.h, lib/zlib/gzclose.c,
	lib/zlib/gzguts.h, lib/zlib/gzlib.c, lib/zlib/gzread.c,
	lib/zlib/gzwrite.c, lib/zlib/infback.c, lib/zlib/inffast.c,
	lib/zlib/inffast.h, lib/zlib/inflate.c, lib/zlib/inftrees.c,
	lib/zlib/inftrees.h, lib/zlib/trees.c, lib/zlib/uncompr.c,
	lib/zlib/zconf.h.in, lib/zlib/zlib.h, lib/zlib/zutil.c,
	lib/zlib/zutil.h:
	Update embedded copy of zlib to version 1.3.
	[902453a82]

2023-08-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/pwutil_impl.c:
	We still need to clamp ngids if getgrouplist2() returns -1.

	Otherwise, we end up with ngids set to the number of gids the user
	belongs to which may be larger than what the front-end specified.
	Fixes a regression introduced in the last commit here.
	[cb01b90a5]

2023-08-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c:
	No need to clear errno when using sudo_strtonum().
	[f17aebe6a]

	* plugins/sudoers/policy.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/sudoers.h:
	Move max_groups out of sudoers_user_context and into pwutil.c.

	It is only used by the local password pwutil implementation.
	[20baa3900]

	* plugins/sudoers/check_util.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	Pass in directory to check_user_runchroot() and check_user_runcwd().

	This way we do not rely on the runas_ctx global.
	[737354390]

	* plugins/sudoers/regress/exptilde/check_exptilde.c:
	check_exptilde: don't need runas_ctx here
	[2e8648ea0]

	* plugins/sudoers/match.c, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c:
	Move RUNAS_{USER,GROUP}_SPECIFIED flags into struct
	sudoers_runas_context.
	[08afb5183]

2023-08-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/group_plugin.c, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c:
	Make path_plugin_dir private to policy.c and add getter.
	[392f0d61c]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/logging.c, plugins/sudoers/lookup.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Move list_pw global into struct runas_context.
	[217b7b46f]

2023-08-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/callbacks.c,
	plugins/sudoers/check.c, plugins/sudoers/check_util.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/display.c,
	plugins/sudoers/env.c, plugins/sudoers/iolog_path_escapes.c,
	plugins/sudoers/ldap.c, plugins/sudoers/logging.c,
	plugins/sudoers/lookup.c, plugins/sudoers/match.c,
	plugins/sudoers/match_command.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c,
	plugins/sudoers/regress/exptilde/check_exptilde.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/stubs.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	Add struct sudoers_runas_context and move runas-specific bits into
	it.
	[a321e6ced]

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/callbacks.c, plugins/sudoers/check.c,
	plugins/sudoers/check_util.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/display.c, plugins/sudoers/env.c,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/iolog_path_escapes.c,
	plugins/sudoers/ldap.c, plugins/sudoers/logging.c,
	plugins/sudoers/lookup.c, plugins/sudoers/match.c,
	plugins/sudoers/match_command.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/solaris_audit.c,
	plugins/sudoers/sssd.c, plugins/sudoers/stubs.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/visudo.c:
	Expand the user_* (and more) macros to user_ctx.foo.
	[d8b28dad9]

	* plugins/sudoers/check.h,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/timestamp.c:
	Pass explicit struct passwd * to create_admin_success_flag().
	[930ca0025]

	* plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Make sudoers_user_ctx_free() private to sudoers.c
	[30c49288f]

	* plugins/sudoers/audit.c, plugins/sudoers/callbacks.c,
	plugins/sudoers/check.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/defaults.c, plugins/sudoers/display.c,
	plugins/sudoers/logging.c, plugins/sudoers/lookup.c,
	plugins/sudoers/match.c, plugins/sudoers/policy.c,
	plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/regress/exptilde/check_exptilde.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/visudo.c:
	Rename struct sudo_user -> struct sudo_user_context.

	Also rename the sudo_user global to user_ctx.
	[bd8cccb5d]

	* src/exec.c:
	fd_matches_tty: only zero out fd_sb if fstat(2) fails.

	We need to preserve the contents of the struct stat if the fd is
	some other type so the check for piped output works correctly. Bug
	#1057
	[d148e7d8f]

2023-08-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/callbacks.c:
	Leave the I/O log callbacks in iolog.c

	Otherwise, check_iolog_plugin will not link.
	[6f659e2de]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/callbacks.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c:
	Move sudoers parser callbacks to callbacks.c.
	[603148e7f]

2023-08-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/sendlog.c:
	Bump info_msgs_size to make room for the source.
	[cc15f847a]

	* .circleci/config.yml:
	Update Xcode version from 13.2.1 to 13.4.1.
	[ee5cab977]

	* include/sudo_event.h, lib/util/event.c, lib/util/event_poll.c,
	lib/util/event_select.c, lib/util/util.exp.in:
	Use int, not short for events in the event API.

	This fixes some -Wconversion warnings and fixes an inconsistency
	between the libsudo_util event API and the plugin event API. The
	actual struct internals still use shorts to avoid changing the ABI.
	[811051d32]

	* plugins/sudoers/display.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/fmtsudoers_cvt.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c:
	Use const pointers where possible in the display code.
	[0f2e5dae9]

	* docs/sudo.man.in, docs/sudo.mdoc.in:
	Document "sudo -ll command" output.
	[6842dd1bf]

	* plugins/sudoers/display.c, plugins/sudoers/lookup.c,
	plugins/sudoers/parse.h, plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c:
	Add verbose version of "sudo -l command" by using an extra -l.

	The output of "sudo -ll command" consists of the matching sudoers
	rule (in long form) with the addition of a "Matched" entry that
	shows the fully-qualfied path along with any arguments.
	[60eef27e6]

	* plugins/sudoers/display.c:
	Move code to display a cmndspec in long form to
	display_cmndspec_long().
	[f6291bf83]

	* plugins/sudoers/display.c:
	sudo -ll: display the sudoers file the rule came from.
	[5a1a3ff74]

2023-08-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog.c, plugins/sudoers/log_client.c,
	plugins/sudoers/logging.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Store the source of the matching rule and store in the event log.

	The JSON logs will store the matching rule source.
	[e178b8582]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	lib/eventlog/eventlog_free.c, lib/eventlog/parse_json.c,
	lib/eventlog/regress/eventlog_store/test1.json.in,
	lib/eventlog/regress/eventlog_store/test1.json.out.ok,
	lib/eventlog/regress/eventlog_store/test2.json.in,
	lib/eventlog/regress/eventlog_store/test2.json.out.ok,
	lib/eventlog/regress/eventlog_store/test3.json.in,
	lib/eventlog/regress/eventlog_store/test3.json.out.ok,
	lib/eventlog/regress/eventlog_store/test4.json.in,
	lib/eventlog/regress/eventlog_store/test4.json.out.ok,
	logsrvd/iolog_writer.c, logsrvd/sendlog.c:
	Log source in JSON logs

	This makes it possible to tell which rule resulted in a match.
	[0b03511b8]

2023-08-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/lookup.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c:
	Use a single callback for sudoers_lookup() and add a closure
	pointer.

	The single callback now receives all the match info (or UNSPEC if no
	match was attempted). This makes it possible to use the callback for
	more than just printing testsudoers output.
	[f6a9bb2e2]

2023-08-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/ssl_compat/ssl_compat.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd_relay.c, logsrvd/sendlog.c,
	plugins/sudoers/log_client.c:
	Fix checking of SSL_{read,write}_ex() return value.

	These have a boolean-style return value. However, our emulated
	versions can return -1 on error, which we need to preserve for older
	versions of SSL_get_error() which expect it.
	[1e6c5f3e7]

2023-08-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/regress/digest/digest_test.c:
	Fix printf format string mismatch now that 'i' is size_t.
	[5f2a0a70e]

	* include/sudo_digest.h, lib/util/digest.c,
	lib/util/digest_gcrypt.c, lib/util/digest_openssl.c,
	lib/util/getentropy.c, lib/util/regress/digest/digest_test.c,
	lib/util/util.exp.in, plugins/sudoers/filedigest.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	sudo_digest_getlen: return size_t, and 0 on error instead of -1

	This is an API change, sudo_digest_getlen_v1 remains for binary
	compatibility.
	[77f94f291]

	* logsrvd/logsrvd_relay.c, logsrvd/sendlog.c,
	plugins/sudoers/log_client.c:
	ERR_get_error() returns unsigned long, not int.
	[184e03b4a]

	* plugins/sudoers/log_client.c:
	We now must pass "err" SSL_get_error(), not "nread".
	[861ed2b7d]

2023-08-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/hostcheck.h, lib/iolog/hostcheck.c:
	Move compat definition of ASN1_STRING_get0_data to hostcheck.c. It
	is not used anywhere else.
	[e5f2354c8]

2023-08-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/hostcheck.h, include/sudo_compat.h,
	include/sudo_ssl_compat.h:
	Move OpenSSL compat defines to sudo_ssl_compat.h
	[fc7bfd504]

	* MANIFEST, Makefile.in, configure, configure.ac,
	include/sudo_ssl_compat.h, lib/ssl_compat/Makefile.in,
	lib/ssl_compat/ssl_compat.c, logsrvd/Makefile.in,
	logsrvd/tls_common.h, m4/openssl.m4, plugins/sudoers/Makefile.in,
	plugins/sudoers/log_client.h, src/Makefile.in:
	Add implementation of SSL_read_ex/SSL_write_ex for those without.
	[d6d467b92]

	* config.h.in, configure, logsrvd/logsrvd.c,
	logsrvd/logsrvd_relay.c, logsrvd/sendlog.c, m4/openssl.m4,
	plugins/sudoers/log_client.c:
	Use SSL_read_ex() and SSL_write_ex() instead of SSL_read() and
	SSL_write().
	[e6d14c95b]

2023-08-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, etc/sudo-python.pp, etc/sudo.pp:
	Don't use sudo when building AIX packages

	PolyPkg uses "sudo installp -l" to list the built package by default
	but we may not have sudo privileges on the build host.
	[d404f544f]

	* scripts/mkpkg:
	Add --configure-only option to quit after the configure run.

	This will be used to avoid building the entire package when we just
	want the 32 or 64 bit sudo_intercept.so and sudo_noexec.so.
	[002e22f84]

	* scripts/mkpkg:
	Parse --disable-python in mkpkg and don't override -m32 for Solaris.

	We want to be able to build without python and to specify the memory
	model when building 32-bit .so's for Solaris.
	[8e22ede2a]

2023-07-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md, Makefile.in, configure, configure.ac:
	Add --enable-postinstall, an optional phase when building packages.

	This makes it possible to run an arbitrary script between "make
	install" and the polypkg run. This will be used to copy different
	word size versions of sudo_intercept.so and sudo_noexec.so.
	[0a181849a]

	* INSTALL.md, config.h.in, configure, configure.ac,
	docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in, src/exec_preload.c:
	Add basic support for 32-bit and 64-bit LD_PRELOAD equivalents.

	The noexec and intercept DSO settings may now include both a 32-bit
	DSO and a 64-bit DSO specified by a colon. For example:
	/usr/libexec/sudo/sudo_intercept.so:/usr/libexec/sudo/sudo_intercept
	_64.so.
	[980e0216a]

	* lib/util/term.c, src/exec_pty.c:
	Cast TIOCSWINSZ to int to avoid overflow warning on 64-bit AIX.
	[7cb1f7f3a]

2023-07-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo_intercept_common.c:
	Read path section of sudo.conf for sudo_conf_intercept_path().
	[961f23af9]

2023-07-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/visudo.man.in, docs/visudo.mdoc.in:
	visudo: document that a new file is only created if the editor
	writes it.

	If visudo is used to create a new file, the file will only be
	created if the user writes to the file via the editor. Simply
	running visudo and exiting the editor will no longer cause the file
	to be created. There is an exception for file created due to the
	addition of a @include directive, which need to be present for the
	sudoers file to parse properly. GitHub issue #294.
	[bdde6dfa1]

	* plugins/sudoers/visudo.c:
	visudo: do not create a new file if the user made no changes

	This prevents visudo from creating a new zero-length sudoers file if
	the user exited the editor without making any changes. Files created
	via a @include directive are preserved, even if empty, to avoid a
	parse error. GitHub issue #294.
	[4f3786f70]

	* README.md, docs/CONTRIBUTING.md:
	Make the sections on bug reporting consistent with each other.

	GitHub issue #292
	[50fde5d81]

2023-07-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec.c:
	Remove unused variable introduced in last commit.
	[857653f9f]

	* src/exec.c, src/exec_nopty.c, src/exec_pty.c, src/sudo_exec.h:
	Don't assume that if std{in,out,err} is a tty, it is the user's tty.

	Previously, sudo only checked that the fd was a terminal, not that
	it matched sudo's idea of the user's terminal. This matters when
	input or output is redirected to a different terminal. In that case
	we want to interpose the fd with a pipe even if it refers to a
	terminal. Bug #1056.
	[760c9c110]

	* MANIFEST, plugins/sudoers/regress/testsudoers/test29.out.ok,
	plugins/sudoers/regress/testsudoers/test29.sh,
	plugins/sudoers/regress/testsudoers/test30.out.ok,
	plugins/sudoers/regress/testsudoers/test30.sh,
	plugins/sudoers/regress/testsudoers/test31.out.ok,
	plugins/sudoers/regress/testsudoers/test31.sh:
	testsudoers: add -L, -l and -v tests
	[14f1a12e2]

	* plugins/sudoers/regress/testsudoers/test1.out.ok,
	plugins/sudoers/regress/testsudoers/test10.out.ok,
	plugins/sudoers/regress/testsudoers/test11.out.ok,
	plugins/sudoers/regress/testsudoers/test15.out.ok,
	plugins/sudoers/regress/testsudoers/test16.out.ok,
	plugins/sudoers/regress/testsudoers/test17.out.ok,
	plugins/sudoers/regress/testsudoers/test18.out.ok,
	plugins/sudoers/regress/testsudoers/test19.out.ok,
	plugins/sudoers/regress/testsudoers/test2.out.ok,
	plugins/sudoers/regress/testsudoers/test20.out.ok,
	plugins/sudoers/regress/testsudoers/test21.out.ok,
	plugins/sudoers/regress/testsudoers/test22.out.ok,
	plugins/sudoers/regress/testsudoers/test23.out.ok,
	plugins/sudoers/regress/testsudoers/test24.out.ok,
	plugins/sudoers/regress/testsudoers/test25.out.ok,
	plugins/sudoers/regress/testsudoers/test26.out.ok,
	plugins/sudoers/regress/testsudoers/test27.out.ok,
	plugins/sudoers/regress/testsudoers/test28.out.ok,
	plugins/sudoers/regress/testsudoers/test3.out.ok,
	plugins/sudoers/regress/testsudoers/test4.out.ok,
	plugins/sudoers/regress/testsudoers/test5.out.ok,
	plugins/sudoers/regress/testsudoers/test6.out.ok,
	plugins/sudoers/regress/testsudoers/test7.out.ok,
	plugins/sudoers/regress/testsudoers/test8.out.ok,
	plugins/sudoers/regress/testsudoers/test9.out.ok,
	plugins/sudoers/testsudoers.c:
	testsudoers: display when a password is required
	[d62d704e5]

	* plugins/sudoers/testsudoers.c:
	testsudoers: add -L, -l and -v options.

	This makes it possible to test "sudo -l" and "sudo -v" using
	testsudoers.
	[75256516b]

2023-07-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/lookup.c:
	sudoers_lookup_pseudo: sync with sudoers_lookup_check

	This makes sudoers_lookup_pseudo(), which is used for pseudo-command
	like "list" and "validate" a bit more like sudoers_lookup_check().
	Time of day checks are performed, and callbacks are supported. We
	cannot use the same code for regular commands and pseudo-commands
	due to the "pwcheck == all" case.
	[538be58ac]

	* plugins/sudoers/logging.c:
	Fix user warning message for "sudo -l command" when not allowed.
	Reported by the sudo-rs project.

	There was a missing space between "list" and the actual command.
	This also changes the output to include the command as specified by
	the user, not the path found in the path. Previously, if the command
	did not exist it would not be included in the message.
	[d486db46c]

	* plugins/python/python_convmessage.c,
	plugins/python/python_loghandler.c,
	plugins/python/python_plugin_common.c,
	plugins/python/sudo_python_module.c,
	plugins/python/sudo_python_module.h:
	Add free function for sudo Python module.

	This reduces the amount of memory leaked on unload.
	[1a00423af]

2023-07-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_14p3 for changeset 6902151970b6
	[efc6ab429]

	* configure, configure.ac:
	sudo 1.9.14p3
	[a06cbb8ef]

	* NEWS:
	Document bug fixes in 1.9.14p3.
	[e59c48743]

	* NEWS:
	Document bug fixes in 1.9.14p3.
	[01702afcf]

	* plugins/python/python_loghandler.c,
	plugins/python/python_plugin_common.c,
	plugins/python/sudo_python_module.c,
	plugins/python/sudo_python_module.h:
	Merge sudo_module_register_loghandler and
	sudo_module_set_default_loghandler.

	We now create the LogHandler class for each interpreter in
	python_plugin_init() instead of just once in sudo_module_init().
	This fixes the crash seen in Py_EndInterpreter() with Python 3.12
	and significantly reduces the number of leaked objects tracked by
	MemorySanitizer.
	[09b963269]

	* plugins/python/python_convmessage.c:
	sudo_module_register_conv_message: fix copy pasta in debug_decl
	[56b829f66]

2023-07-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/python_baseplugin.c,
	plugins/python/python_convmessage.c,
	plugins/python/python_loghandler.c,
	plugins/python/sudo_python_module.c:
	sudo_module_register_loghandler: clear sudo_type_LogHandler on error
	Also add comments about PyModule_AddObject stealing a ref on
	success.
	[0462a4ee8]

	* plugins/python/pyhelpers.c:
	Use Py_XDECREF instead of manual NULL check + Py_DECREF
	[b52c32f23]

2023-07-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/python_loghandler.c:
	Work around a crash with Python 3.12.

	In sudo_module_set_default_loghandler() if we don't leak the
	reference to py_loghandler we get a crash in Py_EndInterpreter()
	with Python 3.12. This probably indicates a reference counting bug
	elsewhere.
	[4e6254fea]

	* plugins/python/regress/check_python_examples.c:
	Unbuffer stdout so we don't miss output during a crash.
	[91ea59945]

	* plugins/python/python_loghandler.c:
	Use PyObject_CallNoArgs() where possible.
	[8c4cec148]

	* plugins/python/python_convmessage.c,
	plugins/python/python_loghandler.c,
	plugins/python/sudo_python_module.h:
	Make sudo_type_ConvMessage and sudo_type_LogHandler static.

	They are not used outside their respective compilation units.
	[ba5ef624f]

2023-07-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	lib/util/Makefile.in, plugins/python/Makefile.in,
	plugins/sudoers/Makefile.in:
	Pass TEST_VERBOSE to all test programs.
	[432ac1212]

	* lib/iolog/regress/host_port/host_port_test.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/editor/check_editor.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/exptilde/check_exptilde.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/serialize_list/check_serialize_list.c,
	plugins/sudoers/regress/starttime/check_starttime.c,
	plugins/sudoers/regress/unescape/check_unesc.c:
	All test programs should accept the -v option, even if it is
	ignored.
	[7499b2d27]

	* plugins/python/python_plugin_common.c:
	Revert last change, wrong diff committed.
	[e710f7942]

2023-07-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/python_plugin_common.c:
	We can rely on Py_FinalizeEx() to free sub-interpreters.
	[a12dbfe90]

2023-07-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/regress/testhelpers.c:
	Adapt to changed formatting of a rejected result in Python 3.12
	[2cb483578]

	* plugins/python/example_audit_plugin.py,
	plugins/python/pyhelpers.c,
	plugins/python/regress/testdata/check_example_audit_plugin_receives_
	accept.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_receives_
	error.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_receives_
	reject.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_version_d
	isplay.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_workflow_
	multiple.stdout,
	plugins/python/regress/testdata/check_example_debugging_c_calls@diag
	.log,
	plugins/python/regress/testdata/check_example_debugging_c_calls@info
	.log,
	plugins/python/regress/testdata/check_example_group_plugin_is_able_t
	o_debug.log,
	plugins/python/regress/testdata/check_example_policy_plugin_validate
	_invalidate.log:
	Remove trailing whitespace from test output.
	[adaba9c0f]

	* plugins/python/python_plugin_common.c:
	_python_plugin_new_interpreter switches to the new interpreter

	No need to do PyThreadState_Swap in the caller.
	[7a10cdc28]

2023-07-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/python_plugin_common.c:
	Call PyImport_AppendInittab after pre-initialization.

	Also remove redundant PyConfig settings.
	[cc939297a]

2023-07-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/python_plugin_common.c:
	Use Py_InitializeFromConfig() not Py_InitializeEx() for Python >=
	3.8.

	Avoids deprecation warnings on Python 3.12.
	[da60384ad]

	* NEWS:
	The sudoers option is "use_pty", not "log_pty"

	GitHub issue #291
	[7facc380a]

2023-07-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/python_loghandler.c,
	plugins/python/python_plugin_common.c,
	plugins/python/sudo_python_module.c,
	plugins/python/sudo_python_module.h:
	Merge sudo_module_register_loghandler and
	sudo_module_set_default_loghandler.

	We now create the LogHandler class for each interpreter in
	python_plugin_init() instead of just once in sudo_module_init().
	This fixes the crash seen in Py_EndInterpreter() with Python 3.12
	and significantly reduces the number of leaked objects tracked by
	MemorySanitizer.
	[aa7f77edd]

2023-07-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/python_baseplugin.c,
	plugins/python/python_convmessage.c,
	plugins/python/python_loghandler.c,
	plugins/python/sudo_python_module.c:
	sudo_module_register_loghandler: clear sudo_type_LogHandler on error
	Also add comments about PyModule_AddObject stealing a ref on
	success.
	[32ac7d4d6]

2023-07-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/python_loghandler.c:
	Work around a crash with Python 3.12.

	In sudo_module_set_default_loghandler() if we don't leak the
	reference to py_loghandler we get a crash in Py_EndInterpreter()
	with Python 3.12. This probably indicates a reference counting bug
	elsewhere.
	[2b0643f6a]

	* plugins/python/python_loghandler.c:
	Use PyObject_CallNoArgs() where possible.
	[28b05ea8f]

	* plugins/python/python_convmessage.c,
	plugins/python/python_loghandler.c,
	plugins/python/sudo_python_module.h:
	Make sudo_type_ConvMessage and sudo_type_LogHandler static.

	They are not used outside their respective compilation units.
	[114343142]

2023-07-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/regress/testhelpers.c:
	Adapt to changed formatting of a rejected result in Python 3.12
	[46159d284]

	* plugins/python/example_audit_plugin.py,
	plugins/python/pyhelpers.c,
	plugins/python/regress/testdata/check_example_audit_plugin_receives_
	accept.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_receives_
	error.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_receives_
	reject.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_version_d
	isplay.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_workflow_
	multiple.stdout,
	plugins/python/regress/testdata/check_example_debugging_c_calls@diag
	.log,
	plugins/python/regress/testdata/check_example_debugging_c_calls@info
	.log,
	plugins/python/regress/testdata/check_example_group_plugin_is_able_t
	o_debug.log,
	plugins/python/regress/testdata/check_example_policy_plugin_validate
	_invalidate.log:
	Remove trailing whitespace from test output.
	[58cd8e230]

2023-07-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/python_plugin_common.c:
	Use Py_InitializeFromConfig() not Py_InitializeEx() for Python >=
	3.8.

	Avoids deprecation warnings on Python 3.12.
	[8aeb76f7f]

	* NEWS:
	The sudoers option is "use_pty", not "log_pty"

	GitHub issue #291
	[0efdd7632]

2023-07-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/term.c:
	Quiet a warning false positive with older versions of gcc.
	[4b5480cf7]

	* plugins/sudoers/sudoers.c:
	sudoers_check_common: MODE_PRESERVE_ENV is not valid with
	MODE_CHECK.

	We should only check for MODE_PRESERVE_ENV when running a command.
	[fa66c1668]

2023-07-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_14p2 for changeset 47c0bf9a7ebb
	[5a6f0d5b1]

	* configure, configure.ac:
	sudo 1.9.14p2
	[2a3b848e4]

2023-07-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Document bug fixes in 1.9.14p2.
	[c29a27e84]

2023-07-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/match.c,
	plugins/sudoers/regress/testsudoers/test28.out.ok,
	plugins/sudoers/regress/testsudoers/test28.sh:
	runas_userlist_matches: fix matching a Runas_Spec with an empty
	runas user.

	We should only match a rule with an empty runas user if a group was
	specified on the command line (sudo -g) without a user (no -u
	option) or the user specified their own name on the command line.
	GitHub issue #290
	[db704c22e]

2023-07-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Document bug fixes in 1.9.14p2.
	[181b639fb]

2023-07-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c:
	runas_userlist_matches: fix matching a Runas_Spec with an empty
	runas user.

	We should only match a rule with an empty runas user if a group was
	specified on the command line (sudo -g) without a user (no -u
	option) or the user specified their own name on the command line.
	GitHub issue #290
	[23fc7abfa]

2023-07-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	Pass SUDO_TERM_OFLAG to sudo_term_raw() when sudo output is piped.

	This fixes a problem with "stair-stepped" output when the sudo-run
	command's output is piped to another program and the command reads
	input from the terminal.
	[78b712101]

	* src/exec_pty.c:
	Pass SUDO_TERM_OFLAG to sudo_term_raw() when sudo output is piped.

	This fixes a problem with "stair-stepped" output when the sudo-run
	command's output is piped to another program and the command reads
	input from the terminal.
	[d821e8da3]

	* src/exec_monitor.c, src/exec_pty.c:
	Simplify the exec_monitor() foreground flag.

	Add cmnd_foreground flag that is only true if sudo is the foreground
	process and the CD_EXEC_BG flag is not set and pass it to
	exec_monitor(). This means exec_monitor() no longer needs to check
	for CD_EXEC_BG.
	[db4bdb732]

	* src/exec_monitor.c, src/exec_pty.c:
	Simplify the exec_monitor() foreground flag.

	Add cmnd_foreground flag that is only true if sudo is the foreground
	process and the CD_EXEC_BG flag is not set and pass it to
	exec_monitor(). This means exec_monitor() no longer needs to check
	for CD_EXEC_BG.
	[9cdebcf90]

	* include/sudo_util.h, lib/util/term.c,
	plugins/sudoers/sudoreplay.c:
	sudo_term_raw: change the isig argument into a flags field

	There are current two flags: SUDO_TERM_ISIG (enable terminal
	signals) and SUDO_TERM_OFLAG (preserve output flags).
	[625653de0]

	* include/sudo_util.h, lib/util/term.c,
	plugins/sudoers/sudoreplay.c:
	sudo_term_raw: change the isig argument into a flags field

	There are current two flags: SUDO_TERM_ISIG (enable terminal
	signals) and SUDO_TERM_OFLAG (preserve output flags).
	[77f209e14]

2023-07-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	Fix a crash in intercept mode running a command with NULL argv[0].

	Newer Linux kernels replace a NULL argv[0] with the empty string, we
	should as well.
	[ff6ddff39]

	* src/exec_ptrace.c:
	Fix a crash in intercept mode running a command with NULL argv[0].

	Newer Linux kernels replace a NULL argv[0] with the empty string, we
	should as well.
	[24cc3f4c9]

	* src/conversation.c:
	sudo_conversation_printf: simplify \n -> \r\n handling
	[b47f1799c]

	* src/conversation.c:
	sudo_conversation: zero out reply even if no password is requested.

	This avoids a potential invalid free in the err label and provides
	more predictable behavior when mixing message types in a
	conversation.
	[a014b0f2a]

2023-07-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_14p1 for changeset fc033946b1a9
	[8f3b92ee8]

	* configure, configure.ac:
	sudo 1.9.14p1
	[e1b4d21a2]

	* NEWS:
	Docume bug fixes in 1.9.14p1.
	[9afb1851b]

	* NEWS:
	Docume bug fixes in 1.9.14p1.
	[696094c0e]

	* plugins/sudoers/log_client.c:
	fmt_info_messages: don't include ttyname if it is NULL

	The NULL check was commented out for testing but should have been
	restored. Fixes a potential protocol error message from
	sudo_logsrvd.
	[56828f641]

	* plugins/sudoers/log_client.c:
	fmt_info_messages: don't include ttyname if it is NULL

	The NULL check was commented out for testing but should have been
	restored. Fixes a potential protocol error message from
	sudo_logsrvd.
	[ff5f68f2e]

	* logsrvd/iolog_writer.c:
	evlog_new: store a new copy of peeraddr, not a pointer to a buffer.

	Starting in sudo 1.9.14, eventlog_free() will free the peeraddr
	member too so it needs to be dynamically allocated.
	[2eee45ef9]

	* logsrvd/iolog_writer.c:
	evlog_new: store a new copy of peeraddr, not a pointer to a buffer.

	Starting in sudo 1.9.14, eventlog_free() will free the peeraddr
	member too so it needs to be dynamically allocated.
	[ac830c558]

2023-07-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, include/sudo_compat.h,
	lib/util/realpath.c:
	realpath.c: include limits.h and use sysconf(_SC_SYMLOOP_MAX)

	This is more portable and eliminates the need to check for
	SYMLOOP_MAX (and provide it if missing) in configure. Also quiet
	some -Wconversion warnings.
	[a432aed4f]

	* plugins/sudoers/ldap_conf.c:
	sudo_krb5_ccname_path: avoid gcc false positive for ccname being
	NULL

	The callers all verify that they don't pass a NULL ccname so I'm not
	sure how the compiler is getting confused (and why now?).
	[dc1a5d7b4]

	* include/sudo_debug.h:
	Work around unused variable warning when fuzzing in enabled.
	[c6a11b4fe]

	* plugins/sudoers/check_util.c,
	plugins/sudoers/regress/testsudoers/test25.out.ok,
	plugins/sudoers/regress/testsudoers/test25.sh,
	plugins/sudoers/regress/testsudoers/test26.out.ok,
	plugins/sudoers/regress/testsudoers/test26.sh:
	Only allow the user to specify -D or -R for the special "*" value.

	The sudoers file must now explicitly allow the user to specify a
	directory (sudo -D) or chroot (sudo -R) by setting cwd or chroot to
	"*". If a specific cwd or chroot value is set in sudoers, the user
	may not use the -D or -R options, even if they match the value in
	sudoers.
	[d1625f9c8]

	* docs/sudo_plugin.man.in, docs/sudo_plugin.mdoc.in:
	Add restrict keyword to sudo_printf_t in plugin docs.
	[44cfa9e13]

	* include/sudo_debug.h, lib/util/sudo_debug.c:
	Convert sudo_debug_enter and sudo_debug_exit into macros.

	In most cases, these simply expand to a call to
	sudo_debug_printf2(). We need to keep the function versions around
	in libsudo_util for backwards compatibility.
	[db6baf2ca]

	* lib/util/sudo_debug.c:
	Fix sudo_debug_exit_uint_v1 declaration for fuzzers.
	[2d12a4194]

	* lib/util/sudo_debug.c:
	Add missing sudo_debug_exit_uint_v1 stub for fuzzers.
	[eff4e1c0c]

	* src/conversation.c, src/edit_open.c, src/exec_common.c,
	src/parse_args.c, src/selinux.c, src/sesh.c, src/sudo.c, src/sudo.h,
	src/sudo_edit.h, src/sudo_exec.h, src/tgetpass.c:
	sudo frontend: make more bit flags unsigned.
	[dbb95ad21]

	* plugins/sudoers/auth/API, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/check.c,
	plugins/sudoers/check.h, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers.h, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/lookup.c,
	plugins/sudoers/parse.h, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	sudoers plugin: make more bit flags unsigned.
	[cbcb1d250]

	* include/sudo_debug.h, include/sudo_event.h, lib/util/event.c,
	lib/util/event_poll.c, lib/util/event_select.c,
	lib/util/sudo_debug.c, lib/util/util.exp.in:
	libsudo_util: make more bit flags unsigned.
	[4f097eebd]

2023-07-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/timeout.c:
	parse_timeout: move overflow check to the correct location

	It was not covering all cases in its original location. Fixes
	oss-fuzz issue 60454 with fuzz_sudoers.
	[9f7128fe8]

2023-07-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #287 from AtariDreams/restrict

	Give every printf-like function restrict qualifiers
	[fc02df111]

2023-07-07  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* include/sudo_compat.h, include/sudo_debug.h, include/sudo_fatal.h,
	include/sudo_lbuf.h, include/sudo_plugin.h, include/sudo_util.h,
	lib/eventlog/logwrap.c, lib/util/fatal.c, lib/util/inet_ntop.c,
	lib/util/lbuf.c, lib/util/snprintf.c, lib/util/strlcat.c,
	lib/util/strlcpy.c, lib/util/sudo_debug.c, lib/util/ttyname_dev.c,
	logsrvd/iolog_writer.c, logsrvd/logsrvd_journal.c,
	plugins/audit_json/audit_json.c, plugins/group_file/plugin_test.c,
	plugins/python/pyhelpers.c, plugins/python/regress/iohelpers.c,
	plugins/python/regress/iohelpers.h,
	plugins/python/regress/testhelpers.c,
	plugins/python/regress/testhelpers.h, plugins/sudoers/audit.c,
	plugins/sudoers/check_aliases.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers.h, plugins/sudoers/cvtsudoers_csv.c,
	plugins/sudoers/defaults.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/ldap_util.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/parse.h, plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudo_ldap.h, plugins/sudoers/sudo_printf.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/conversation.c, src/exec_preload.c, src/parse_args.c,
	src/sudo_plugin_int.h:
	Give every printf-like function restrict qualifiers

	The format value has to be a string literal, every time.

	Otherwise, you are not using these functions correctly. To reinforce
	this fact, I putrestrict over every non-contrib example of this I
	could find.
	[5d758264a]

2023-07-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_nopty.c, src/exec_pty.c, src/sudo_exec.h:
	struct exec_closure: make rows and cols int, not short

	There's no real space saved by using short and using int avoids a
	few casts.
	[92860c717]

	* plugins/sudoers/testsudoers.c:
	testsudoers: avoid extern definitions where possible
	[548e3e312]

	* plugins/sample/sample_plugin.c, src/conversation.c,
	src/copy_file.c, src/env_hooks.c, src/exec.c, src/exec_common.c,
	src/exec_intercept.c, src/exec_monitor.c, src/exec_nopty.c,
	src/exec_preload.c, src/exec_ptrace.c, src/exec_pty.c,
	src/net_ifs.c, src/parse_args.c, src/preserve_fds.c, src/sudo.c,
	src/sudo.h, src/sudo_edit.c, src/sudo_exec.h, src/sudo_intercept.c,
	src/sudo_intercept_common.c, src/tgetpass.c, src/ttyname.c:
	sudo frontend: silence most -Wconversion warnings.
	[32f4b98f6]

	* plugins/python/pyhelpers.c, plugins/python/python_convmessage.c,
	plugins/python/regress/iohelpers.c,
	plugins/python/regress/testhelpers.c,
	plugins/python/sudo_python_module.c:
	python plugin: silence -Wconversion warnings.
	[0c85f10c8]

	* plugins/sudoers/alias.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/b64_encode.c,
	plugins/sudoers/check_aliases.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers.h, plugins/sudoers/cvtsudoers_csv.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_merge.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/display.c,
	plugins/sudoers/editor.c, plugins/sudoers/env.c,
	plugins/sudoers/filedigest.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/fmtsudoers_cvt.c, plugins/sudoers/getdate.c,
	plugins/sudoers/getdate.y, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path_escapes.c,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/ldap_innetgr.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/log_client.c,
	plugins/sudoers/logging.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/match_command.c, plugins/sudoers/parse.h,
	plugins/sudoers/parse_ldif.c, plugins/sudoers/policy.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/starttime.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timeout.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c:
	sudoers plugin: silence most -Wconversion warnings.
	[a38b71466]

	* logsrvd/iolog_writer.c, logsrvd/logsrv_util.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd_conf.c, logsrvd/logsrvd_journal.c,
	logsrvd/logsrvd_local.c, logsrvd/logsrvd_queue.c,
	logsrvd/logsrvd_relay.c, logsrvd/regress/fuzz/fuzz_logsrvd_conf.c,
	logsrvd/sendlog.c:
	sudo_logsrvd: silence most -Wconversion warnings.
	[4891f37a4]

	* include/sudo_iolog.h, lib/iolog/hostcheck.c,
	lib/iolog/iolog_filter.c, lib/iolog/iolog_legacy.c,
	lib/iolog/iolog_mkdirs.c, lib/iolog/iolog_mkdtemp.c,
	lib/iolog/iolog_read.c, lib/iolog/iolog_timing.c,
	lib/iolog/iolog_write.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/iolog/regress/iolog_timing/check_iolog_timing.c:
	libiolog: silence -Wconversion warnings.
	[6734a99f8]

	* lib/fuzzstub/fuzzstub.c:
	libfuzzstub: silence -Wconversion warnings.
	[e93913e2b]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	lib/eventlog/eventlog_conf.c, lib/eventlog/logwrap.c,
	lib/eventlog/parse_json.c,
	lib/eventlog/regress/eventlog_store/store_json_test.c,
	lib/eventlog/regress/eventlog_store/store_sudo_test.c,
	lib/eventlog/regress/logwrap/check_wrap.c,
	lib/eventlog/regress/parse_json/check_parse_json.c:
	libevent: silence -Wconversion warnings.
	[c95423a8f]

	* include/sudo_json.h, include/sudo_lbuf.h, lib/util/closefrom.c,
	lib/util/digest.c, lib/util/event_poll.c, lib/util/fatal.c,
	lib/util/getentropy.c, lib/util/getgrouplist.c, lib/util/gidlist.c,
	lib/util/json.c, lib/util/lbuf.c, lib/util/mkdir_parents.c,
	lib/util/parseln.c, lib/util/regex.c,
	lib/util/regress/fuzz/fuzz_sudo_conf.c,
	lib/util/regress/hexchar/hexchar_test.c,
	lib/util/regress/mktemp/mktemp_test.c,
	lib/util/regress/strtofoo/strtoid_test.c, lib/util/secure_path.c,
	lib/util/setgroups.c, lib/util/sig2str.c, lib/util/str2sig.c,
	lib/util/strlcat.c, lib/util/strlcpy.c, lib/util/strtoid.c,
	lib/util/strtonum.c, lib/util/sudo_conf.c, lib/util/sudo_debug.c,
	lib/util/ttysize.c:
	libsudo_util: silence most -Wconversion warnings.
	[5768d374c]

	* config.h.in, configure, configure.ac:
	Add configure check for restrict keyword.
	[f7801f216]

	* plugins/sudoers/sudoers.c:
	sudoers_check_common: remove extraneous return statement.
	[0205f6fc7]

2023-07-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_digest.h, lib/util/digest.c,
	lib/util/digest_gcrypt.c, lib/util/digest_openssl.c,
	lib/util/regress/digest/digest_test.c:
	Make the remaining instances of digest_type unsigned.
	[bced0a778]

2023-07-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_path_escapes.c:
	Copy, don't append group ID in fill_group() and fill_runas_group()

	This only affects the case where a group ID cannot be resolved.
	[43e914a5d]

	* lib/iolog/Makefile.in:
	Remove regress corpus directories correctly
	[17c09dfd2]

	* include/sudo_debug.h, include/sudo_util.h, lib/util/strtomode.c,
	lib/util/sudo_debug.c, lib/util/util.exp.in:
	Change sudo_strtomode() to return mode_t.
	[2d1b3c369]

2023-07-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/sudoreplay.c:
	Rename print_usage() to display_usage()
	[2848dddd8]

	* logsrvd/logsrvd.c, logsrvd/sendlog.c:
	Move display of usage text into display_usage() so usage() always
	exits.
	[f6d154241]

	* lib/util/parseln.c, logsrvd/logsrvd_journal.c:
	Fix some indentation.
	[1f0f6b7c7]

	* plugins/sudoers/Makefile.in, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers.h, plugins/sudoers/testsudoers.c:
	Include testsudoers_pwutil.h for testsudoers_pwutil.c prototypes.
	[fd061e4d6]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/testsudoers_pwutil.c,
	plugins/sudoers/testsudoers_pwutil.h, plugins/sudoers/tsgetgrpw.c,
	plugins/sudoers/tsgetgrpw.h:
	Fix wrapping of libc getpwnam/getpwuid/getgrnam/getgrgid on NetBSD.
	[f1d906347]

	* MANIFEST, aclocal.m4, config.h.in, configure, configure.ac,
	lib/util/roundup.c, m4/ax_gcc_builtin.m4:
	Add configure tests for __builtin_clz/__builtin_clzl
	[bfb6132d9]

	* lib/util/roundup.c:
	Add fallback for compilers without __builtin_clz/__builtin_clzl
	[0f69939d7]

	* lib/util/roundup.c:
	sudo_pow2_roundup: fix 64-bit version when shifting 31 or more
	places

	Shift 1UL instead of 1 to avoid overflowing an int.
	[3a7ca0a83]

	* :
	Merge pull request #286 from AtariDreams/one-more

	Optimize sudo_pow2_roundup_v1
	[d900e7a93]

2023-07-03  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* lib/util/roundup.c:
	Optimize sudo_pow2_roundup_v1

	No need to call sudo_pow2_roundup_v2.
	[8c3e4a33c]

2023-07-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #285 from AtariDreams/bug

	Remove comment about algorithm being from bit-twiddling hacks
	[fa69ee5e1]

2023-07-03  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* lib/util/roundup.c:
	Remove comment about algorithm being from bit-twiddling hacks

	Said comment no longer applies.
	[76d7aefb3]

2023-07-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #284 from AtariDreams/fix

	Fix fuzzing errors
	[f884514b3]

2023-07-03  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* lib/util/parseln.c, lib/util/roundup.c, logsrvd/logsrvd_journal.c:
	Fix fuzzing errors

	We should be checking for integer overflow, rather than checking if
	size is 0.

	Additionally, we should set errno to ENOMEM when this overflow
	happens.

	Finally, the most efficient implementation of the round-up-to-2
	algorithm involves the clz intrinsic.
	[732110428]

2023-07-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #283 from AtariDreams/bug

	Fixed even more signedness and conversion issues
	[9266966ab]

2023-07-03  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/timestamp.c, plugins/sudoers/tsgetgrpw.c,
	src/sudo.c:
	Fixed even more signedness and conversion issues

	This should be the last of them.
	[cbed9daa4]

2023-07-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/lbuf.c:
	sudo_lbuf_expand: limit allocation to UINT_MAX
	[f5eb1e055]

	* lib/util/parseln.c:
	sudo_parseln: use sudo_pow2_roundup() instead of hand-rolling it.
	[d3dc70ab6]

	* logsrvd/logsrv_util.c, logsrvd/logsrv_util.h, logsrvd/logsrvd.c,
	logsrvd/logsrvd_relay.c, logsrvd/sendlog.c,
	plugins/sudoers/log_client.c, plugins/sudoers/log_client.h:
	Promote length/size/offset in struct connection_buffer to size_t.
	[e95bd883d]

	* include/sudo_util.h, lib/util/lbuf.c, lib/util/roundup.c,
	lib/util/util.exp.in, logsrvd/logsrv_util.c, logsrvd/logsrvd.c,
	plugins/sudoers/log_client.c:
	Make sudo_pow2_roundup() operate on size_t.
	[56a431f7e]

2023-07-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_debug.h, lib/util/sudo_debug.c,
	plugins/python/pyhelpers.c, plugins/python/pyhelpers.h,
	plugins/python/python_loghandler.c,
	plugins/python/sudo_python_debug.c,
	plugins/python/sudo_python_debug.h:
	Make the debug subsystem unsigned.

	It was already unsigned in sudoers but not in the front-end or the
	python plugin. Making this consistent resolves a lot of -Wconversion
	warnings. Also clean up some other -Wconversion warnings in
	sudo_debug.c.
	[b926df1df]

	* lib/eventlog/eventlog.c,
	lib/eventlog/regress/eventlog_store/store_json_test.c,
	lib/eventlog/regress/eventlog_store/store_sudo_test.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/exec_monitor.c, src/sudo.c:
	Fix up indentation.
	[04c7e910e]

	* :
	Merge pull request #280 from AtariDreams/bug

	Mark functions not returning as sudo_noreturn
	[575e4ab2f]

2023-07-01  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* lib/eventlog/eventlog.c,
	lib/eventlog/regress/eventlog_store/store_json_test.c,
	lib/eventlog/regress/eventlog_store/store_sudo_test.c,
	lib/eventlog/regress/logwrap/check_wrap.c,
	lib/eventlog/regress/parse_json/check_parse_json.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/util/regress/hexchar/hexchar_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/sudo_conf/conf_test.c, logsrvd/logsrvd.c,
	logsrvd/regress/logsrvd_conf/logsrvd_conf_test.c, logsrvd/sendlog.c,
	plugins/group_file/plugin_test.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c, src/sesh.c,
	src/sudo.c:
	Mark functions not returning as sudo_noreturn

	We also put NOTREACHED where it applies.
	[45fdfa18f]

2023-07-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l, src/limits.c:
	Avoid passing debug_return_size_t() a negative number.
	[97e574091]

	* :
	Merge pull request #279 from AtariDreams/bison

	Regenerate toke.c using updated flex
	[2a4939a1c]

2023-06-29  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Regenerate toke.c using updated flex

	Use the current version of flex to generate toke.c
	[6ea68d208]

2023-06-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/exptilde/check_exptilde.c,
	plugins/sudoers/testsudoers.c:
	Fix a few memory leaks in the tests.
	[5fbf431c4]

	* MANIFEST, plugins/sudoers/regress/testsudoers/group,
	plugins/sudoers/regress/testsudoers/passwd,
	plugins/sudoers/regress/testsudoers/test27.out.ok,
	plugins/sudoers/regress/testsudoers/test27.sh,
	plugins/sudoers/testsudoers.c:
	Add test for runas_check_shell and check_user_shell()
	[ac9b6c94d]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/testsudoers/test25.out.ok,
	plugins/sudoers/regress/testsudoers/test25.sh,
	plugins/sudoers/regress/testsudoers/test26.out.ok,
	plugins/sudoers/regress/testsudoers/test26.sh,
	plugins/sudoers/testsudoers.c:
	testsudoers: add -D and -R options to set cwd and chroot like sudo
	[bdc8a7f35]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/check.c,
	plugins/sudoers/check_util.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Move check_user_* functions to check_util.c so testsudoers can use
	them.
	[01ad570e2]

2023-06-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/testsudoers.c:
	testsudoers: make lbuf private to dump_sudoers()

	It is no longer used directly in main.
	[689efe3cd]

	* plugins/sudoers/regress/testsudoers/test11.out.ok,
	plugins/sudoers/regress/testsudoers/test4.out.ok,
	plugins/sudoers/regress/testsudoers/test5.out.ok,
	plugins/sudoers/testsudoers.c:
	testsudoers: display "Parse error" if there was a parse error.

	Previously, we just printed "Command unmatched" which makes it
	harder to see that an error occurred.
	[260c2fb83]

	* plugins/sudoers/regress/testsudoers/test1.out.ok,
	plugins/sudoers/regress/testsudoers/test10.out.ok,
	plugins/sudoers/regress/testsudoers/test15.out.ok,
	plugins/sudoers/regress/testsudoers/test16.out.ok,
	plugins/sudoers/regress/testsudoers/test17.out.ok,
	plugins/sudoers/regress/testsudoers/test18.out.ok,
	plugins/sudoers/regress/testsudoers/test19.out.ok,
	plugins/sudoers/regress/testsudoers/test2.out.ok,
	plugins/sudoers/regress/testsudoers/test20.out.ok,
	plugins/sudoers/regress/testsudoers/test21.out.ok,
	plugins/sudoers/regress/testsudoers/test22.out.ok,
	plugins/sudoers/regress/testsudoers/test23.out.ok,
	plugins/sudoers/regress/testsudoers/test24.out.ok,
	plugins/sudoers/regress/testsudoers/test3.out.ok,
	plugins/sudoers/regress/testsudoers/test6.out.ok,
	plugins/sudoers/regress/testsudoers/test7.out.ok,
	plugins/sudoers/regress/testsudoers/test8.out.ok,
	plugins/sudoers/regress/testsudoers/test9.out.ok,
	plugins/sudoers/testsudoers.c:
	testsudoers: use allowed/denied/unmatched instead of just
	matched/unmatched

	This makes it possible to tell whether an entry was rejected due to
	a negative match (explicitly denied) as opposed to a non-match. Also
	fixes a bug where the runas status was only printed for positive
	matches.
	[6a21aec0a]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/testsudoers/test20.out.ok,
	plugins/sudoers/testsudoers.c:
	testsudoers: use sudoers_lookup() instead of a custom loop.
	[fd25bfc89]

	* plugins/sudoers/lookup.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.c:
	Add callbacks to sudoers_lookup() so we can use it in testsudoers.

	Also pass in the time to be used for NOTBEFORE/NOTAFTER checks.
	[e025cca44]

	* :
	Merge pull request #278 from AtariDreams/types

	Avoid compiler casting warnings Part 2
	[41b82006d]

	* plugins/sudoers/sudoers.c:
	check_user_runcwd: only allow sudo's -D option if sudoers specifies
	a runcwd.

	Previously, the user could specify the runas user's home dir for
	"sudo -i" or the user's existing cwd when -i is not specified. This
	behavior was never documented and is inconsistent with how the -R
	option is handled.
	[1c7a20d74]

	* MANIFEST, plugins/sudoers/regress/testsudoers/test24.out.ok,
	plugins/sudoers/regress/testsudoers/test24.sh,
	plugins/sudoers/testsudoers.c:
	testsudoers: add support for NOTBEFORE and NOTAFTER

	Also adds -T option to set the value of "now".
	[2c1a473dd]

2023-05-18  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* lib/util/mktemp.c, lib/util/regress/tailq/hltq_test.c,
	lib/util/sudo_debug.c, lib/util/ttyname_dev.c,
	plugins/group_file/plugin_test.c, plugins/sudoers/editor.c,
	plugins/sudoers/filedigest.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/match_digest.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/exptilde/check_exptilde.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/tsdump.c, plugins/sudoers/visudo.c,
	src/exec_monitor.c, src/limits.c, src/sesh.c, src/sudo.c,
	src/sudo.h, src/sudo_edit.c:
	Avoid compiler casting warnings Part 2

	This saves instructions that are related to casting as well as
	compiler warnings.
	[22079c307]

2023-06-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/lookup.c:
	Rename parse.c -> lookup.c now that it only contains sudoers_lookup.
	[f2a274b06]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/display.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h:
	Split display_privs() and display_cmnd() out of parse.c into
	display.c
	[8b640329d]

	* lib/util/snprintf.c:
	No need to round up to page size with sudo_mmap_alloc().
	[1ba61cd13]

	* :
	Merge pull request #265 from AtariDreams/types

	Avoid compiler casting warnings by assigning to variables of the
	same type where possible
	[f437c66a2]

	* :
	Merge pull request #277 from AtariDreams/debug_return_int(1);

	We should be returning 0, not 1, when logservd finishes without
	errors
	[e0238ab21]

2023-06-28  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* logsrvd/logsrvd.c:
	We should be returning 0, not 1, when logservd finishes without
	errors

	1 is for failure, 0 is for no failure, and this does not look like a
	failure.
	[2c13d7130]

2023-05-18  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* lib/eventlog/eventlog.c, lib/eventlog/eventlog_free.c,
	lib/eventlog/parse_json.c, lib/iolog/hostcheck.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c, lib/util/event.c,
	lib/util/explicit_bzero.c, lib/util/fatal.c, lib/util/getaddrinfo.c,
	lib/util/getentropy.c, lib/util/hexchar.c, lib/util/inet_ntop.c,
	lib/util/json.c, lib/util/lbuf.c, lib/util/mksiglist.c,
	lib/util/mksigname.c, lib/util/multiarch.c, lib/util/progname.c,
	lib/util/sig2str.c, lib/util/snprintf.c, lib/util/sudo_conf.c,
	lib/util/term.c, lib/util/uuid.c, logsrvd/iolog_writer.c,
	logsrvd/logsrvd.c, logsrvd/sendlog.c,
	plugins/audit_json/audit_json.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/editor.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/iolog.c, plugins/sudoers/parse.c,
	plugins/sudoers/policy.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/starttime/check_starttime.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/timestr.c, plugins/sudoers/tsdump.c,
	plugins/sudoers/visudo.c, src/conversation.c, src/exec_monitor.c,
	src/limits.c, src/parse_args.c, src/sesh.c, src/sudo.c, src/sudo.h:
	Avoid compiler casting warnings by assigning to the same type where
	possible

	This saves instructions that are related to casting as well as
	compiler warnings.
	[e54ba33ea]

2023-06-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, src/sudo_intercept.c,
	src/sudo_intercept_common.c:
	Fix undefined symbol on macOS for intercept mode and log_subcmds.

	macOS does not support direct access to the environ pointer from a
	shared object. We need to redirect through _NSGetEnviron() instead.
	Fixes GitHub issue #276.
	[a0b074cc9]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c:
	check_user_runcwd: allow -D option if it matches the cwd in sudoers

	Previously, check_user_runcwd() would return true if the runcwd
	matched the user's cwd, even if sudoers specified a different one.
	The user-specified runcwd was ignored but it is better to error out
	in this case. It is now also possible to use "sudo -D" with the
	directory specified in sudoers.
	[e7d4c05ac]

2023-06-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_14 for changeset 8010d7515347
	[8fe76f441]

	* :
	Merge sudo 1.9.14 from tip.
	[26f1789b3]

2023-06-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #275 from AtariDreams/emergency

	Set command_info to NULL once it is freed
	[a2a87323e]

2023-06-26  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* plugins/sudoers/policy.c:
	Set command_info to NULL once it is freed

	The lack of setting to NULL is a holdover from when command_info was
	a local variable and not a global one. However, we given how other
	global variables are set to NULL, it is best that we do the same
	here to avoid potential issues should sudoers_policy_store_result be
	called again after the first time failed, otherwise we could get a
	double-free.
	[0bb41ed82]

2023-06-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #274 from bin-ly/main

	Modify the is_script function for match_command.c
	[676066e2a]

2023-06-25  binlingyu  <binlingyu@uniontech.com>

	* plugins/sudoers/match_command.c:
	Modify the is_script function for match_command.c
	[f8a45e8a5]

2023-06-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention C99 requirement.
	[7fb98a9a3]

2023-06-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Reference SETENV-related settings in the command environment
	section.

	Based on GitHub PR #273 from Ilya Kulakov.
	[e0ee845df]

	* INSTALL.md:
	Sudo requires a C99 compiler due to the use of flexible array
	members.
	[733d5291b]

	* :
	Merge pull request #266 from AtariDreams/c99

	Do variable length arrays the C99 way
	[3bdd2214a]

2023-06-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #269 from trackers-lover/main

	correct the return value type of function alias_find_used
	[69b486d46]

2023-06-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Clarify that use_pty is on by default starting with 1.9.14.
	[5d2b1761f]

	* docs/sudo.man.in, docs/sudo.mdoc.in:
	Sudo runs the command in a pty by default in 1.9.14 and above.
	[afb09e004]

	* plugins/sudoers/sudoers.in:
	Add commented out example for disabling use_pty.
	[4da1f373d]

2023-05-18  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* include/sudo_event.h, lib/util/event.c, lib/util/rcstr.c,
	plugins/sudoers/canon_path.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/sudo_ldap_conf.h:
	Do variable length arrays the C99 way

	Variable length arrays are supported by C99, but having it denoted
	as "1" confused the compiler and is not defined.

	Note that because we don't get the inferred NULL terminator, we have
	to increase the malloc size by one.
	[7fd680c98]

2023-06-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .circleci/config.yml:
	Update Xcode version from 13.2.1 to 13.4.1.
	[64b666471]

2023-06-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST:
	Add plugins/sudoers/regress/testsudoers/passwd to MANIFEST.
	[dc49e11fa]

	* plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po, po/eo.mo,
	po/eo.po, po/pl.mo, po/pl.po:
	Updated translations from translationproject.org
	[c5c589da0]

	* NEWS:
	Document recent bug fixes.
	[4f9185f4c]

	* MANIFEST, plugins/sudoers/regress/testsudoers/group,
	plugins/sudoers/regress/testsudoers/passwd,
	plugins/sudoers/regress/testsudoers/test22.out.ok,
	plugins/sudoers/regress/testsudoers/test22.sh,
	plugins/sudoers/regress/testsudoers/test23.out.ok,
	plugins/sudoers/regress/testsudoers/test23.sh:
	Add tests to exercise recent runas user and group bug fixes.
	[baf482763]

	* MANIFEST, plugins/sudoers/regress/testsudoers/passwd,
	plugins/sudoers/regress/testsudoers/test21.out.ok,
	plugins/sudoers/regress/testsudoers/test21.sh:
	Add test to exercise the bug that prevented the group specified via
	"sudo -g" from matching when a Runas_Alias was used in the user or
	group portion of a Runas_Spec.
	[0d1732503]

2023-06-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c:
	runaslist_matches: split out user_list and group_list matching.

	This makes it possible to call the appropriate runas user or group
	list match function when resolving aliases instead of calling
	runaslist_matches() itself. Fixes a bug that prevented the group
	specified via "sudo -g" from matching when a Runas_Alias was used in
	the user or group portion of a Runas_Spec.
	[78e65e14e]

	* plugins/sudoers/match.c:
	runaslist_matches: fix bug when no runas list is specified in
	sudoers.

	If a sudoers rule has no runas list, a user-specified runas group
	should only be allowed if it matches a group that the default runas
	user belongs to. Instead, a missing group check allowed the user run
	commands as the default runas user with an arbitrary group.

	This means that a rule like "somebody host = ALL", which should be
	equivalent to "somebody host = (root) ALL", had the same effect as
	"somebody host = (root:ALL) ALL".
	[471028351]

	* plugins/sudoers/match.c:
	runaslist_matches: remove special case to handle "sudo -g group"

	Now that we are guaranteed to have a runas user list for all sudoers
	rules that contain a runas list, we can remove support for the
	special case where user_matched is set in the runas group matching
	conditional. This fixes a bug where "sudo -u myuser -g mygroup" was
	permitted by a rule like "myuser ALL = (root) ALL".
	[8c1559e0e]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/regress/sudoers/test27.json.ok,
	plugins/sudoers/regress/sudoers/test27.ldif.ok,
	plugins/sudoers/regress/sudoers/test27.out.ok:
	Populate runasusers even when only a grouplist is specified.

	When a sudoers rule permits the user to run commands as a group, not
	a user, we should set the runasusers to single member with the
	special MYSELF token. This guarantees that the only time runasusers
	will be NULL is when no runaslist is present.
	[64ab8cd23]

2023-06-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/pyhelpers.h:
	Python may be built with 32-bit time_t support on 32-bit platforms.
	We need to undef the SIZEOF_TIME_T from pyconfig.h so it does not
	conflict with our own.
	[a28d2d412]

2023-06-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #272 from millert/main

	Avoid use of variable length arrays and add ctype(3) casts.
	[ac46157e9]

	* lib/util/lbuf.c:
	Avoid use of variable length arrays and add ctype(3) casts.
	[8fbdd414c]

	* :
	Merge pull request #270 from moehanabi/main

	Add %n$s support for sudo_lbuf_append_v1
	[ee4f210f3]

2023-06-09  Brilliant Hanabi  <130747944+moehanabi@users.noreply.github.com>

	* lib/util/lbuf.c:
	Add %n$s support for sudo_lbuf_append_v1
	[932339ed9]

2023-06-09  bianguangze  <bianguangze@uniontech.com>

	* plugins/sudoers/alias.c:
	correct the return value type of function alias_find_used
	[b4dcac650]

2023-06-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/ro.mo, plugins/sudoers/po/ro.po,
	plugins/sudoers/po/ru.mo, plugins/sudoers/po/ru.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/fr.mo,
	po/fr.po, po/hr.mo, po/hr.po, po/ko.mo, po/ko.po, po/ro.mo,
	po/ro.po, po/ru.mo, po/ru.po, po/sr.mo, po/sr.po, po/uk.mo,
	po/uk.po, po/vi.mo, po/vi.po:
	Updated translations from translationproject.org
	[5baf817db]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update .pot files for 1.9.14
	[2c58d8075]

	* NEWS:
	Mention Bug #1050 fix.
	[2077b5157]

2023-06-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac:
	sudo 1.9.14
	[c7070b047]

2023-06-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/sudo_ldap_conf.h:
	Add NETGROUP_QUERY option for servers that can't match
	nisNetgroupTriple. This can be used to support netgroup queries on
	systems that lack the innetgr() function and where the LDAP server
	cannot query the nisNetgroup by nisNetgroupTriple.
	[3786654db]

2023-06-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/defaults.c, plugins/sudoers/ldap.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.h:
	sudo_ldap_check_non_unix_group: pass nss pointer to netgr_matches()
	This allows us to use the LDAP-specific version of innetgr() when
	possible. Also enable "use_netgroups" by default even on systems
	without innetgr() since we can now query netgroups directly via
	LDAP.
	[6fddb2875]

2023-06-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	Only call ptrace_verify_post_exec() for intercept, not log_subcmds.
	[245c56bac]

2023-06-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/visudo.c:
	run_command: back out changes to run editor in its own process
	group. It unnecessarily complicates things to work around bugs in an
	OS almost no one runs.
	[2392ee9d7]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/util.exp.in, plugins/sudoers/Makefile.in, src/Makefile.in,
	src/sudo_exec.h, src/suspend_parent.c:
	Make suspend_parent.c out of lib/util and into src. Nothing else
	uses it now.
	[95cd40907]

2023-06-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/digestname.c, plugins/sudoers/filedigest.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Initialize digest_type to SUDO_DIGEST_INVALID, not -1 and make it
	unsigned. This makes the digest type consistently unsigned instead
	of a mix of signed (for the -1 value in the tokenizer) and unsigned.
	[1278e36ff]

2023-05-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo_plugin_python.man.in, docs/sudo_plugin_python.mdoc.in,
	etc/codespell.exclude, etc/codespell.ignore,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/pivot.c, plugins/sudoers/visudo.c:
	Fix typos and update excluded/ignored codespell lists.
	[d633d82f2]

2023-05-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/visudo.c:
	run_command: check that ttyfd is not -1 before using it
	[0986a8846]

2023-05-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/visudo.c:
	Work around a macOS a kernel bug where tcsetpgrp() does not restart.

	I reported this bug to Apple over 12 years ago.
	[4d417b46d]

	* plugins/sudoers/visudo.c:
	run_command: run editor in foreground if visudo is the foreground
	process

	The command is now always run in its own process group. If visudo is
	run in the foreground, the command is run in the foreground too.
	Otherwise, run the command in the background. There is a race
	between the tcsetpgrp() call in the parent and the execve() in the
	child. If we lose the race and the command needs the controlling
	terminal, it will be stopped with SIGTTOU or SIGTTIN, which the
	waitpid() loop will handle.
	[be20e1592]

	* plugins/sudoers/visudo.c:
	Accept carriage return for EOL in addition to newline.

	Since visudo doesn't alter the terminal settings it is possible for
	the terminal to have the ONLCR bit set in the output control flags.
	In that case, we will get a CR, not a NL when the user presses
	enter/return. One way this can happen is if visudo is run in the
	background from a shell that supports line editing and the editor
	restores the (cbreak-style) terminal mode when it finishes.
	[7e28e60b5]

2023-05-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/parser/check_fill.c:
	check_fill: sudoers_strict() is now a function, not a global
	variable
	[91f100f5b]

	* plugins/sudoers/parse.h, plugins/sudoers/sudoers.h,
	plugins/sudoers/toke.h:
	Move parser prototypes / externs from sudoers.h to parse.h or
	toke.h.
	[f352ef5d6]

	* plugins/sudoers/file.c, plugins/sudoers/sudoers.c:
	parse.h is already included by sudoers.h.
	[01ff7c476]

	* plugins/sudoers/policy.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	Rename parser_conf -> sudoers_conf in all but the parser itself.
	[bde363e06]

2023-05-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/file.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	Move sudoers search path to struct sudoers_parser_config.

	That way we can avoid passing it to init_parser() directly. We still
	need sudoers_search_path to be shared between the lexer and the
	parser.
	[8cbd5462a]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/file.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/visudo.c:
	Add struct sudoers_parser_config and pass it to init_parser().

	This struct contains parser configuration such as the sudoers file
	uid/gid/mode and parse flags such as verbose, strict and recovery.
	[9d7c30c5a]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	push_include_int: Avoid passing close(2) a negative value on error.
	Coverity CID 314108
	[fb9d0d79a]

	* plugins/sudoers/ldap.c:
	Eliminate dead store. Coverity CID 315032.
	[f722272b7]

2023-05-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_iolog.h, lib/iolog/iolog_gets.c:
	iolog_gets: change size parameter to int to match fgets/gzgets

	Return an error, setting errno to EINVAL, for negative sizes.
	[2f4b40680]

2023-05-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Rename force_umask to override_umask and make it private to
	sudoers.c.

	Add getter for policy.c.
	[c0fa3a4d2]

	* plugins/sudoers/check.h,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/timestamp.c:
	Make timestamp_uid and timestamp_gid private to timestamp.c.

	Add getter (for set_perms.c) and setter (for sudoers.c).
	[72489d7a8]

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/sudo_auth.h,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.h:
	Make login_style private to bsdauth.c

	Add a setter for policy.c to handle auth_type from the front-end.
	[d5de5890f]

2023-05-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/sudo_debug.c:
	Back out last change, len must be int, not size_t, for %.*s.
	[cda03ed13]

	* src/exec_pty.c:
	Use a "%s" format instead of using a translated string as the
	format.
	[27ea64bac]

	* :
	Merge pull request #260 from AtariDreams/size_t

	Prefer size_t over int, as casting can take extra instructions
	[16191bb3d]

2023-05-03  Rose  <83477269+AtariDreams@users.noreply.github.com>

	* lib/eventlog/parse_json.c, lib/util/sudo_debug.c,
	plugins/sudoers/fmtsudoers.c:
	Prefer size_t over int, as casting can take extra instructions
	[459a49b1f]

2023-05-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/parse.h,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Rename init_parser_ext() to init_parser() and remove old wrapper.

	There was only one consumer of the init_parser() wrapper now that
	reset_parser() has been introduced.
	[bbbaea5b2]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.c:
	Add reset_parser() and use in place of init_parser(NULL).
	[f258a15df]

	* plugins/sudoers/ldap.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.h:
	Make path_ldap_conf and path_ldap_secret private to policy.c.

	Add getters for both so the ldap code can access them.
	[80768ed3a]

	* plugins/sudoers/file.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/visudo.c:
	Make sudoers_file private to policy.c and visudo.c.

	We just need a way for the policy (and visudo) to override the
	default sudoers path. This adds a getter to be used in file.c when
	sudoers is first opened.
	[f553ddc43]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/visudo.c:
	Support adminconfdir for relative include paths in sudoers.
	[5446b009e]

	* plugins/sudoers/visudo.c:
	Track the destination sudoers path for each parsed file.

	When adminconfdir is enabled, the destination pathh may be different
	from the path we opened. We always store an edited file in the
	adminconfdir (if enabled). This makes it possible to use visudo when
	/etc/sudoers is located on a read-only file system.
	[7a6ac5d26]

	* INSTALL.md, Makefile.in, configure, configure.ac,
	docs/Makefile.in, examples/Makefile.in, include/Makefile.in,
	lib/util/Makefile.in, lib/zlib/Makefile.in, logsrvd/Makefile.in,
	m4/sudo.m4, plugins/audit_json/Makefile.in,
	plugins/group_file/Makefile.in, plugins/python/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_approval/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Add adminconfdir and --enable-adminconf to set it. Configuration
	paths in sudo are now a colon-separated list of files with the
	adminconfdir instance first (if enabled), followed by a sysconfdir
	instance.
	[d4c6ef122]

2023-03-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_13p3 for changeset 0bdd0b8469e3
	[16504a6b1]

	* NEWS, configure, configure.ac:
	Sudo 1.9.13p3
	[4e0de8d55]

2023-03-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h:
	A user with "list" privs for root may not list all users. A user
	with "sudo ALL" for root _is_ allowed to list any user.
	[f2b94c987]

	* plugins/sudoers/policy.c:
	sudoers_policy_list: do not set runas_pw to list_pw when listing
	This change introduced in sudo 1.9.13 is not actually needed. The
	"list" pseudo-command checks are performed via runas_matches_pw()
	which does not use runas_pw. GitHub issue #248
	[ef7cc6ed0]

	* plugins/sudoers/logging.c, plugins/sudoers/parse.c,
	plugins/sudoers/sudoers.c:
	Fix "sudo -l command args", broken in sudo 1.9.13. The value of
	user_args should not contain the command to be run in "sudo -l
	command args", only the arguments of the command being checked. This
	restores the pre-1.9.13 behavior. GitHub issue #249
	[2d0e31933]

2023-03-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_nopty.c, src/exec_pty.c:
	write_callback: only enable /dev/tty reader if the command is
	running This fixes a hang when there is /dev/tty data in a buffer to
	be flushed by the final call to del_io_events(). We do not want to
	re-enable the reader when flushing the buffers as part of
	pty_finish(). See PR #247 for analysis of the problem and how to
	reproduce it.
	[6fe3afb18]

2023-02-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/testsudoers/test12.out.ok,
	plugins/sudoers/regress/testsudoers/test12.sh:
	Test non-fully qualified path name.
	[fa2ed7d34]

	* plugins/sudoers/Makefile.in:
	Fix removal of y.tab.[ch] when generating gram.[ch].
	[49971eaa2]

	* MANIFEST, plugins/sudoers/regress/sudoers/test30.in,
	plugins/sudoers/regress/sudoers/test30.json.ok,
	plugins/sudoers/regress/sudoers/test30.ldif.ok,
	plugins/sudoers/regress/sudoers/test30.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test30.out.ok,
	plugins/sudoers/regress/sudoers/test30.sudo.ok,
	plugins/sudoers/regress/sudoers/test30.toke.ok:
	Add test for using "list" as user, runas and host.
	[fd5e5f6e5]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Move handling of the "list" pseudo-command from lexer to parser. The
	special handling of "list" in the lexer meant it could not be used
	as a user, group or host, which was unintentional. GitHub issue
	#246.
	[d1c74778c]

2023-02-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_compat.h:
	Make the check for HAVE_DECL_NSIG consistent with other decl checks.
	[4ae14db77]

2023-02-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_13p2 for changeset 2db7cee1cb77
	[95e063b48]

	* NEWS, configure, configure.ac:
	Sudo 1.9.13p2.
	[dc7ad19cb]

2023-02-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/match_command.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/testsudoers/test20.out.ok,
	plugins/sudoers/regress/testsudoers/test20.sh,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Fix potential double free for rules that include a CHROOT= option.
	If a rule with a CHROOT= option matches the user, host and runas,
	the user_cmnd variable could be freed twice.
	[c16867c67]

2023-02-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/lbuf.c:
	Add missing include of errno.h.
	[ea2f22bc9]

	* lib/util/lbuf.c:
	sudo_lbuf_expand: check for overflow when rounding to the nearest
	power of 2. Problem deteced by oss-fuzz using the fuzz_sudoers
	fuzzer.
	[bd0d5d2f1]

	* src/load_plugins.c:
	Fix --enable-static-sudoers, broken in sudo 1.9.13.
	sudo_qualify_plugin() should not try to fully-qualify the path to a
	statically-compiled plugin. GitHub issue #245
	[3d98e3bdf]

2023-02-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_13p1 for changeset 49e64402924f
	[52ae07db4]

	* :
	Merge sudo 1.9.13p1 from tip.
	[05cab83b1]

	* NEWS, configure, configure.ac:
	Sudo 1.9.13p1
	[58382028a]

	* configure.ac:
	Use m4_bmatch, m4_case does not support shell-style globbing.
	[42163ac0a]

	* configure, configure.ac:
	Allow configure.ac to be processed by autoconf 2.69. AC_PROG_CC_STDC
	is deprecated in autoconf 2.70 and above but it is necessary for
	autoconf 2.69.
	[2feea9b2f]

	* configure.ac:
	Only use AC_SYS_YEAR2038 if it is defined. Otherwise, use the method
	from 1.9.12. GitHub issue #242
	[d7080afe0]

2023-02-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	Sudo-specific executables moved to /usr/libexec/sudo starting in
	Debian 12 (Bookworm) and Ubuntu 22.04 (Jammy Jellyfish). Previously,
	they were stored in /usr/lib/sudo.
	[439f0734f]

	* lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/python/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Handle "locale -a" returning both C.UTF-8 and C.utf8. It is possible
	to have mutiple matches from the output of "locale -a". Just take
	the first one. Fixes GitHub issue #241.
	[2845ceafb]

	* lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	Add some missing files to the clean and distclean targets.
	[4f50692ac]

	* :
	Merge pull request #240 from thesamesam/c23

	sudo_fatal: Fix build where compiler recognises [[noreturn]]
	attribut…
	[a845039de]

2023-02-15  Sam James  <sam@gentoo.org>

	* include/sudo_fatal.h:
	sudo_fatal: Fix build where compiler recognises [[noreturn]]
	attribute (C23)

	If the compiler supports [[noreturn]] as a attribute as in C23, then
	we define sudo_noreturn to be it. When that's the case, we must
	place it at the beginning of the declaration, before any other
	*extension* attributes (__attribute(...)).

	A bug has been filed with GCC regarding rejecting/accepting mixed
	attribute styles.

	sudo_dso_public is always an extension attribute, while
	sudo_noreturn only might be, so put it first.

	This only shows up with GCC 13 so far (see the linked GCC bug for a
	bit more exploration). Clang 16 does support the attribute but
	doesn't let you use it for earlier language versions (need to pass
	explicit -std=c2x, unlike with GCC here).

	This is essentially a followup to
	e707ffe58b3ccfe5c72f54c38eac1d7069d5021e.

	Tested with GCC 13.0.1 20230212 (unreleased), GCC 12.2.1 20230211,
	Clang 16.0.0_rc2, and Clang 15.0.7.

	Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108796 Closes:
	https://github.com/sudo-project/sudo/issues/239 Fixes:
	e707ffe58b3ccfe5c72f54c38eac1d7069d5021e Fixes:
	16ae61dcd7d3cd8bf6eb10a22fa742d4505da4e9
	[66359c2bc]

2023-02-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Add missing '[' to AS_IF() call. Fixes GitHub issue #238.
	[defec5d46]

	* .hgtags:
	Added tag SUDO_1_9_13 for changeset 813f6addf7cf
	[fe7e5d3b5]

	* :
	Merge sudo 1.9.13 from tip.
	[effed9ecb]

	* MANIFEST, plugins/sudoers/po/ka.mo:
	Add compiled version of the sudoers Georgian translation.
	[a80dcc6ac]

	* .gitignore, .hgignore:
	Do not ignore .mo files. Otherwise we are likely to miss uncommitted
	changes in them.
	[5eed6adb6]

	* plugins/sudoers/po/ru.mo, plugins/sudoers/po/zh_CN.mo,
	po/zh_CN.mo:
	Regenerate .mo files.
	[f1b07aed4]

2023-02-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	No longer need to define sudoers_recovery here.
	[bdef2ad6d]

	* NEWS:
	Mention that a missing include file is no longer fatal.
	[0008d1f71]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/policy.c:
	Recover from missing include file unless error_recovery is disabled.
	It is still treated as an error from a logging perspective, and mail
	is still sent.
	[26385b45c]

2023-02-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, m4/sudo.m4, pathnames.h.in,
	plugins/sudoers/visudo.c:
	Substitute for _PATH_SUDO* variables in pathnames.h. Previously
	these were hard-coded with Makefile overrides.
	[9ad6dfa37]

2023-05-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/file.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/visudo.c:
	Support sudoers_file being a colon-separated path of files. The
	first file found is used.
	[f17b35471]

	* configure, configure.ac, include/sudo_util.h,
	lib/util/Makefile.in, lib/util/secure_path.c, lib/util/sudo_conf.c,
	lib/util/util.exp.in, logsrvd/Makefile.in, logsrvd/logsrvd.c,
	logsrvd/logsrvd_conf.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/sudoers.c,
	src/Makefile.in:
	Convert config file paths to colon-separated path list. This means
	that _PATH_SUDO_CONF, _PATH_SUDOERS, _PATH_SUDO_LOGSRVD_CONF, and
	_PATH_CVTSUDOERS_CONF can now specify multiple files. The first file
	that exists is used.
	[4363d03ef]

2023-05-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure:
	Regenerate with latest autoconf from git.
	[a7e906ff6]

2023-04-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd_conf.c:
	No longer need to set AI_NUMERICSERV while fuzzing.

	Now that getaddrinfo() is stubbed out while fuzzing we can remove
	the hack that set AI_NUMERICSERV.
	[978aa9002]

2023-04-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/regress/fuzz/fuzz_logsrvd_conf.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c:
	getaddrinfo stub: set sin_port
	[d1f2452c0]

	* logsrvd/regress/fuzz/fuzz_logsrvd_conf.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Avoid NULL deref in stub getaddrinfo() when nodename is NULL. Also
	add support for parsing servname. We only need to support a subset
	of getaddrinfo() functionality in the fuzzer.
	[2898c8511]

	* configure, m4/hardening.m4:
	Add missing stdio.h include for the _FORTIFY_SOURCE=2 check.
	Implementations of _FORTIFY_SOURCE require the header file to be
	included. Also remove the useless test of an empty program with
	_FORTIFY_SOURCE defined. Pointed out by Florian Weimer.
	[075ee0f9d]

	* configure, m4/ldap.m4:
	Use ldap_msgfree() instead of ldap_init() for the lber.h test. The
	ldap_init() function is marked as deprecated and not defined by
	default on some systems. This can cause an error for compilers that
	do not support implicit function declarations. From Florian Weimer.
	[b83140e0f]

2023-04-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	Include arpa/inet.h for inet_pton() prototype.
	[47ae92d03]

	* logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	Add netdb.h for struct addrinfo and EAI_* error codes.
	[3d4dc19ec]

	* logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	Stub out getaddrinfo() and freeaddrinfo(). We may not be able have
	access to DNS in the fuzzing environment.
	[64f6d6fdb]

	* lib/eventlog/regress/eventlog_store/store_sudo_test.c:
	Plug memory leaks in store_sudo_test found by LSAN.
	[8c85fefae]

2023-04-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/limits.c:
	disable_coredump: only change the soft limit, leave the hard limit
	as-is This should avoid problems on Linux in cases where sudo does
	not have CAP_SYS_RESOURCE which may be the case in an unprivileged
	container. GitHub issue #42
	[b1deffbe5]

2023-04-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/build_pkgs:
	Add basic support for remote power on/off via net-snmp.
	[e2243e373]

	* src/exec.c:
	More accurate description of what happens for "sudo -b".
	[6c3c8acba]

2023-04-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_nopty.c, src/exec_pty.c, src/selinux.c, src/sudo.h,
	src/ttyname.c:
	Avoid calling isatty()/ttyname() on std{in,out,err} if not a char
	dev.

	The user controls these fds so we should avoid calling ioctl(2) on
	them unless they correspond to actual character device files.
	[ab0f8dda3]

2023-04-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	Better support for "sudo -b" when running the command in a pty.

	When a command is run via "sudo -b" it has no access to terminal
	input. In non-pty mode, the command runs in an orphaned process
	group and reads from the controlling terminal fail with EIO. We
	cannot do the same while running in a pty but if we set stdin to a
	half-closed pipe, reads from it will get EOF. That is close enough.
	[fe80c27de]

2023-04-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/parse_args.c, src/sudo_usage.h.in:
	Hard-code usage() and help() for an 80-column terminal.

	Trying to tailor the help and usage output to the terminal width is
	simply not worth it and could be abused to mark a socket as
	"trusted" on Linux if there are additional kernel bugs like
	CVE-2023-2002.
	[b24af7b3e]

	* config.h.in, configure, configure.ac, src/sudo.c,
	src/sudo_usage.h.in:
	Move CONFIGURE_ARGS from sudo_usage.h.in to config.h.in.
	[65c0b5a08]

2023-04-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/ttysize.c, src/sudo.c:
	get_user_info: call sudo_get_ttysize() even if no /dev/tty We still
	want to initialize rows and cols based on the environment if
	possible.
	[80b85bdd5]

2023-04-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/parse_args.c:
	Get the tty size using stdout, not stderr, when printing help
	output. While usage() prints to stderr, help() prints to stdout.
	[4ac994179]

	* src/sudo.c:
	get_user_info: pass sudo_get_ttysize() the fd of /dev/tty, not
	stderr. Both the plugin API and the main event loop expect
	lines/cols to refer to the user's terminal, so using /dev/tty is
	better here.
	[d1912957a]

	* include/sudo_util.h, lib/util/ttysize.c, lib/util/util.exp.in,
	plugins/sudoers/sudoreplay.c, src/parse_args.c, src/sudo.c:
	Add an fd argument to sudo_get_ttysize() instead of always using
	stderr.

	For sudoreplay we open /dev/tty, so use that instead of stderr when
	determining the terminal size.
	[cc22cca34]

	* lib/util/ttysize.c:
	Check whether stderr is a tty before trying TIOCGWINSZ.
	[5650b436e]

2023-04-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Use -no-undefined on macOS to avoid "-undefined dynamic_lookup"
	warnings.

	Starting with macOS 13, the linker warns when "-undefined
	dynamic_lookup" is used. This is added by libtool by default on
	macOS but we can suppress it by passing -no-undefined to libtool.
	[ae12d18ff]

2023-04-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docker/debian/latest/Dockerfile, docker/debian/testing/Dockerfile,
	docker/fedora/latest/Dockerfile, docker/fedora/rawhide/Dockerfile,
	docker/ubuntu/devel/Dockerfile, docker/ubuntu/latest/Dockerfile,
	docker/ubuntu/rolling/Dockerfile:
	Add make to Dockerfile and sort packages.
	[62a2d9f94]

2023-04-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/UPGRADE.md, docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/defaults.c:
	Enable the use_pty option by default for sudo 1.9.14.

	GitHub issue #258
	[894daa88f]

2023-04-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Split up the monolithic sudoers_policy_main() function.

	This splits the code to find the command, perform a sudoers lookup,
	ask for a password as needed, and perform post-lokup checks out into
	sudoers_check_common(). The old sudoers_policy_main() has been
	replaced by sudoers_check_cmnd() (called by sudoers_policy_check()),
	sudoers_validate_user() (called by sudoers_policy_validate()) and
	sudoers_list() (called by sudoers_policy_list()). The list_user
	lookup is now performed in sudoers_list().
	[d7b8f3ffb]

	* plugins/sudoers/sudoers.c:
	Move the root_sudo check until after we apply per-command Defaults.

	It is possible, though unlikely, for "root_sudo" to be used in a
	per-command Defaults statement.
	[859a81ad2]

2023-04-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	sudoers_policy_main: restore locale if sudoers_lookup() fails.

	Previously, if sudoers_lookup() set VALIDATE_ERROR, the sudoers
	locale would still be in effect instead of the original locale.
	[ab4b94716]

	* plugins/sudoers/parse.c:
	sudoers_lookup_pseudo: remove validated function argument

	This was always set to FLAG_NO_USER|FLAG_NO_HOST which are cleared
	at the top of the fuction. Make validated a local variables,
	initialized to 0, instead. No change in behavior.
	[fb0a36c1a]

2023-03-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/audit.c, plugins/sudoers/iolog.c:
	The I/O log file name is not just the basename of the full
	iolog_path. The audit plugin already has the correct value for
	iolog_file, don't overwrite it with basename(iolog_path). In the
	future we may wish to pass in iolog_file and iolog_dir in addition
	to iolog_path. Fixes Bug #1046.
	[0a4c8872a]

2023-03-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Warn with "unknown user" not "unknown uid" if user cannot be
	resolved. Prior to sudo 1.8 this was after a getpwuid() but now we
	use getpwnam().
	[ac12f82d8]

	* plugins/sudoers/sudoers.c:
	Set timestamp_uid and timestamp_gid via a callback. This also makes
	it possible to include the location of the line in the sudoers file
	in the warning message (and mail).
	[ad890acf6]

2023-03-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in:
	Fix display of escape sequencees in ldapsearch example.
	[493b2441d]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	White space is not allowed between Defaults and '@', ':', '!', '>'.
	The EBNF made it appear that this is allowed when it really is not.
	[3b55de4e8]

2023-03-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/edit_open.c, src/exec.c, src/exec_intercept.c,
	src/exec_intercept.h, src/exec_monitor.c, src/exec_nopty.c,
	src/exec_pty.c, src/sudo.c, src/sudo.h, src/sudo_edit.c,
	src/sudo_edit.h, src/sudo_exec.h, src/tgetpass.c:
	Make struct {command,user}_details pointers const where possible.
	[f0030cf30]

	* src/sudo.c, src/sudo.h, src/sudo_edit.c, src/tgetpass.c:
	Make user_details private to main.
	[554397eae]

	* src/exec.c, src/exec_nopty.c, src/exec_pty.c, src/parse_args.c,
	src/sudo.c, src/sudo.h, src/sudo_edit.c, src/sudo_exec.h,
	src/tgetpass.c:
	Make user_details private to sudo.c.
	[5108c279a]

2023-03-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/parse_args.c:
	Use sudo_get_ttysize() in help() and usage(). This eliminates a
	dependency on the user_details global.
	[e435b158b]

2023-03-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, scripts/config.sub:
	Regenerate with the autoconf 2.72c snapshot.
	[f95c9f839]

2023-03-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec.c, src/sudo.c, src/sudo.h:
	Store submitcwd (from user_details) in struct command_details. This
	eliminates use of the user_details global from exec_setup().
	[86002226b]

2023-03-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/utmp.c:
	utmp_fill: user is now always non-NULL, no need for user_details.
	[51453c4f2]

	* src/parse_args.c, src/sudo.c, src/sudo.h:
	Remove list_user global.
	[fa5a28f34]

	* src/conversation.c:
	No need to declare tgetpass_flags, it is already in sudo.h.
	[a5b11a58b]

	* src/sudo.c:
	No need for sudo_mode to be global anymore.
	[9fd787343]

	* src/sudo.c:
	Make command_details private to main().
	[11277bb92]

	* src/exec_iolog.c, src/exec_nopty.c, src/exec_pty.c,
	src/sudo_exec.h:
	Make iobufs private to exec_iolog.c.
	[8d2b9a434]

	* src/sudo_exec.h:
	Remove ttymode and its associated values.
	[ee3f99c88]

	* src/exec.c, src/exec_pty.c, src/get_pty.c, src/sudo.h,
	src/sudo_exec.h:
	Move ptyname to struct exec_closure
	[f9b1beced]

	* src/exec_monitor.c, src/exec_pty.c, src/sudo_exec.h:
	Move pty_make_controlling() to exec_monitor.c where it is called. We
	can use details->tty to access the pty follower path.
	[22776b0be]

	* src/exec_pty.c, src/sudo.c:
	Eliminate utmp_user global, just use the value in struct command
	details.
	[7ac9ce001]

	* src/exec_iolog.c, src/exec_nopty.c, src/exec_pty.c,
	src/sudo_exec.h:
	Replace tty_mode global with term_raw flag in struct exec_closure.

	The pty_cleanup hook needs access to the closure so add
	pty_cleanup_init() to store a pointer to the closure for use by
	pty_cleanup_hook().
	[778688d4f]

	* src/exec_monitor.c, src/exec_pty.c, src/sudo_exec.h:
	Register pty cleanup function in exec_pty(), not exec_cmnd_pty(). We
	want it to execute in the main sudo process, not the monitor.
	[b81c5e8da]

	* src/exec_iolog.c:
	Make ttyblock private to exec_iolog.c
	[11739e3de]

2023-03-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c, src/sudo_exec.h:
	exec_pty.c: move foreground flag to struct exec_closure. Also make
	pipeline flag private to exec_pty() and remove the unneeded
	check_foreground() prototype.
	[3303dd98c]

	* src/exec_pty.c:
	On resume, always sync the pty terminal settings with /dev/tty.

	Changes made to the terminal settings while the command is suspended
	are now reflected in the pty when the command is resumed. This is
	more consistent with the non-pty behavior and allows for the removal
	of the "tty_initialized" global. One downside to this change is that
	if a terminal-based program using the pty is stopped with SIGSTOP it
	may have the wrong terminal settings on resume. However, this is no
	different from the non-pty case.
	[51cdb194b]

	* lib/util/suspend_parent.c, lib/util/term.c:
	Correct a comment.
	[3e734fa51]

2023-03-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .github/FUNDING.yml:
	GitHub sponsor settings.
	[2a5d8bfea]

	* config.h.in, configure, configure.ac:
	Use built-in tests for bit types instead of using AC_CHECK_TYPES.
	This should be more portable as it handles the quirks of some older
	systems.
	[f0f5e1b5b]

	* plugins/sudoers/visudo.c, src/regress/intercept/test_ptrace.c:
	Quiet compiler warnings on systems where pid_t is not an int.
	Historically, pid_t was a long on some 32-bit systems like Solaris.
	[a17491972]

	* plugins/sudoers/visudo.c:
	Silence "used uninitialized" false positives with older gcc
	versions.
	[775059156]

	* src/exec_pty.c:
	exec_pty: always copy the terminal settings from /dev/tty the pty.
	Previously, we only did this when running in the foreground but this
	can cause problems when running a program that reads the terminal
	settings or window size in the background. If sudo is running in the
	background, the terminal settings will be updated if it transitions
	to the foreground process. Based on a suggestion from From Duncan
	Overbruck.
	[9d55ae892]

	* src/exec_pty.c:
	check_foreground: use SFD_LEADER not SFD_FOLLOWER (which was
	closed). Also use SFD_LEADER for sudo_term_copy() in exec_pty() for
	consistency. From Duncan Overbruck.
	[98ec786b4]

	* src/exec_pty.c:
	suspend_sudo_pty: fix cut & pasto in last commit to catch SIGCONT.
	Also set sa.sa_handler to SIG_DFL instead of SIG_IGN. There is no
	difference for SIGCONT but it means we can re-use sa as-is later.
	[acbe617fb]

2023-03-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	Catch SIGCONT and restore terminal settings on resume from SIGSTOP.
	While we cannot catch SIGSTOP, we _can_ catch SIGCONT and set
	/dev/tty to raw mode when running in the foreground. Ignore SIGCONT
	in suspend_sudo_pty() so we don't call resume_terminal() twice.
	[0fcbcaede]

	* src/exec_monitor.c, src/exec_pty.c:
	Only convert a signal number to a name if we are going to use it. It
	is mostly used for debug logging.
	[1772fc7b6]

	* src/exec_monitor.c, src/exec_pty.c, src/sudo.h:
	Move updating of the window size back to the main sudo process. We
	can use the leader file descriptor with TIOCGWINSZ to set the window
	size of the pty. Thanks to Duncan Overbruck for the hint.
	[adb84293a]

	* plugins/sudoers/visudo.c:
	visudo: restore controlling terminal after running the editor.
	Otherwise, visudo will get SIGTTOU if it tries to write to the
	terminal after the editor finishes. Also avoid races by setting the
	process group ID in both the parent and child, and grant the
	controlling terminal in the parent, not the child.
	[c64993a0b]

2023-03-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/visudo.man.in, docs/visudo.mdoc.in, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/sudoers.h,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l:
	Warn about ignored files in sudoers.d in visudo.
	[28ecbe4d5]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/parse.h,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/visudo.c:
	Replace sudoers_warnings with sudoers_verbose. This is now an int,
	with values > 1 reserved for visudo.
	[8049e4e32]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l:
	Split push_include() into push_include() and push_includedir(). This
	moves the "isdir" function argument to the internal version.
	[738387aa4]

2023-03-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/file.c, plugins/sudoers/ldap.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudo_nss.h:
	Pass around const struct sudo_nss pointers where possible.
	[4b563ea44]

	* plugins/sudoers/alias.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers.h, plugins/sudoers/cvtsudoers_csv.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/fmtsudoers_cvt.c, plugins/sudoers/match.c,
	plugins/sudoers/parse.h:
	Pass around const struct sudoers_parse_tree pointers where possible.
	[1f19a6b72]

	* plugins/sudoers/sudo_ldap.h, plugins/sudoers/sudo_ldap_conf.h:
	Move non-config-related macros to from sudo_ldap_conf.h to
	sudo_ldap.h.
	[70c533ec7]

2023-03-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/Makefile.in, lib/util/getcwd.c,
	scripts/mkdep.pl:
	Remove portable getcwd.c, nothing uses it anymore. Any operating
	system supported by sudo already includes getcwd(3).
	[f5d0b7abf]

	* src/Makefile.in:
	Use LIBPROTOBUF_C and LIBUTIL variables and use them.
	[f2f233336]

2023-03-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_util.h:
	Remove now-unused sudo_timeval* macros.
	[14dd995b8]

	* lib/util/nanosleep.c:
	nanosleep: clear remainder on successful completion Also switch to
	doing everything in terms of struct timespec except for the actual
	select(2) call.
	[708cdc61b]

	* lib/eventlog/Makefile.in, lib/iolog/Makefile.in:
	Add lib dependencies for fuzzer and test targets.
	[3f5e7df3c]

	* lib/eventlog/eventlog_free.c:
	eventlog_free: free peeraddr
	[7683ba1b8]

	* plugins/sudoers/ldap_innetgr.c:
	sudo_ldap_netgroup_match_str: "-" in a netgroup can never match. We
	already check for a NULL value above so "str == NULL" is always
	false. Found by PVS-Studio.
	[b965d222d]

2023-03-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/Makefile.in:
	Fix static compilation.
	[027b42d5a]

	* MANIFEST:
	Replace eventlog_json.h with parse_json.h.
	[33cb885cf]

2023-03-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, lib/eventlog/Makefile.in,
	lib/eventlog/regress/eventlog_store/store_json_test.c,
	lib/eventlog/regress/eventlog_store/store_sudo_test.c,
	lib/eventlog/regress/eventlog_store/test1.json.in,
	lib/eventlog/regress/eventlog_store/test1.json.out.ok,
	lib/eventlog/regress/eventlog_store/test1.sudo.out.ok,
	lib/eventlog/regress/eventlog_store/test2.json.in,
	lib/eventlog/regress/eventlog_store/test2.json.out.ok,
	lib/eventlog/regress/eventlog_store/test2.sudo.out.ok,
	lib/eventlog/regress/eventlog_store/test3.json.in,
	lib/eventlog/regress/eventlog_store/test3.json.out.ok,
	lib/eventlog/regress/eventlog_store/test3.sudo.out.ok,
	lib/eventlog/regress/eventlog_store/test4.json.in,
	lib/eventlog/regress/eventlog_store/test4.json.out.ok,
	lib/eventlog/regress/eventlog_store/test4.sudo.out.ok,
	lib/eventlog/regress/parse_json/check_parse_json.c:
	Add tests for JSON and sudo-style log output.
	[1b3991b71]

2023-03-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog_free.c, lib/eventlog/parse_json.c:
	Add support for parsing all fields of struct eventlog.
	[0f46ffa9f]

2023-03-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c:
	Declare domain even if the system lacks innetgr(). Fixes a build
	error on musl-based systems like Alpine.
	[d8e6396c5]

	* lib/eventlog/Makefile.in:
	Add missing definition of $(SED).
	[918af413f]

	* MANIFEST, include/sudo_eventlog.h, lib/eventlog/Makefile.in,
	lib/eventlog/parse_json.c, lib/eventlog/parse_json.h,
	lib/eventlog/regress/parse_json/check_parse_json.c,
	lib/eventlog/regress/parse_json/test1.in,
	lib/eventlog/regress/parse_json/test2.in,
	lib/eventlog/regress/parse_json/test2.out.ok,
	lib/eventlog/regress/parse_json/test3.in,
	lib/eventlog/regress/parse_json/test3.out.ok, lib/iolog/Makefile.in,
	lib/iolog/iolog_json.c, lib/iolog/regress/fuzz/fuzz_iolog_json.c:
	Move JSON log parsing from libsudo_iolog.la to libsudo_eventlog.la
	It will be used in the upcoming log output tests.
	[86ab362fd]

	* lib/eventlog/eventlog.c:
	Add missing " ; " separator between environment variables and
	command. This is a regression introduced in sudo 1.9.13. GitHub
	issue #254.
	[12648b4e0]

2023-03-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in:
	Add example to verify support for searching by nisNetgroupTriple.
	[24f04c8cb]

2023-03-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gc.c:
	Remove unused sudoers_gc_init() function.
	[34933ef9d]

2023-03-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in:
	Sudo now does its own netgroup lookups if NETGROUP_BASE is set.
	Previously, it only performed netgroup queries to determine the list
	of netgroups a user was a member of.
	[916d8b47c]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c:
	sudoers_cleanup: free cached environment before running g/c. Avoids
	a double free in fuzz_policy.
	[c76ac1cab]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c:
	sudoers_cleanup: run the garbage collector at the end
	[cd5cd4533]

	* plugins/sudoers/sudoers.c:
	Plugin a memory leak in intercept mode.
	[c09aabecd]

	* src/exec_intercept.c:
	Sync non-intercept version of intercept_cleanup() declaration.
	[d5a784442]

	* plugins/sudoers/ldap_innetgr.c:
	Plug memory leak if ldap_get_option() fails with LDAP_NO_MEMORY.
	[33c385a78]

	* src/exec.c, src/exec_intercept.c, src/sudo_exec.h:
	Plug a memory leak with ptrace-based intercept.
	[c61306e58]

	* src/exec_intercept.c:
	Plug memory leak when log_subcmds is enabled.
	[31dad6b17]

	* lib/util/suspend_parent.c:
	Pass closure to callback, not the callback pointer itself.
	[cb7b1dd89]

	* MANIFEST, configure, m4/ldap.m4, plugins/sudoers/Makefile.in,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_innetgr.c,
	plugins/sudoers/sudo_ldap.h, scripts/mkdep.pl:
	Add LDAP-specific innetgr() implementation. Wheh netgroup_base is
	set we now do out own netgroup lookups using LDAP. Previously, LDAP
	was queried directly to get a list of the netgroups the user belongs
	to but other netgroups queries went through innetgr(3). This makes
	it possible to use netgroups in LDAP sudoers on systems that don't
	have an innetgr() function. GitHub issue #251.
	[fc253048f]

	* plugins/sudoers/ldap.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/ldap_util.c, plugins/sudoers/sudo_ldap.h:
	Move some functions from ldap.c to ldap_util.c. These will be used
	by the LDAP innetgr() implementation.
	[554df8d93]

2023-03-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/file.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/ldap.c, plugins/sudoers/match.c,
	plugins/sudoers/parse.h,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudo_nss.h:
	Add per-source innetgr function pointer and use it in
	netgr_matches(). This will be used to implement LDAP-specific
	netgroup lookups when netgroup_base is set in ldap.conf.
	[0aad96bba]

	* lib/zlib/Makefile.in:
	fix typo in uninstall target
	[d2582c2cd]

	* :
	Merge pull request #252 from bin-ly/main

	fix typo in uninstall target
	[954980b56]

2023-03-09  bin-ly  <binlingyu@uniontech.com>

	* lib/util/Makefile.in:
	fix command error for lib/util/Makefile.in
	[ec255dca1]

2023-03-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, lib/util/Makefile.in,
	lib/util/regress/digest/digest_test.c:
	Add tests for SHA2 digest support. This uses the NIST byte-oriented
	short message test vectors.
	[dea110a84]

2023-03-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac:
	Sudo 1.9.13p3
	[0df56634c]

2023-03-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h:
	A user with "list" privs for root may not list all users. A user
	with "sudo ALL" for root _is_ allowed to list any user.
	[689022978]

	* plugins/sudoers/policy.c:
	sudoers_policy_list: do not set runas_pw to list_pw when listing
	This change introduced in sudo 1.9.13 is not actually needed. The
	"list" pseudo-command checks are performed via runas_matches_pw()
	which does not use runas_pw. GitHub issue #248
	[452d63d6c]

	* plugins/sudoers/logging.c, plugins/sudoers/parse.c,
	plugins/sudoers/sudoers.c:
	Fix "sudo -l command args", broken in sudo 1.9.13. The value of
	user_args should not contain the command to be run in "sudo -l
	command args", only the arguments of the command being checked. This
	restores the pre-1.9.13 behavior. GitHub issue #249
	[d9e9307d9]

2023-03-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrv_util.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd_journal.c, logsrvd/sendlog.c,
	plugins/sudoers/log_client.c:
	Check for sudo_pow2_roundup() overflow. Calling
	sudo_pow2_roundup(INT_MAX+2) will return since there is no power of
	2 larger than INT_MAX+1 that fits in an unsigned int. This is not an
	issue in practice since we restrict messages to 2Mib.
	[b013711e4]

	* src/exec_nopty.c, src/exec_pty.c:
	write_callback: only enable /dev/tty reader if the command is
	running This fixes a hang when there is /dev/tty data in a buffer to
	be flushed by the final call to del_io_events(). We do not want to
	re-enable the reader when flushing the buffers as part of
	pty_finish(). See PR #247 for analysis of the problem and how to
	reproduce it.
	[19a660612]

2023-02-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/testsudoers/test12.out.ok,
	plugins/sudoers/regress/testsudoers/test12.sh:
	Test non-fully qualified path name.
	[43378de75]

	* plugins/sudoers/Makefile.in:
	Fix removal of y.tab.[ch] when generating gram.[ch].
	[7356a7796]

	* MANIFEST, plugins/sudoers/regress/sudoers/test30.in,
	plugins/sudoers/regress/sudoers/test30.json.ok,
	plugins/sudoers/regress/sudoers/test30.ldif.ok,
	plugins/sudoers/regress/sudoers/test30.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test30.out.ok,
	plugins/sudoers/regress/sudoers/test30.sudo.ok,
	plugins/sudoers/regress/sudoers/test30.toke.ok:
	Add test for using "list" as user, runas and host.
	[172515c94]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Move handling of the "list" pseudo-command from lexer to parser. The
	special handling of "list" in the lexer meant it could not be used
	as a user, group or host, which was unintentional. GitHub issue
	#246.
	[0197491e9]

2023-02-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_compat.h:
	Make the check for HAVE_DECL_NSIG consistent with other decl checks.
	[6c97b84c0]

	* plugins/sudoers/match_command.c:
	Plug memory leak with multiple matching CHROOT= entries. Found by
	oss-fuzz.
	[a4f31cff2]

2023-02-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac:
	Sudo 1.9.13p2.
	[f4d241262]

2023-02-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/match_command.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/testsudoers/test20.out.ok,
	plugins/sudoers/regress/testsudoers/test20.sh,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Fix potential double free for rules that include a CHROOT= option.
	If a rule with a CHROOT= option matches the user, host and runas,
	the user_cmnd variable could be freed twice.
	[87ce69246]

2023-02-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	Include error string when formatting a SLOG_PARSE_ERROR message if
	present.
	[6c52056d3]

	* lib/util/lbuf.c:
	Add missing include of errno.h.
	[0be5a5191]

	* lib/util/lbuf.c:
	sudo_lbuf_expand: check for overflow when rounding to the nearest
	power of 2. Problem deteced by oss-fuzz using the fuzz_sudoers
	fuzzer.
	[3281d0eec]

	* src/load_plugins.c:
	Fix --enable-static-sudoers, broken in sudo 1.9.13.
	sudo_qualify_plugin() should not try to fully-qualify the path to a
	statically-compiled plugin. GitHub issue #245
	[91814990a]

2023-02-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/sudoers.c:
	Add sudoers open errors to the list of parse errors sent via mail.
	Previously there would be one email for the open failure and a
	separate one describing the parse error. Now a single email message
	contains everything.
	[fb6740fa2]

	* plugins/sudoers/visudo.c:
	visudo: quiet a compiler warning on Solaris 10. Also explicitly
	close /dev/tty fd instead of relying on closefrom() in case the fd
	ends up being a value 0-2.
	[1641c30ed]

	* configure, configure.ac, lib/util/Makefile.in:
	Replace LIBMD with LIBCRYPTO display crypto/tls libs in summary. We
	can only have one of either -lmd, -lgcrypt or -lcrypto so there is
	no need to have more than one variable.
	[8bb116062]

	* :
	Merge pull request #244 from ffontaine/main

	configure.ac: fix openssl static build
	[05c866b6e]

2023-02-22  Fabrice Fontaine  <fontaine.fabrice@gmail.com>

	* m4/openssl.m4:
	configure.ac: fix openssl static build

	Do not use AX_APPEND_FLAG as it will break static builds by removing
	duplicates such as -lz or -latomic which are needed by -lssl and
	-lcrypto. This will fix the following build failure with sparc which
	needs -latomic:

	Checking for X509_STORE_CTX_get0_cert configure:21215:
	/home/thomas/autobuild/instance-3/output-1/host/bin/sparc-buildroot-
	linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE
	-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g0 -static
	-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
	-DZLIB_CONST -static conftest.c
	-L/home/thomas/autobuild/instance-3/output-1/host/bin/../sparc-build
	root-linux-uclibc/sysroot/usr/lib -lssl -lz -pthread -latomic
	-lcrypto >&5
	/home/thomas/autobuild/instance-3/output-1/host/lib/gcc/sparc-buildr
	oot-linux-uclibc/10.4.0/../../../../sparc-buildroot-linux-uclibc/bin
	/ld:
	/home/thomas/autobuild/instance-3/output-1/host/bin/../sparc-buildro
	ot-linux-uclibc/sysroot/usr/lib/libcrypto.a(x509cset.o): in function
	`X509_CRL_up_ref': x509cset.c:(.text+0x108): undefined reference to
	`__atomic_fetch_add_4'

	[...]

	In file included from ./hostcheck.c:38:
	../../include/sudo_compat.h:342:41: error: conflicting types for
	'ASN1_STRING_data' 342 | # define ASN1_STRING_get0_data(x)
	ASN1_STRING_data(x) | ^~~~~~~~~~~~~~~~

	Fixes: -
	http://autobuild.buildroot.org/results/8be59dd94e4916f9457cb435104e3
	6e62a28373b

	Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
	[1fed5adc1]

2023-02-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/visudo.c:
	Check tcsetpgrp() return value.
	[ba7b12645]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/suspend_parent.c, lib/util/util.exp.in,
	plugins/sudoers/visudo.c, src/Makefile.in, src/exec_iolog.c,
	src/exec_nopty.c, src/regress/intercept/test_ptrace.c, src/sudo.h,
	src/sudo_exec.h, src/tcsetpgrp_nobg.c:
	Run the editor in its own process group. This fixes suspending the
	editor on GNU Hurd which doesn't seem to have proper process group
	signal handling.
	[033933710]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c, plugins/sudoers/stubs.c,
	plugins/sudoers/testsudoers.c:
	Stub out pivot_root() and unpivot_root() for all but the sudoers
	module.
	[1bcddb960]

	* plugins/sudoers/match_command.c:
	Fix build when SUDOERS_NAME_MATCH is defined.
	[8b9c1b962]

	* plugins/sudoers/match_command.c:
	Match using canonicalized directories where possible.
	[b52631e87]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/canon_path.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Add canon_path(), a realpath() wrapper that performs caching. This
	also adds a new user_cmnd_dir variable that stores the canonicalized
	parent directory of the command to be run.
	[0ef537367]

2023-02-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/Makefile.in, lib/util/realpath.c,
	scripts/mkdep.pl:
	Add checks for realpath(3) and a version from NetBSD for those
	without it.
	[0443d1457]

2023-02-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c,
	plugins/sudoers/parse.h:
	match_command: apply runchroot if set when matching the command
	Previously we would prepend runchroot to the path we were checking
	but that does not properly handle symbolic links.
	[78ff51435]

	* plugins/sudoers/editor.c, plugins/sudoers/find_path.c,
	plugins/sudoers/goodpath.c,
	plugins/sudoers/regress/editor/check_editor.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	set_cmnd_path: apply runchroot if set when finding the command path
	Previously we would prepend runchroot to the path we were checking
	but that does not properly handle symbolic links.
	[bff4e3ce1]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/pivot.c,
	plugins/sudoers/sudoers.h:
	Add pivot_root() and unpivot_root() to switch the root dir and
	restore it. This will be used to more accurately handling command
	resolution and path matching when a new root directory is specified.
	[13a311bc7]

	* configure, configure.ac:
	Move initial values into AC_SUBST() where possible.
	[440d9649a]

	* configure, configure.ac:
	No need to AC_SUBST() standard autoconf variables.
	[7c6f37358]

	* src/exec_ptrace.c:
	ptrace_intercept_execve: preserve old argv[0] after policy check. We
	have to replace argv[0] with the pathname for the policy check but
	want to restore it afterwards if the policy has not changed the
	command's path name to avoid a mismatch later on.
	[8d95992c1]

2023-02-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md:
	Document --disable-largefile and --disable-year2038.
	[ceee445e8]

	* configure, configure.ac:
	Fix indentation of intercept file in summary output.
	[b8c13bbe8]

	* plugins/sudoers/regress/starttime/check_starttime.c,
	plugins/sudoers/starttime.c:
	get_starttime: add support for GNU Hurd using the mach task_info
	call. This is currently Hurd-specific but could be made Mach-generic
	as long as the equivalent of pid2task() is available.
	[a72bc5e6b]

2023-02-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/starttime/check_starttime.c:
	Only test get_starttime() on platforms where we support it. Fixes a
	test failure on systems where we have no way to determine a
	process's start time.
	[0b000aab8]

2023-02-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/fur.mo,
	po/fur.po, po/ja.mo, po/ja.po, po/zh_TW.mo, po/zh_TW.po:
	Updated translations from translationproject.org
	[8960f5096]

2023-02-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	plugins/sudoers/logging.c:
	Add eventlog_mail() to send a log message via mail. This is used by
	mail_parse_errors() to send multi-line messages. Previously, the
	newlines would be escaped as control characters.
	[b333d1687]

	* lib/eventlog/eventlog.c:
	send_mail: pass a single string instead of using varargs These days
	we only ever pass in a const string.
	[b6caacfe4]

2023-02-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Use AS_IF instead of if; then where possible.
	[2e1a73502]

2023-02-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention the fix for GitHub #237.
	[cfa1fee62]

	* src/exec_pty.c, src/tgetpass.c:
	Display error in error message if we can't restore the terminal.
	[f160e5e6c]

2023-02-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c, src/tgetpass.c:
	Display an error message if unable to restore terminal settings.
	[15b4cde69]

	* Makefile.in, etc/sudo.pp, plugins/sudoers/Makefile.in:
	Get rid of sudoersdir and just use sysconfdir. There is no need for
	sudoersdir when it is always just set to sysconfdir.
	[1758c49d3]

	* src/exec_pty.c:
	pty_finish: only restore the terminal if sudo is the foreground
	process
	[678d6664a]

	* src/exec_pty.c:
	Better background job detection when running a command in a pty. If
	sudo is not the process group leader and stdin is not a tty, we may
	be running as a background job via a shell script. Start the command
	in the background to avoid changing the terminal mode from a
	background process. GitHub issue #237
	[7cb23c85a]

	* src/exec_pty.c:
	suspend_sudo_pty: stop the process group even if sudo is not the
	leader. When sudo is not the process group leader, we still need to
	stop sudo's process group and not just the sudo process itself. If
	we only send the signal to sudo itself, the shell will not notice if
	it is not in monitor mode. This can happen when sudo is run from a
	shell script, for example. In this case we need to signal the shell
	itself. If the process group leader is no longer present, we must
	kill the command since there will be no one to resume us.
	[4fb985563]

	* lib/util/term.c:
	Add debug tracing to tcsetattr_nobg().
	[e63eeee7b]

2023-01-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Avoid compilation errors if getaddrinfo() or freeaddrinfo() are
	macros. If this is the case we probably can't stub out the functions
	but at least the fuzzer will compile.
	[3c9c8668c]

	* src/net_ifs.c:
	Initialize the integer result parameter passed to SIOCGIFANUM. It
	appears that passing in a non-zero value causes the ioctl() to fail.
	From Tim Rice.
	[7c5f0d305]

	* logsrvd/logsrvd.c, logsrvd/logsrvd_relay.c,
	plugins/sudoers/log_client.c:
	Protect use of AF_INET6 with HAVE_STRUCT_IN6_ADDR guards. From Tim
	Rice.
	[0b2e662b2]

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Add configure test for NSIG, _NSIG or __NSIG. This is better than
	just defining NSIG in sudo_compat.h if it is not defined since
	signal.h may not have been included.
	[ffb09be49]

	* logsrvd/logsrvd_conf.c:
	Avoid DNS lookups when fuzzing.
	[49df977c2]

2023-01-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, etc/sudo-python.pp, etc/sudo.pp,
	scripts/mkpkg, scripts/pp:
	No longer need to treat Rocky or Alma Linux specially. We now treat
	them the same as RHEL.
	[23237bb00]

2023-01-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #230 from trackers-lover/main

	Return value does not match
	[6d945448e]

2023-01-29  bianguangze@uniontech.com  <bianguangze@uniontech.com>

	* lib/util/sudo_conf.c:
	Modify return value parameter
	[8797f0ceb]

2023-01-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/build_pkgs:
	Store conf hash in vm_servers instead of vmid. Add a shutdown
	command fallback to the conf file.
	[b257df55d]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/ro.mo, plugins/sudoers/po/ro.po,
	plugins/sudoers/po/ru.po, plugins/sudoers/po/sv.mo,
	plugins/sudoers/po/sv.po, plugins/sudoers/po/uk.mo,
	plugins/sudoers/po/uk.po, plugins/sudoers/po/zh_CN.po,
	plugins/sudoers/po/zh_TW.po, po/cs.mo, po/cs.po, po/de.mo, po/de.po,
	po/eo.mo, po/eo.po, po/fr.mo, po/fr.po, po/hr.mo, po/hr.po,
	po/ko.mo, po/ko.po, po/pl.mo, po/pl.po, po/ro.mo, po/ro.po,
	po/sv.mo, po/sv.po, po/uk.mo, po/uk.po, po/zh_CN.po, po/zh_TW.po:
	Updated translations from translationproject.org
	[179ad08c8]

2023-01-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/po/ka.po:
	New Georgian translation from translationproject.org
	[ab9b20be9]

2023-01-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention the recent intercept/log_subcmds fix.
	[b4325e64c]

	* etc/sudo-logsrvd.pp, etc/sudo-python.pp, etc/sudo.pp,
	scripts/mkpkg, scripts/pp:
	Recognize Alma Linux and Rocky Linux (Open Source RHEL clones)
	[53389b574]

	* config.h.in, configure, scripts/config.guess, scripts/config.sub:
	Regen with latest autoconf git.
	[fd0021ee5]

	* configure, m4/hardening.m4:
	Fix a typo.
	[1977f98d2]

	* scripts/mkpkg:
	Fix determination of the number of CPU cores on Linux.
	[94eafd2f0]

2023-01-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #235 from kernelmethod/apparmor_dependencies

	Replace the Debian libselinux1 dependency with libapparmor1
	[3b3089e4f]

2023-01-26  kernelmethod  <17100608+kernelmethod@users.noreply.github.com>

	* etc/sudo.pp:
	Replace the Debian libselinux1 dependency with libapparmor1

	Debian >= 10 uses AppArmor by default instead of SELinux, so
	SELinux-related sudo features are typically going to be unusable in
	Debian installs. This changes the dependency on libselinux1 to be a
	dependency on libapparmor1 for .deb packages built with `make
	package`.
	[8c9a8933b]

2023-01-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	get_execve_info: defer setting pathname until argbuf is finalized If
	we reallocate the buffer (via growbuf()) in ptrace_read_vec(), the
	address of argbuf may change. If so, the value stored in pathname
	will no longer be valid. GitHub issue #194.
	[fe001b6ff]

	* src/exec_intercept.c, src/exec_ptrace.c:
	Correct error message when command doesn't exist in intercept mode.
	Previously, we would always use EACCES, even when ENOENT was
	appropriate. This also affected log_subcmds.
	[a32a54dce]

2023-01-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update .pot files for 1.9.13
	[de021b60d]

2023-01-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Update for 1.9.13.
	[b9dc472bb]

	* src/exec_ptrace.h:
	Include elf.h, not linux/elf.h but define NT_ARM_SYSTEM_CALL if
	missing. Older kernel headers are missing the definition of EM_ARM
	in linux/elf.h. GitHub issue #232
	[d3afffec7]

	* lib/util/regress/regex/regex_test.c:
	Add tests for escaped digits.
	[e11bb93e2]

	* lib/util/regex.c:
	check_pattern: handle escaped digits since GNU libc accepts them.
	[f6340068d]

2023-01-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	plugins/sudoers/sudoreplay.c:
	Add eventlog_store_sudo() and use it in sudoreplay. This replaces
	the custom log formatting used by "sudoreplay -l".
	[2d9c0d903]

2023-01-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/build_pkgs, scripts/mkpkg:
	Add --build-only flag to skip building packages.
	[733303ed9]

2023-01-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg, scripts/pp:
	Suport building packages on DragonFly BSD.
	[ec79bbc8e]

	* configure, configure.ac, m4/visibility.m4:
	Try to link a simple shared object with -Wl,--no-undefined. This
	only works for gcc-style compilers, which should not be a problem.
	The source uses environ (FreeBSD) and errno (OpenBSD).
	[f65a51afd]

	* scripts/build_pkgs:
	Pass the name to the config.cache file to the build script. If
	--cache-file is not specified, no config.cache file will be used.
	Add an "omit_artifacts" setting for platforms where we don't publish
	artifacts.
	[0010c9861]

2023-01-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/regex.c:
	check_pattern: accept a backslash before the numeric bound like
	glibc. This helps avoid out-of-memory conditions when fuzzing on
	Linux.
	[ee2f2287a]

	* configure, configure.ac:
	Don't use -Wl,--no-undefined with the sanitizers/fuzzers. It breaks
	linking when using -fsanitize with clang at least.
	[7a64275a3]

	* docs/SECURITY.md:
	Add a link to the sudo security advisories archive.
	[c6cc68006]

	* config.h.in, configure, configure.ac:
	Eliminate usage of obsolete 2-argument AC_CHECK_TYPE macro.
	[f7265f5de]

	* config.h.in, configure, configure.ac, plugins/sudoers/starttime.c,
	src/regress/ttyname/check_ttyname.c, src/ttyname.c:
	Add support for the struct kinfo_proc on Dragonfly BSD.
	[9ddae6681]

	* configure, configure.ac:
	Elminate the $OS variable, we can just use $host_os instead.
	[d409ba67c]

	* configure, configure.ac:
	Need to link sudo and sudoers with -lutil on Dragonfly BSD. It is
	safer to just search for setusercontext() in libc and libutil
	instead of matching on the operating system.
	[cb56fd2ed]

	* configure, configure.ac, m4/ldap.m4:
	Add -Wl,--no-undefined to LDFLAGS if it is supported. This will find
	missing symbols at build-time instead of run-time. Don't use it on
	FreeBSD where environ is filled in by the dynamic loader. We also
	need to pull in -llber with -lldap where possible (instead of
	relying on DT_NEEDED) to avoid undefined symbol errors when building
	with LDAP support.
	[83b4cee98]

	* plugins/sudoers/editor.c:
	Restore the line that set errno to ENOENT when find_path() fails.
	This was inadvertently removed when the "goto bad" was added.
	[1e0bb704c]

	* plugins/sample/README:
	The sample plugin is now built by default to avoid bit rot. GitHub
	issue #234.
	[e3583e01b]

	* plugins/sample/sample_plugin.c:
	The change from sudo_printf -> sudo_plugin_printf was incomplete.
	Fixes GitHub issue #234.
	[4f9da47e5]

2023-01-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, m4/pie.m4:
	Solaris: use lt_prog_compiler_pic instead of assuming -KPIC
	[544c97821]

	* configure, m4/hardening.m4, m4/pie.m4:
	Solaris: the aslr, nxheap and nxstack link options are only for
	executables. Move them back to PIE_LDFLAGS, which is only used when
	linking a binary.
	[e72d75d38]

	* configure, m4/hardening.m4, m4/pie.m4:
	Solaris: move aslr linker option to hardening and try to build real
	PIEs These flags are specific to the Solaris linker.
	[7d4666656]

	* configure, m4/hardening.m4, m4/pie.m4:
	Enable non-executable heap and stack options for Solaris ld.
	[b44ad49bf]

	* configure, configure.ac, m4/hardening.m4:
	Limit some of the hardening tests to compilers that define __GNUC__.
	This should avoid false positives on other compilers.
	[73c52e731]

	*
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout:
	Update expected plugin version.
	[7ff70c09f]

	* docs/sudo_plugin.man.in, docs/sudo_plugin.mdoc.in,
	include/sudo_plugin.h, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h, src/sudo.c,
	src/sudo.h, src/sudo_edit.c:
	Pass back the number of files to edit when using sudoedit. The sudo
	front-end can use this to determine where the list of files to edit
	begins.
	[0865e61d9]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in, docs/sudoreplay.man.in,
	docs/sudoreplay.mdoc.in, include/sudo_lbuf.h,
	lib/eventlog/eventlog.c, lib/iolog/iolog_json.c, lib/util/lbuf.c,
	lib/util/util.exp.in, plugins/sudoers/sudoreplay.c:
	Escape control characters in log messages and "sudoreplay -l"
	output. The log message contains user-controlled strings that could
	include things like terminal control characters. Space characters in
	the command path are now also escaped.

	Command line arguments that contain spaces are surrounded with
	single quotes and any literal single quote or backslash characters
	are escaped with a backslash. This makes it possible to distinguish
	multiple command line arguments from a single argument that contains
	spaces.

	Issue found by Matthieu Barjole and Victor Cutillas of Synacktiv
	(https://synacktiv.com).
	[334daf92b]

	* NEWS:
	Merge in sudo 1.9.12p2 changes.
	[77557f8f1]

	* .hgtags:
	Added tag SUDO_1_9_12p2 for changeset 05149e3ee7db
	[058d28129]

2023-01-17  trackers-love  <bianguangze@uniontech.com>

	* lib/util/sudo_conf.c:
	Return value does not match
	[326f013cf]

2023-01-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in,
	docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in,
	docs/sudo_logsrvd.conf.man.in, docs/sudo_logsrvd.conf.mdoc.in,
	docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.mdoc.in, docs/visudo.man.in,
	docs/visudo.mdoc.in:
	Stop using 8n width in tagged lists. Use either 4n, when the body is
	expected to wrap or the width of the longest tag when no wrapping is
	expected.
	[3726e3839]

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in, docs/sudo.man.in,
	docs/sudo.mdoc.in, docs/sudo_logsrvd.man.in,
	docs/sudo_logsrvd.mdoc.in, docs/sudo_sendlog.man.in,
	docs/sudo_sendlog.mdoc.in, docs/sudoreplay.man.in,
	docs/sudoreplay.mdoc.in, docs/visudo.man.in, docs/visudo.mdoc.in:
	Use -width Ds for the options list, not -width Fl.
	[081474913]

	* docs/sudo.man.in, docs/sudo.mdoc.in,
	docs/sudo_logsrvd.conf.man.in, docs/sudo_logsrvd.conf.mdoc.in,
	docs/sudo_plugin_python.man.in, docs/sudo_plugin_python.mdoc.in:
	Reduce the offset of bullet lists to 1n.
	[a7e8a20d0]

	* INSTALL.md:
	Shorten --with-passprompt and --with-mailsubject arguments to a
	single word. The script that generates the web version of this file
	doesn't expect options to include whitespace.
	[1eae385af]

2023-01-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md:
	Shorten --with-badpass-message argument to a single word. The
	fix_install script can't deal with whitespace in options.
	[f0665166b]

	* LICENSE.md:
	Make numbered lists more markdown-friendly. Also add line breaks
	when there are multiple authors.
	[e5634ae99]

	* INSTALL.md:
	Make lists of directories more markdown-friendly.
	[49ad30efa]

2023-01-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c:
	Check for errors when removing the temp directory. If we cannot
	remove the directory tree that may indicate a file or directory mode
	problem.
	[6725c37e3]

	* lib/iolog/iolog_mkdtemp.c:
	iolog_mkdtemp: fix pasto in last commit Set mode to iolog_dirmode,
	not iolog_filemode
	[8d7feb76e]

	* NEWS, configure, configure.ac:
	Sudo 1.9.2p2
	[a49b2da91]

	* plugins/sudoers/editor.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/visudo.c:
	sudoedit: do not permit editor arguments to include "--"
	(CVE-2023-22809) We use "--" to separate the editor and arguments
	from the files to edit. If the editor arguments include "--", sudo
	can be tricked into allowing the user to edit a file not permitted
	by the security policy. Thanks to Matthieu Barjole and Victor
	Cutillas of Synacktiv (https://synacktiv.com) for finding this bug.
	[0274a4f3b]

2023-01-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, m4/hardening.m4:
	Add back the linker check for -fstack-clash-protection. This is
	expected to fix GitHub issue #231.
	[a960d2c45]

2023-01-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/sha2.c:
	In SHA256Pad and SHA512Pad use 511 and 1023 respectively for bitwise
	AND. Previously we were using 504 and 1016 which still produces the
	correct result since padding is done in 8-bit bytes. However, using
	size-1 for the bitwise AND makes the intent clearer and likely would
	have prevented the previous bug in SHA512Pad. From Matthieu Barjole
	and Victor Cutillas of Synacktiv (https://synacktiv.com)
	[0b2f9cbe7]

	* plugins/sudoers/env.c:
	env_file_next_local: change the order of the val_len check. It makes
	more sense to verify that val_len > 1 before using it. This is not a
	problem in practice because val[val_len - 1] is guaranteed not to
	underflow but it can confuse reviewers and static analyzers.
	[3878ce8d4]

	* plugins/sudoers/env.c:
	Fix typo in check for environment variables that start with '='.
	[d781ab0a8]

	* lib/util/lbuf.c:
	sudo_lbuf_print: no longer need to check for lbuf->len > 0. Now that
	lbuf length is unsigned the earlier check for len == 0 is
	sufficient.
	[1b7604e5c]

	* lib/util/lbuf.c:
	Increase minimum allocation size from 256 to 1024 bytes.
	[ca297658d]

	* plugins/sudoers/sudoreplay.c:
	Fix IS_IDLOG macro, it was testing the wrong byte for the NUL. This
	causes the macro to evaluate to false even for valid TSIDs.
	[1f58e5a8e]

2023-01-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	sudoers_trace_print: this is a no-op if not debugging
	[8309fbb97]

	* lib/util/lbuf.c:
	sudo_lbuf_expand: don't allocate less than 256 bytes at a time.
	[532023f7b]

2023-01-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/lbuf.c:
	sudo_lbuf_expand: round nearest power of two instead of multiple of
	256.
	[dc9ef6902]

	* LICENSE.md:
	Update copyright year.
	[dd934d6a2]

	* include/sudo_lbuf.h, lib/util/lbuf.c:
	sudo_lbuf_expand: check for possible integer overflow The numeric
	fields in struct sudo_lbuf are now unsigned so that wraparound is
	defined, this make the overflow checks simpler. Problem deteced by
	oss-fuzz using the fuzz_sudoers fuzzer.
	[13df52889]

	* MANIFEST, lib/iolog/iolog_json.c,
	lib/iolog/regress/iolog_json/test3.in,
	lib/iolog/regress/iolog_json/test3.out.ok:
	Decode \u00XX in a JSON string now that we escape control chars. We
	don't write Unicode to the log.json file, only 8-bit ASCII.
	[6b80ab74e]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/hexchar.c, lib/util/regress/hexchar/hexchar_test.c,
	lib/util/util.exp.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/match_digest.c, plugins/sudoers/parse.h,
	plugins/sudoers/toke_util.c:
	Move hexchar() from the sudoers plugin to lib/util.
	[e5d98da01]

	* lib/util/mkdir_parents.c:
	sudo_open_parent_dir: adjust loop terminating condition Checking for
	ep < pathend should be a bit clearer than ep != '\0' and has the
	advantage of working when pathend doesn't point to a NUL byte. No
	intended change in behavior.
	[0cb383511]

	* lib/iolog/iolog_mkdtemp.c:
	iolog_mkdtemp: fix failure when the specified path contains
	subdirectories. This fixes a bug introduced in sudo 1.9.12.
	[311d8e82d]

	* lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c:
	check_iolog_mkpath: fix exit value
	[bfd7d586b]

2023-01-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #227 from sohomdatta1/integer_underflow

	Prevent integer underflow due to environment variable
	[6f9485467]

2023-01-02  Sohom  <sohomdatta1+git@gmail.com>

	* plugins/sudoers/env.c:
	Prevent integer underflow due to environment variable

	Gaurd against replacing quotes when the environment variable val_len
	is 1.
	[761ffb3bf]

2023-01-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/regex.c:
	glibc allows the ',' in {low,high} to be escaped with a backslash.
	Adjust bound parsing to match this.
	[8b5037a21]

2022-12-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Fix logic goof in 05781ba6f1f3, disable replacements when fuzzing.
	Not the other way around.
	[acee3ea6e]

2022-12-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, docs/sudo_plugin_python.man.in,
	docs/sudo_plugin_python.mdoc.in, docs/sudoers.man.in,
	docs/sudoers.mdoc.in:
	Substitute python plugin file name in sudo_plugin_python
	documentation. Also use prefix for group plugin fallback path
	section in sudoers manual.
	[4b0dc2eec]

	* lib/iolog/Makefile.in,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.dict,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.dict:
	Use correct dictionary file format. Also use the new dictionaries in
	the Makefile fuzz target.
	[ad55f8cce]

	* MANIFEST, lib/iolog/regress/corpus/seed/log_legacy/less.log,
	lib/iolog/regress/corpus/seed/log_legacy/smtpctl.log,
	lib/iolog/regress/corpus/seed/log_legacy/vi.log,
	lib/iolog/regress/corpus/seed/timing/timing.5,
	lib/iolog/regress/corpus/seed/timing/timing.6,
	lib/iolog/regress/corpus/seed/timing/timing.7,
	lib/iolog/regress/corpus/seed/timing/timing.8,
	lib/iolog/regress/corpus/seed/timing/timing.9:
	Add some addition entries for the I/O log fuzzer seed corpus.
	[224a3b647]

	* MANIFEST, lib/iolog/regress/fuzz/fuzz_iolog_legacy.dict,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.dict:
	Add dictionaries for fuzz_iolog_legacy and fuzz_iolog_timing.
	[148e5ad95]

	* include/sudo_fatal.h:
	Don't send warn/fatal output to the debug file when fuzzing.
	[774b3c6e6]

	* lib/util/getentropy.c:
	Back out the genentropy.c portion of c648cfe9ff0f We don't need to
	special-case FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION now that we
	use the glibc arc4random() where available.
	[a9a3a8e37]

2022-12-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c,
	lib/util/regress/fuzz/fuzz_sudo_conf.c,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Use initprogname(), not setprogname() in the fuzzers. This results
	in better coverage for progname.c.
	[91d7592e8]

	* lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_conf/test1.out.ok,
	lib/util/regress/sudo_conf/test2.out.ok,
	lib/util/regress/sudo_conf/test3.out.ok,
	lib/util/regress/sudo_conf/test4.out.ok,
	lib/util/regress/sudo_conf/test5.out.ok,
	lib/util/regress/sudo_conf/test6.out.ok,
	lib/util/regress/sudo_conf/test7.out.ok:
	Add probe_interfaces and intercept_path.
	[206155e60]

	* lib/util/regress/fuzz/fuzz_sudo_conf.c:
	Exercise getter functions.
	[bd9886851]

	* configure, configure.ac:
	Avoid using our function replacements when fuzzing (where possible).
	We don't want to fuzz the function replacements themselves as this
	can skew the coverage reports.
	[3068ec000]

	* plugins/python/regress/check_python_examples.c:
	Disable sudo_debug tests when fuzzing. The debug code is disable
	when fuzzing is enabled to avoid coverage issues.
	[3f095ff1b]

	* lib/util/fatal.c, lib/util/getentropy.c, lib/util/sudo_conf.c:
	Avoid compiling some code paths that are unreachable when fuzzing.
	[2e9e1c80f]

	* plugins/sudoers/regress/serialize_list/check_serialize_list.c:
	Plug memory leak.
	[8a5e9ffb4]

2022-12-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/fuzz/fuzz_policy.dict:
	Update fuzz_policy keywords to match current policy settings.
	[47a211f19]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.dict:
	Add example users and groups to the dictionary.
	[a7c1b78c6]

	* plugins/sudoers/env.c, plugins/sudoers/sudoers.c,
	src/parse_args.c:
	parse_args: an environment variable may not start with '='. Also
	check VAR=val format in validate_env_vars() and add an error message
	if insert_env_vars() fails.
	[8eabbf8fd]

	* plugins/sudoers/env.c:
	rebuild_env: avoid a potential NULL dereference in fuzz_policy
	[c82059989]

	* plugins/sudoers/sudoers.c:
	sudoers_policy_main: plug memory leak of iolog_path on error.
	[b69ffd347]

	* plugins/sudoers/env.c:
	rebuild_env: avoid a potential NULL dereference in fuzz_policy
	[8e8a22b8e]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	The contents of the env_add array should not include the leading
	"env=" prefix. The previous fix for this was incomplete.
	[bca945f07]

	* plugins/sudoers/env.c:
	validate_env_vars: more efficient errbuf handling Also avoid
	appending to errbuf if it is already full.
	[9c4271f73]

2022-12-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.man.in, docs/sudo.mdoc.in:
	Document that -k does not interfere with sudo on other terminals.
	This should help clarify the difference between "sudo -k" and "sudo
	-K".
	[95a6c0459]

	* lib/util/regex.c, lib/util/regress/regex/regex_test.c:
	Check for bound values larger than 255 and reject them. This is to
	prevent the fuzzers from running out of memory.
	[ee5b43280]

	* scripts/pp:
	Use the POSIX shell "command -v" instead of "which" to find
	programs. Fix false detection of init.d/service status.
	[adf2a432a]

	* etc/sudo.pp:
	Fix example dir mode on RedHat/Fedora.
	[519a00580]

	* etc/sudo.pp:
	Use sed instead of ed to modify the packaged sudoers file. Some
	Linux distros do not include /bin/ed by default.
	[e0fa2ec85]

2022-12-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in:
	Use @intercept_file@ and @noexec_file@ like the example file.
	[048b843e6]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	There is a @pam_login_service@ substitution but no @pam_service@.
	Just use sudo instead of @pam_service@.
	[772fc914a]

	* examples/sudo.conf.in:
	Use @sudoers_plugin@ instead of @sudoers_module@.
	[0354ec6a1]

	* docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.mdoc.in, docs/visudo.man.in,
	docs/visudo.mdoc.in:
	Use @sudoers_plugin@ instead of @sudoers_module@.
	[eeea67e70]

	* INSTALL.md, NEWS, config.h.in, configure, configure.ac,
	docs/UPGRADE.md, scripts/config.guess, scripts/config.sub:
	sudo 1.9.13 Document the changes to AIX plugins in docs/UPGRADE.md
	and regenerate configure using the latest autoconf from git.
	[f6e0e87ba]

	* scripts/build_pkgs:
	Remove anything after whitespace in MANIFEST when building tarball.
	This is consistent with how sudo's Makefile builds the tarball.
	[702f21f7f]

	* MANIFEST:
	Zap trailing whitespace.
	[4baa6e103]

	* MANIFEST, docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in,
	docs/sudo_plugin_python.man.in, docs/sudo_plugin_python.mdoc.in,
	examples/sudo.conf.in,
	lib/util/regress/corpus/seed/sudo_conf/sudo.conf.1,
	lib/util/regress/corpus/seed/sudo_conf/sudo.conf.2,
	lib/util/regress/corpus/seed/sudo_conf/sudo.conf.3,
	lib/util/regress/fuzz/fuzz_sudo_conf.dict,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_conf/test1.in,
	lib/util/regress/sudo_conf/test1.out.ok,
	lib/util/regress/sudo_conf/test2.out.ok,
	lib/util/regress/sudo_conf/test3.out.ok,
	lib/util/regress/sudo_conf/test4.out.ok,
	lib/util/regress/sudo_conf/test5.out.ok,
	lib/util/regress/sudo_conf/test6.out.ok,
	lib/util/regress/sudo_conf/test7.out.ok,
	lib/util/regress/sudo_conf/test8.err.ok,
	lib/util/regress/sudo_conf/test8.in,
	lib/util/regress/sudo_conf/test8.out.ok, lib/util/sudo_conf.c:
	Remove developer mode from sudo.conf, it is no longer used.
	[50958a05d]

	* MANIFEST, plugins/python/Makefile.in,
	plugins/python/python_importblocker.c,
	plugins/python/python_plugin_common.c,
	plugins/python/regress/check_python_examples.c,
	plugins/python/regress/testdata/sudo.conf.developer_mode,
	plugins/python/regress/testdata/sudo.conf.normal_mode,
	plugins/python/regress/testhelpers.c,
	plugins/python/regress/testhelpers.h,
	plugins/python/sudo_python_module.h:
	Remove the Python plugin import blocker code. The sudo.conf file is
	considered a trusted source of information and these checks suffer
	from TOCTOU issues anyway.
	[fa1b86fca]

	* plugins/sudoers/group_plugin.c, src/load_plugins.c:
	Remove the owner and mode checks when loading a sudo plugin. The
	sudo.conf file is considered a trusted source of information and
	these checks suffer from TOCTOU issues anyway. The checks complicate
	loading of shared objects since we need to perform fallback
	processing twice.
	[73abff2d0]

	* lib/util/sudo_dso.c, src/load_plugins.c:
	sudo_dso_load: add AIX fallback path from shlib.so to
	shlib.a(shlib.so). If the .so file is missing but the .a file
	exists, try to dlopen() the AIX .a file using the .so name as the
	member. We need to avoid breaking existing configurations if the
	type of AIX shared library changes when sudo is upgraded.
	[97fb4eae7]

	* configure, configure.ac, docs/sudo.conf.man.in,
	docs/sudo.conf.mdoc.in, docs/sudoers.man.in, docs/sudoers.mdoc.in,
	docs/visudo.man.in, docs/visudo.mdoc.in, examples/sudo.conf.in,
	pathnames.h.in, src/load_plugins.c, src/preload.c:
	Use AIX-style shared libraries on AIX by default instead of
	SVR4-style. This removes the need to use the -brtl linker flag which
	can cause problems when there are both a .so and .a version of the
	same library but with different versions. This was particularly
	problematic when using the AIX freeware version of OpenSSL. The
	--with-aix-soname=svr4 option can be used to build SVR4-style shared
	libs instead.
	[206700c3f]

	* plugins/sudoers/sudoers_version.h:
	Bump SUDOERS_GRAMMAR_VERSION to 50 for the new list pseudo-command.
	[5165fb9b2]

2022-12-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/Makefile.in, docs/sudo.man.in, docs/sudo.mdoc.in,
	docs/sudo_plugin_python.man.in, docs/sudo_plugin_python.mdoc.in,
	docs/sudoreplay.man.in, docs/sudoreplay.mdoc.in:
	Use ".Sy root" instead of ".Em root" when talking about the root
	user. Replace MANDOCPROG with "mandoc" now that MANDOCPROG has been
	removed.
	[11aa808ef]

2022-12-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/sudo_dso.c, src/load_plugins.c:
	Fix support for AIX-style path(module) syntax in sudo.conf Plugin
	lines.
	[49f2d6707]

	* :
	Merge pull request #226 from rtczza/main

	debug_return_int use error
	[27aff55ac]

2022-12-23  wanglujun  <wanglujun@uniontech.com>

	* src/exec_pty.c:
	debug_return_int use error
	[5c495b5fe]

2022-12-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.man.in, docs/sudo.mdoc.in:
	Mention the "list" privilege in the description of the -U option.
	[3040bf54c]

	* docs/sudo.man.in, docs/sudo.mdoc.in, src/parse_args.c,
	src/sudo_usage.h.in:
	Add [arg ...] after command in SYNOPSIS and usage output. Use Ar
	markup when referring to the command and args.
	[eada918bb]

2022-12-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_preload.c:
	fmtstr: call va_arg() for %c when computing length. Even though we
	don't need to read the actual char to know its length, we do need to
	consume it to get the correct value for the next format.
	[9d5ed2f9e]

	* configure, m4/sanitizer.m4:
	SUDO_CHECK_SANITIZER: quote "$3" in awk script so m4 doesn't eat it.
	[e64799723]

	* lib/util/regress/json/json_test.c:
	Add missing sudo_json_free().
	[d7b367393]

	* MANIFEST, lib/util/Makefile.in, lib/util/regex.c,
	lib/util/regress/regex/regex_test.c:
	check_pattern: check bounds as a repetition operator too. Add regess
	to verify check_pattern() via sudo_regex_compile().
	[0614c1f62]

	* lib/util/regex.c:
	Instead of collapsing duplicate repetition characters, reject them.
	This is implementation-specific behavior--some regcomp(3) will
	reject duplicate repetition characters (BSD), others will try to
	support them (Glibc) but may allocate excessive amounts of memory.
	[f0530b66d]

	* MANIFEST, docs/CONTRIBUTORS.md, po/sq.mo, po/sq.po:
	New Albanian translation from translationproject.org
	[2f32b45d5]

2022-12-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, include/sudo_json.h, lib/eventlog/eventlog.c,
	lib/iolog/iolog_loginfo.c,
	lib/iolog/regress/iolog_json/check_iolog_json.c,
	lib/util/Makefile.in, lib/util/json.c,
	lib/util/regress/json/json_test.c, lib/util/util.exp.in,
	logsrvd/logsrvd_local.c, plugins/audit_json/audit_json.c,
	plugins/sudoers/cvtsudoers_json.c:
	Add basic regress for JSON functions. Fix a bug in escaped control
	character handling. Roll back changes to buffer if
	sudo_json_add_value() fails.
	[797cc917a]

	* plugins/python/regress/iohelpers.c,
	plugins/python/regress/testhelpers.c:
	Add missing memory allocation failure checks. Inspired by GitHub PR
	#221
	[0e6482e82]

2022-12-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/json.c:
	Escape control characters in strings.
	[e706204f5]

2022-12-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.man.in, docs/sudo.mdoc.in:
	Mention the audit plugin in the "Process model" section. Remove
	extraneous information describing how sudo may exec the command
	directly, this is already included in the non-pty section.
	[c184a241a]

2022-12-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.c:
	Plug a memory leak of list_cmnd in the fuzzers.
	[62dd5734a]

	* plugins/sudoers/cvtsudoers.c:
	Suppress PVS Studio watning about reassigning a variable the same
	value. Working around the warning would result in more fragile code.
	[25c709c4d]

	* plugins/python/python_plugin_audit.c,
	plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_policy.c:
	Fix some dead stores noted by PVS Studio. Since rc is initialized to
	SUDO_RC_ERROR there is no need to set it to SUDO_RC_ERROR again on
	failure if rc has not been changed since initialization.
	[f26a2e762]

	* lib/util/regress/multiarch/multiarch_test.c:
	Fix memory leak in multiarch_test to quiet leak sanitizer.
	[a04557c3d]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/logging.c, plugins/sudoers/match_command.c,
	plugins/sudoers/parse.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Add "list" pseudo-command to allow a user to list another user's
	privs. Previously, only root or a user with the ability to run any
	command as either root or the target user on the current host could
	use the -U option. For "sudo -l [-U otheruser] command", NewArgv[0]
	is now set to "list" (just like "sudo -l") and the actual command to
	be checked starts with NewArgv[1].
	[a514a6eed]

2022-12-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/codespell.exclude:
	Adjust a line to quiet codespell warning.
	[8c16c8faf]

2022-12-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in:
	Only build ChangeLog from a repo checkout, not a release tarball.
	The CODEOWNERS file is not present in the release tarball so we can
	use that when determining what is (or is not) a repo checkout.
	[934a8793b]

	* docs/CODEOWNERS:
	Add CODEOWNERS file, currently all owned by @millert.
	[95a6731ff]

	* .gitignore, .hgignore, Makefile.in:
	Only regenerate ChangeLog if there have been changes. Also check
	that "hg --version" or "git --version" works before using hg or git.
	Bug #1043.
	[179fd3247]

2022-12-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse.c:
	Fix potential crash introduced in the fix for GitHub issue #134. If
	a user's sudoers entry did not have any RunAs user's set, running
	"sudo -U otheruser -l" would dereference a NULL pointer. We need to
	compare the default RunAs user if the sudoers entry does not specify
	one explicitly. Problem reported by Andreas Mueller who also
	suggested a different solution in PR #219.
	[f5488d733]

	* scripts/build_pkgs:
	Defer installing the SIGCHLD handler until after non-job commands
	run. Lock the socket dir to avoid races in
	open_persistent_connection(). Also avoid using "ssh -f" since that
	may return before the socket is created. Strip carriage returns from
	log when running in a pty.
	[31684dccc]

2022-12-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, m4/sudo.m4:
	Fix a typo in SUDO_CHECK_NET_FUNC.
	[2e322c094]

	* lib/util/inet_ntop.c:
	Fix -Wsign-compare warning.
	[185fe31fe]

	* configure, m4/sudo.m4:
	Initialize "found" in SUDO_CHECK_NET_FUNC.
	[104a0294e]

	* configure, m4/sudo.m4:
	Fix pasto introduced in last commit.
	[11264cd49]

	* lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/python/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Fix failure in check targets when there is no UTF-8 C locale.
	[3df7b64d8]

	* configure, configure.ac, m4/sudo.m4:
	Add SUDO_CHECK_NET_FUNC to check functions in the network libraries.
	If a function is not found, check again with "-lsocket", "-linet",
	"-lsocket -lnsl", or "-lresolv". Also display network libs in final
	summary as well as the different linker flags.
	[3d2082cdf]

	* configure, m4/sudo.m4:
	Make sure HAVE_MAILLOCK_H is defined on Solaris 10.
	[f9639aca8]

	* configure, configure.ac:
	Remove extraneous "(cached)" line when the -C option is used. We do
	not need to call AC_CACHE_VAL() to ensure that a variable is cached,
	its name just needs to match the pattern *_cv_*.
	[2c97e7f47]

	* configure, m4/sudo.m4:
	Make path checks in sudo.m4 cachable.
	[3cdd044c6]

	* configure, configure.ac:
	Use AC_PATH_PROGS_FEATURE_CHECK to find mandoc/nroff. We don't use
	the NROFFPROG or MANDOCPROG any longer so no need to set those.
	[1b76f7612]

	* configure, configure.ac:
	Don't check for _sys_siglist if sys_siglist is found.
	[dd1eb1f6c]

	* configure, configure.ac:
	Fix check for sys_sigabbrev.
	[fd6484917]

2022-12-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Skip test for __func__ on C99 and above, avoid extra _sys_signame
	test.
	[29c36a3c1]

	* MANIFEST, aclocal.m4, configure, configure.ac, m4/gettext.m4:
	Move gettext checks to m4/gettext.m4
	[38ffd03cd]

	* MANIFEST, aclocal.m4, configure, configure.ac, m4/ldap.m4:
	Move LDAP library checks to m4/ldap.m4 and make more tests
	cacheable.
	[12da6bd0c]

	* MANIFEST, aclocal.m4, configure, configure.ac, m4/openssl.m4:
	Move OpenSSL/wolfSSL checks to m4/openssl.m4
	[00e22508a]

	* MANIFEST, aclocal.m4, configure, configure.ac, m4/pie.m4:
	Move PIE executable checks to m4/pie.m4
	[f515c238b]

	* MANIFEST, aclocal.m4, configure, configure.ac, m4/sanitizer.m4:
	Move address sanitizer and fuzzer checks to m4/sanitizer.m4
	[4220e6631]

	* MANIFEST, aclocal.m4, configure, configure.ac, m4/visibility.m4:
	Move symbol visibility checks to m4/visibility.m4
	[ea5668086]

	* MANIFEST, aclocal.m4, configure, configure.ac, m4/hardening.m4:
	Move hardening checks to m4/hardening.m4
	[5bf5a4e26]

	* configure, configure.ac, m4/sudo.m4:
	Make cpp variadic arguments check into a macro and move to sudo.m4.
	Also move the PVS-Studio.cfg generation to sudo.m4.
	[8718fc208]

2022-12-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/snprintf.c:
	Sync with OpenBSD.
	[ee6420ad5]

	* :
	Merge pull request #218 from sohomdatta1/snprintf

	[snprintf] Check for '\0' to prevent undef memory read
	[31152ba4d]

2022-12-03  Sohom  <sohomdatta1+git@gmail.com>

	* lib/util/snprintf.c:
	[snprintf] Check for '\0' to prevent undef memory read
	[8ac89f8d0]

2022-12-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/tsdump.c, plugins/sudoers/visudo.c,
	src/parse_args.c, src/regress/noexec/check_noexec.c:
	Place C23 attributes before keywords in function declarations. In
	practice this means we must use "sudo_noreturn static foo(void)"
	instead of "static sudo_noreturn foo(void)".
	[e707ffe58]

2022-11-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/build_pkgs:
	Convert from using IPC::Open3 to IPC::Run. Run tests in a pty so
	check_ttyname works as expected. Explicitly set short command line
	options letters in GetOptions(). Add a debug flag to help see what
	is going on internally. Add hook for die() to kill running jobs when
	we are dying. SSH_AGENT_PID will not be present if the agent is
	forwarded. In close_persistent_connections() only close active
	connections.
	[a44a005f0]

2022-11-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure.ac, include/sudo_compat.h:
	Use C23 [[__fallthrough__]] and [[__noreturn__]] attributes if
	supported. If the C23 attributes are not supported, use gcc-style
	attributes where possible.
	[16ae61dcd]

	* configure, configure.ac:
	Move the check for the fallthrough attribute outside the warnings
	block. Use AX_APPEND_FLAG instead of addind to CFLAGS directly.
	[cfdcd96b6]

2022-11-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/build_pkgs:
	The distributed package build script I use to build all sudo
	packages. This is not included in the release tarball because it is
	of limited use to other people.
	[63e58cbbe]

2022-11-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in:
	Pass the list of files to include in the tarball on stdin. This
	avoids any limit on the size of argv.
	[a9cab46f8]

2022-11-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #214 from BornThisWay/1124_repeated_invocation

	check_syntax(): Remove duplicate calls to init_defaults()
	[9a3669816]

2022-11-24  modric  <pioneerbtw7@163.com>

	* plugins/sudoers/visudo.c:
	check_syntax(): Remove duplicate calls to init_defaults()
	[26cf125fb]

2022-11-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sample/sample_plugin.c:
	build_command_info: free command_info on failure. Once upon a time,
	command_info was a stack variable, now it is dynamically allocated.
	Coverity CID 299987.
	[46d286947]

	* plugins/sample/sample_plugin.c:
	Better handling of out-of-memory conditions.
	[eb4ae10ab]

	* plugins/group_file/group_file.c:
	Keep group file open until the call to myendgrent(). This restores
	the previous behavior.
	[9fff5a5fa]

	* lib/util/json.c, plugins/group_file/getgrent.c,
	plugins/sudoers/cvtsudoers_merge.c, plugins/sudoers/env.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_conf.c, plugins/sudoers/log_client.c,
	plugins/sudoers/match_command.c, plugins/sudoers/strvec_join.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c, src/sudo.c:
	Eliminate a few harmless dead stores. Quiets warnings from Infer.
	[f066ff9e0]

	* plugins/sudoers/ldap_util.c:
	sudo_ldap_parse_option: add explicit NULL check for strchr(). This
	should not be needed since we only use the returned pointer if it is
	larger than the string passed to strchr(). Quiets a warning from
	Infer.
	[2f97da316]

	* logsrvd/logsrvd_journal.c:
	journal_fdopen: free journal_path and close journal before setting
	Fixes a potential resource leak that currently cannot happen. Quiets
	a warning from Infer.
	[a0d9963fe]

	* plugins/sudoers/ldap.c:
	sudo_ldap_result_add_entry: check sudo_ldap_get_values_len() return
	value. Previously, we just compared the error code with
	LDAP_NO_MEMORY when checking for sudoOrder since this is the only
	error we care about. We now return NULL for LDAP_NO_MEMORY and
	ignore other errors. Quiets a warning from Infer.
	[a37ecb266]

	* plugins/group_file/getgrent.c, plugins/sudoers/tsgetgrpw.c,
	plugins/sudoers/tsgetgrpw.h:
	Refactor code to open passwd/group file and add
	setpassent/setgroupent. This makes the "stayopen" semantics match
	the system passwd/group functions. The getpwent/getgrent functions
	now open the database if it is not already open.
	[1c9c7bd34]

	* plugins/sudoers/Makefile.in, plugins/sudoers/gram.h:
	gram.h: #line directives should reference gram.h not y.tab.h.
	[4d7823e51]

	* scripts/mkpkg:
	Use clang, not /usr/bin/cc on FreeBSD and macOS. While /usr/bin/cc
	_is_ clang on those platforms, some static analyzers get confused if
	we don't run it as clang.
	[7ac13204f]

2022-11-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #212 from BornThisWay/1122_null_deref

	sudo_rcstr_dup: Fix potential NULL pointer deref
	[da7a5ecab]

2022-11-22  modric  <pioneerbtw7@163.com>

	* lib/util/rcstr.c:
	sudo_rcstr_dup: Fix potential NULL pointer deref
	[dbfd84301]

2022-11-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/check.c:
	Add a reminder to the default lecture that the password will not
	echo. This line is only displayed when the pwfeedback option is
	disabled. GitHub issue #195.
	[339626729]

	* :
	Merge pull request #210 from BornThisWay/1121_typo

	Fix some typos
	[c3f138eaa]

2022-11-21  modric  <pioneerbtw7@163.com>

	* plugins/python/regress/testhelpers.h, plugins/sudoers/parse.c:
	Fix some typos
	[cbdc4883d]

2022-11-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #208 from BornThisWay/1121_return

	intercept_read: Print and then return.
	[6a5546b11]

2022-11-21  modric  <pioneerbtw7@163.com>

	* src/exec_intercept.c:
	intercept_read: Print and then return.
	[b1af59aa5]

2022-11-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #205 from BornThisWay/1119_access_null_pointer

	sudo_mmap_strdup_v1: Fix potential NULL pointer deref
	[496ae6e6f]

2022-11-19  modric  <pioneerbtw7@163.com>

	* lib/util/mmap_alloc.c:
	sudo_mmap_strdup_v1: Fix potential NULL pointer deref
	[1eabf1357]

2022-11-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo_intercept.c:
	copy_vector: plug memory leak in error path Only the array was being
	freed, not the contents. GitHub issue #202.
	[9c694e9a6]

2022-11-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	Better matching of macOS version to SDK path.
	[981cc2f8e]

	* :
	Merge pull request #200 from BornThisWay/fix_mem_leak_converse

	Fix memory leak of pass in converse().
	[ad220d72d]

	* plugins/sudoers/auth/passwd.c:
	sudo_passwd_cleanup: Set auth->data to NULL after freeing. GitHub
	issue #201
	[b3834bbf2]

2022-11-17  modric  <pioneerbtw7@163.com>

	* plugins/sudoers/auth/pam.c:
	Fix memory leak of pass in converse().
	[f5cae905c]

2022-11-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac:
	Use AC_SYS_YEAR2038 instead of setting _TIME_BITS by hand.
	[004489396]

	* configure, m4/ax_append_flag.m4, m4/ax_check_compile_flag.m4,
	m4/ax_func_snprintf.m4, m4/ax_prog_cc_for_build.m4:
	Update macros from autoconf-archive.
	[4af5e6293]

	* plugins/sudoers/regress/corpus/seed/ldif/pr196.ldif,
	plugins/sudoers/regress/visudo/test3.sh:
	Fix typo; excerise -> exercise
	[fe8e1f3d3]

	* config.h.in, configure, scripts/config.guess, scripts/config.sub:
	Regenerate with the autoconf 2.72a pre-release.
	[920d38494]

	* configure.ac, m4/ax_func_getaddrinfo.m4, m4/sudo.m4:
	Replace `foo` in descriptions with 'foo'
	[03559d077]

	* configure.ac:
	Fix insufficient quoting in AC_CHECK_LIB() calls.
	[cc0615059]

	* autogen.sh:
	If AUTOCONF_VERSION is unset, use version 2.71 not 2.69.
	[096eacb21]

2022-11-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Add -Wvla and -Walloca to --enable-warnings
	[bef72f76f]

2022-11-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/pwutil.c:
	sudo_debug_group_list: short-circuit if groups is NULL
	[3ecfa025b]

	* configure, configure.ac:
	configure: only check for getauxval() if getentropy() is missing.
	[3cfba230c]

	* config.h.in, configure, configure.ac:
	Remove checks for random() and lrand48(), they are no longer used.
	Also remove duplicate checks for arc4random() and getentropy().
	[28dbad334]

	* configure, configure.ac:
	Skip check for cpp variadic macro support if the compiler supports
	C99.
	[3d0fcc0ff]

	* configure, configure.ac:
	HI-UX/MPP is based on OSF-1, not HP-UX Completely untested.
	[6b005e811]

	* configure, configure.ac:
	Only check for utmps.h on HP-UX.
	[a142bc183]

	* configure, configure.ac:
	Only check for sys/syscall.h on Linux. We only use it in the
	Linux-specific getentropy() emulation code.
	[a3684d7f3]

	* config.h.in, configure, configure.ac:
	configure: avoid running unnecessary tests on modern systems. Remove
	AC_SYS_POSIX_TERMIOS, AC_TYPE_MODE_T, AC_TYPE_UID_T. Add missing
	checks for int16_t, uint16_t, int32_t, and int64_t. Only check for
	intmax_t, uintmax_t and bit-width types if missing both inttypes.h
	and stdint.h. Remove unused clockid_t replacement.
	[feba299f2]

	* MANIFEST, plugins/sudoers/regress/cvtsudoers/test40.out.ok,
	plugins/sudoers/regress/cvtsudoers/test40.sh:
	Add a regress check for the cvtsudoers filter crash. GitHub issue
	#198.
	[b8e9fc1b1]

2022-11-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse_ldif.c:
	Fix a potential use-after-free bug with cvtsudoers filtering. In
	role_to_sudoers() when merging a privilege to the previous one where
	the runas lists are the same we need to re-use the runas lists of
	the last command in the previous privilege, not the first.
	Otherwise, the check in free_cmndspec() will not notice the re-used
	runas lists. Reported/analyzed by Sohom Datta. GitHub issue #198.
	[264326de5]

2022-11-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in, lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/python/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	The name of the C locale w/ UTF-8 support is not always C.UTF-8. Use
	a pattern to find it (if present) and use that value instead of
	hard-coding C.UTF-8. This works around a leak sanitizer crash on
	certain inputs.
	[5683fc6f7]

2022-11-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/corpus/seed/ldif/invalid_b64.ldif,
	plugins/sudoers/regress/corpus/seed/ldif/pr196.ldif,
	plugins/sudoers/regress/corpus/seed/ldif/sample.ldif,
	plugins/sudoers/regress/corpus/seed/ldif/valid_b64.ldif,
	plugins/sudoers/regress/cvtsudoers/test39.sh:
	Copy some LDIF test data from the cvtsudoers tests to the seed
	corpus. This includes a test to exercise the fix in PR #196.
	[75008a057]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Set LDAP base for sudoers_parse_ldif(). Without this set the fuzzer
	will not exercise the dn parsing.
	[455f250ac]

	* src/exec_ptrace.h:
	Include linux/elf.h, not elf.h to make sure we get
	NT_ARM_SYSTEM_CALL. The NT_PRSTATUS define is present in both files.
	[54fd6e11c]

2023-01-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Add back the linker check for -fstack-clash-protection. This is
	expected to fix GitHub issue #231.
	[0b1f35c74]

2023-01-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/editor.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/visudo.c:
	sudoedit: do not permit editor arguments to include "--"
	(CVE-2023-22809) We use "--" to separate the editor and arguments
	from the files to edit. If the editor arguments include "--", sudo
	can be tricked into allowing the user to edit a file not permitted
	by the security policy. Thanks to Matthieu Barjole and Victor
	Cutillas of Synacktiv (https://synacktiv.com) for finding this bug.
	[e6c720ac8]

	* lib/iolog/iolog_mkdtemp.c:
	iolog_mkdtemp: fix pasto in last commit Set mode to iolog_dirmode,
	not iolog_filemode
	[b80c08eb5]

2022-12-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse.c:
	Fix potential crash introduced in the fix for GitHub issue #134. If
	a user's sudoers entry did not have any RunAs user's set, running
	"sudo -U otheruser -l" would dereference a NULL pointer. We need to
	compare the default RunAs user if the sudoers entry does not specify
	one explicitly. Problem reported by Andreas Mueller who also
	suggested a different solution in PR #219.
	[f4e169610]

2023-01-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/iolog_mkdtemp.c:
	iolog_mkdtemp: fix failure when the specified path contains
	subdirectories. This fixes a bug introduced in sudo 1.9.12.
	[6a7e6e381]

2022-11-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.h:
	Include linux/elf.h, not elf.h to make sure we get
	NT_ARM_SYSTEM_CALL. The NT_PRSTATUS define is present in both files.
	[82150340a]

2022-11-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_compat.h:
	Remove CMSG_* compatibility macros, they are no longer used.
	[3e8497b5c]

	* lib/util/multiarch.c, lib/util/sudo_dso.c:
	Add missing include of sys/stat.h
	[ecb5526fc]

	* include/sudo_util.h:
	Move forward declaration of struct stat before its first use.
	[8b06bdc12]

	* plugins/sudoers/regress/cvtsudoers/test28.sh,
	plugins/sudoers/regress/cvtsudoers/test29.sh,
	plugins/sudoers/regress/cvtsudoers/test33.sh,
	plugins/sudoers/regress/cvtsudoers/test39.sh:
	Use a consistent base when testing cvtsudoers conversion from ldif.
	[0b1335f54]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/cvtsudoers/test39.out.ok,
	plugins/sudoers/regress/cvtsudoers/test39.sh,
	plugins/sudoers/regress/harness.in:
	Test parsing LDIF when a backslash is the last char of the file. If
	run with address sanitizer, this test will crash when the fix in
	ceaf706ab74b is reverted.
	[8b898b2ca]

	* :
	Merge pull request #196 from sohomdatta1/main

	Prevent cvtsudoers from reading into undefined memory
	[685150586]

2022-11-09  Sohom  <sohom.datta@learner.manipal.edu>

	* plugins/sudoers/parse_ldif.c:
	[cvtsudoers]: Prevent sudo from reading into undefined memory
	[902271f44]

2022-11-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/passwd.c:
	sudo_passwd_verify: zero out des_pass before returning.
	[9f948224a]

2022-11-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_nopty.c, src/regress/intercept/test_ptrace.c,
	src/sudo_exec.h, src/suspend_nopty.c:
	Pass sudo's process ID to suspend_sudo_nopty() since we already know
	it. Saves an unnecessary getpid(2) call.
	[045d08bec]

	* src/exec_pty.c:
	Don't kill the parent process group on suspend if it is not sudo's
	pid. If sudo is not the process group leader we must only send the
	suspend signal to sudo itself. When sudo is run via a shell script,
	it usually has the same process group as the shell script
	interpreter. We do not want to suspend the script itself when the
	command run by sudo is suspended.
	[f87fac3b5]

	* src/exec_nopty.c:
	Call terminate_command() with use_pgrp = false when not running in a
	pty. When sudo runs a command in the user's existing terminal the
	command is run in the same process group as sudo itself. The proper
	way to terminate it is to use kill(2), not killpg(3)
	[bbe4fbaaa]

	* src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c,
	src/sudo_exec.h:
	Fix handling of signal forwarding when running commands in a script.
	We need to forward signals from a process in the same pgrp if the
	pgrp leader is not either sudo or the command itself.
	[36742deec]

	* src/regress/intercept/test_ptrace.c:
	Make test_ptrace compile again after recent changes.
	[c7071f6da]

	* src/exec_intercept.c, src/exec_intercept.h, src/exec_ptrace.c:
	Update the cwd for log_subcmds too. Fixes a problem for
	intercept_method=trace when running a relative command from a
	different directory than what sudo ws started from. GitHub issue
	#194
	[8db1eb0c8]

2022-11-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_12p1 for changeset 39cf4d8052ff
	[1542269db]

	* :
	Merge sudo 1.9.12p1 from tip.
	[7a103879a]

	* NEWS, aclocal.m4, configure, configure.ac:
	sudo 1.9.12p1
	[3df1e9a07]

2022-11-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/host_port.c:
	Include time.h for struct timespec used by sudo_iolog.h.
	[7ba318470]

	* src/sudo.c:
	Display sudo_mode in hex in debug log. This makes it easier to match
	against the MODE_ defines.
	[b2c8e1b1b]

2022-11-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/bsdauth.c:
	bsdauth_verify: do not write to prompt, it is now const
	[7ec1ee0e5]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Store raw sudoers lines in the debug log. Also add a "sudoerslex"
	prefix to the token debug info in sudoers_trace_print().
	[d242261dd]

2022-10-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	The line numbers in sudoers_trace_print() were off by one. The line
	counter is incremented when a newline is seen so the output actually
	refers to the previous line.
	[966731311]

	* plugins/sudoers/auth/API, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.h:
	Make the second arg to the sudo auth verify function const. This may
	be either a plaintext password or a password prompt. Either way it
	should not be modified by the verify function.
	[4da22b101]

2022-10-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/passwd.c:
	Fix CVE-2022-43995, potential heap overflow for passwords < 8
	characters. Starting with sudo 1.8.0 the plaintext password buffer
	is dynamically sized so it is not safe to assume that it is at least
	9 bytes in size. Found by Hugo Lefeuvre (University of Manchester)
	with ConfFuzz.
	[bd209b9f1]

2022-10-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c:
	Move debugging info from hostname_matches() to host_matches().
	[c78e78dc5]

2022-10-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/pwutil.c:
	Add debugging to sudo_set_grlist() and sudo_set_gidlist().
	[6a3fb3fd7]

2022-10-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	configure: better test for -fstack-clash-protection The gcc
	front-end may accept -fstack-clash-protection even if the
	machine-specific code does not support it. We use a test program
	with a large stack allocation to try to cause the compiler to insert
	the stack clash protection code, or fail if not supported. GitHub
	issue #191
	[366217571]

	* configure, configure.ac:
	Check that compiler accepts -fstack-clash-protection and
	-fcf-protection. Previously, we only checked that linker accepted
	them. GitHub issue #191
	[6a2075b67]

2022-10-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	Fix compilation error on Linux/mips.
	[794449419]

2022-10-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_12 for changeset b53d725f7c88
	[3d2b84ed2]

	* :
	Merge sudo 1.9.12 from tip.
	[c684bf083]

	* src/Makefile.in:
	Regenerate dependencies for src/sesh.c.
	[802e500cc]

	* plugins/audit_json/Makefile.in,
	plugins/sample_approval/Makefile.in:
	Sync clean target with other Makefile.in files.
	[ebd285850]

	* Makefile.in, plugins/sample/Makefile.in:
	Build the sample plugin but do not install it by default. We no
	longer install the sample approval plugin.
	[8087604e5]

	* plugins/sample/sample_plugin.c:
	Adapt to current plugin API and fix warnings.
	[45ea24833]

2022-10-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Disable admin_flag by setting to NULL, not false. Found by cppcheck.
	[9b9404b6f]

	* NEWS:
	Bug #1042.
	[3a6083f04]

	* include/sudo_util.h, lib/util/fatal.c, lib/util/term.c,
	lib/util/util.exp.in, src/conversation.c:
	Only add trailing carriage return to messages if output is a raw
	tty. If output is being written to a terminal in "raw" mode, we need
	to add a carriage return after the newline to avoid "stair-step"
	output. However, we should not write the carriage return if the
	terminal is in "cooked" mode, output to a pipe, or output redirected
	to a file. Bug #1042.
	[803998d2b]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Make it clear that runas_default sets the default user for
	Runas_Spec. Also use mention runas_default in other parts of the
	manual, use @runas_default@ instead of root and add markup around
	user names. GitHub issue #186.
	[d744271a6]

	* lib/util/multiarch.c, lib/util/sudo_dso.c:
	Fix a typo, muti-arch -> multi-arch GitHub issue #185
	[3ca21f950]

2022-10-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention log_servers eventlog fix.
	[82db62ec6]

	* plugins/sudoers/policy.c:
	Don't NULL out the plugin close function when logging to a log
	server. If sudo calls execve(2) directly the accept info will not be
	sent. We also need the sudo front-end to wait until the command
	finishes to send the exit status.
	[e7db62f64]

2022-10-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md:
	Fix numbering in "Simple sudo installation"
	[d251dfd55]

2022-10-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	zlib 1.2.13 update
	[5c5ff3fda]

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/ro.mo, plugins/sudoers/po/ro.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/fr.mo, po/fr.po, po/ja.mo,
	po/ja.po, po/ka.mo, po/ka.po, po/ko.mo, po/ko.po, po/pl.mo,
	po/pl.po, po/ro.mo, po/ro.po, po/sr.mo, po/sr.po, po/sv.mo,
	po/sv.po, po/uk.mo, po/uk.po:
	Updated translations from translationproject.org
	[5dbb8ac6e]

	* lib/zlib/zconf.h.in:
	Don't define _LARGEFILE64_SOURCE or _LFS64_LARGEFILE. We don't need
	them and the missing prototype for crc32_combine_gen64() issue has
	been fixed upstream.
	[6185c4f84]

2022-10-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/zlib/compress.c, lib/zlib/crc32.c, lib/zlib/deflate.c,
	lib/zlib/deflate.h, lib/zlib/gzlib.c, lib/zlib/gzread.c,
	lib/zlib/gzwrite.c, lib/zlib/infback.c, lib/zlib/inflate.c,
	lib/zlib/inftrees.c, lib/zlib/inftrees.h, lib/zlib/trees.c,
	lib/zlib/uncompr.c, lib/zlib/zconf.h.in, lib/zlib/zlib.h,
	lib/zlib/zutil.c, lib/zlib/zutil.h:
	Update embedded copy of zlib to version 1.2.13. Fixes
	CVE-2022-37434.
	[51a1a7d63]

	* lib/util/fchownat.c:
	Add fchownat() for systems without it.
	[0be0757d6]

2022-10-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Update NEWS for 1.9.12.
	[23e1d3293]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update .pot files for 1.9.12
	[3b205bc41]

	* src/selinux.c, src/sesh.c, src/sudo_edit.c:
	Use getopt() and getopt_long() for sesh command line options.
	[3bdb58548]

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.in:
	Update the description of intercept_verify
	[8d5e59c8a]

2022-10-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/load_plugins.c:
	Silence a warning from the Solaris Studio compiler.
	[fbd8de027]

	* docs/sudo_plugin.man.in, docs/sudo_plugin.mdoc.in,
	include/sudo_eventlog.h, include/sudo_json.h, include/sudo_plugin.h,
	lib/eventlog/eventlog.c, lib/iolog/iolog_loginfo.c,
	lib/iolog/regress/iolog_json/check_iolog_json.c, lib/util/json.c,
	logsrvd/logsrvd_local.c, plugins/audit_json/audit_json.c,
	plugins/sudoers/sudoers.h, src/env_hooks.c, src/exec_intercept.c,
	src/net_ifs.c, src/sudo_intercept_common.c, src/sudo_plugin_int.h:
	Avoid a -Wshadow warning on Solaris 9.
	[57b5ff8e8]

	* lib/util/mmap_alloc.c:
	Fix a build error on Solaris 9.
	[0eb136d65]

2022-10-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse.c:
	Fix display of command tags and options in "sudo -l" when RunAs
	changes. A new line is started when RunAs changes which means we
	need to display the command tags and options again. GitHub issue
	#184
	[af83e3c10]

	* plugins/sudoers/fmtsudoers.c:
	Fix printing of MYSELF when listing another user's privileges. We
	need to use list_pw if it is set instead of user_name. GitHub issue
	#183
	[6a0f7ccc4]

	* NEWS:
	Update NEWS file with recent changes.
	[282d13532]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/multiarch.c, lib/util/regress/multiarch/multiarch_test.c,
	lib/util/sudo_dso.c, lib/util/util.exp.in, src/load_plugins.c:
	Apply multiarch rules when loading plugins too.
	[7e20e4b80]

2022-10-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/sudo_dso.c:
	sudo_dso_load: try multi-arch on Linux if we can't load the path.
	For example, if loading /usr/lib/libsss_sudo.so fails, try again
	with /usr/lib/x86_64-linux-gnu/libsss_sudo.so.
	[0b506a2d0]

	* MANIFEST, lib/util/Makefile.in,
	lib/util/regress/open_parent_dir/open_parent_dir_test.c:
	Add test for sudo open_parent_dir()
	[b37bf44cd]

	* MANIFEST, plugins/sudoers/regress/testsudoers/test19.out.ok,
	plugins/sudoers/regress/testsudoers/test19.sh:
	Add test for matching a literal "" command line argument as "" in
	sudoers. GitHub issue #182.
	[2e2dd48be]

2022-10-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/visudo.man.in, docs/visudo.mdoc.in, plugins/sudoers/visudo.c:
	Add -I flag to disable editing include files unless there is an
	error. This can be used when you only want to edit a single sudoers
	file unless there is a pre-existing syntax error.
	[fa952bfbb]

	* plugins/sudoers/match_command.c:
	Do not match a literal "" command line argument as "" in sudoers. If
	the empty string is specified in sudoers, no user args are allowed.
	GitHub issue #182.
	[575200e73]

	* lib/util/sudo_conf.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timestamp.c:
	sudo_secure_open_{file,dir}: always check thatreturn value is not
	-1. Avoids false positives from static analyzers that can't figure
	out that the fd is always valid when error is SUDO_PATH_SECURE.
	[3940020c9]

	* lib/iolog/iolog_mkdtemp.c:
	Correct return value when mkdtempat() fails.
	[59765dd36]

	* lib/util/mkdir_parents.c:
	sudo_open_parent_dir: stop before creating the last path component
	Fix a regression introduced in sudo 1.9.9 where the entire directory
	path was created instead of just the parent directory.
	[719b7f933]

2022-10-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in, scripts/log2cl.pl:
	Use "hg log --template" instead of "hg log --style".
	[371b974e0]

2022-09-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/strlcpy_unesc.c, plugins/sudoers/sudoers.c,
	src/parse_args.c:
	Mark code that escapes/unescapes "sudo -s cmd args..." for removal.
	A future version of the plugin API will defer any such escaping to
	the policy plugin so it can be configurable.
	[afaeb0ed5]

	* NEWS:
	Update with recent changes.
	[63efad271]

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in:
	Improve the description of JSON output.
	[6cd99d0b7]

2022-09-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md, etc/codespell.ignore, lib/eventlog/eventlog.c,
	plugins/group_file/getgrent.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/tsgetgrpw.h,
	src/exec_nopty.c:
	Fix typos found by codespell 2.2.1.
	[d2a13a815]

	* logsrvd/iolog_writer.c:
	Change max user-ID and group-ID from INT_MAX to UINT_MAX.
	[166e0e13b]

	* logsrvd/logsrvd_local.c:
	Add support for NumberList stored in an InfoMessage.
	[865d3cd0b]

	* logsrvd/iolog_writer.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd_local.c, plugins/sudoers/log_client.c:
	Add missing NULL checks for mandatory fields in protobuf messages.
	Also no longer reject an InfoMessage with an unknown value_case,
	just log and ignore it.
	[e6f2ad0ed]

2022-09-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/log_client.c:
	Don't send ttyname to log server if it is NULL. Otherwise the log
	server will reject the AcceptMessage because a NULL string is not
	allowed.
	[915042367]

	* src/exec_nopty.c:
	HP-UX has struct winsize in termios.h.
	[cf95f8d5a]

	* plugins/python/Makefile.in, src/Makefile.in:
	Regen dependencies
	[f360a8006]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in, src/exec.c,
	src/exec_nopty.c, src/exec_pty.c,
	src/regress/intercept/test_ptrace.c, src/sudo_exec.h,
	src/suspend_nopty.c:
	Add support for logging stdin/stdout/stderr in the non-pty exec
	path. If we are logging I/O but not terminal input/output (either
	because no terminal is present or because that is what the plugin
	requested), the non-pty exec path is now taken.
	[87b7209eb]

	* MANIFEST, src/Makefile.in, src/exec.c, src/exec_iolog.c,
	src/exec_nopty.c, src/exec_pty.c, src/regress/noexec/check_noexec.c,
	src/sudo_exec.h, src/sudo_intercept_common.c:
	Move exec code to call into I/O log plugin to exec_iolog.c. This
	will be shared with exec_nopty.c in the future to log
	stdin/stdout/stderr without running the command in a pty. Both
	exec_pty.c and exec_nopty.c now use the same closure.
	[803b4939b]

	* plugins/python/python_importblocker.c:
	Implement find_spec, not the deprecated find_module. Fixes a test
	failure due to find_module having removed from setuptools.
	[3ca9220e5]

2022-09-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/editor.c,
	plugins/sudoers/regress/editor/check_editor.c:
	copy_arg: fix copying an escaped backslash GitHub issue #179
	[e66f34d25]

2022-09-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, include/sudo_compat.h,
	lib/util/mktemp.c:
	Use mkdtempat_np() and mkostempsat_np() on macOS
	[d37710b0f]

2022-09-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_iolog.h, lib/iolog/iolog_mkdirs.c,
	lib/iolog/iolog_mkdtemp.c, lib/util/mkdir_parents.c,
	logsrvd/logsrvd.c, logsrvd/logsrvd_journal.c:
	Convert remaining uses of sudo_mkdir_parents() to
	sudo_open_parent_dir().
	[9d654482b]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/Makefile.in, scripts/mkdep.pl:
	Add fchownat() systems without it.
	[376d18b5d]

	* config.h.in, configure, configure.ac, include/sudo_compat.h,
	lib/util/mktemp.c, plugins/python/regress/iohelpers.h:
	Add mkdtempat() and mkostempsat() for systems without them.
	[86c108b50]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in, include/sudo_util.h,
	lib/util/secure_path.c, lib/util/sudo_conf.c,
	plugins/sudoers/regress/testsudoers/test11.out.ok,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestamp.c:
	Use sudo_secure_open_file() instead of sudo_secure_file() where
	possible. Both sudo_secure_open_file() and sudo_secure_open_dir()
	are now passed a struct stat pointer like sudo_secure_file() and
	sudo_secure_dir().
	[88ac5e09b]

	* include/sudo_util.h, lib/util/mkdir_parents.c,
	lib/util/secure_path.c, lib/util/util.exp.in,
	plugins/sudoers/timestamp.c:
	Fix potential TOCTOU when creating time stamp directory and file.
	[cbd52e705]

	* lib/util/mkdir_parents.c:
	sudo_mkdir_parents: just use memcpy() to copy the path component.
	Using snprintf() for this is overkill, we need to do the same length
	check either way.
	[8c482bfeb]

	* lib/util/Makefile.in:
	regen
	[e91620144]

2022-09-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/digest_gcrypt.c:
	Quiet libgcrypt run-time warning about not being initialized. Fixes
	Debian bug #1019428 and Ubuntu bug #1397663.
	[c823ca1e4]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/audit.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.h, plugins/sudoers/parse.c,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Split log_{input,output} into log_{stdin,ttyin} and
	log_{ttyout,stdout,stderr} If log_input is set, log_{stdin,ttyin}
	will be set as well. If log_output is set,
	log_{stdout,stderr,ttyout} will be set as well. This provides more
	fine-grained control over I/O logging and makes it possible to
	disable logging piped or redirected intput or output.
	[ce387a684]

	* LICENSE.md, include/protobuf-c/protobuf-c.h,
	lib/protobuf-c/protobuf-c.c:
	Update to protobuf-c 1.4.1 We already had all the relevant fixes so
	this is just cosmetic.
	[4ee0caf07]

	* src/load_plugins.c:
	new_container: no need to initialize container pointer in
	declaration. From Li zeming.
	[7464b300d]

2022-09-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Use tcpgid if passed from sudo front-end and use it in
	tty_present(). This can be used as another indicator that a terminal
	is present without having to open /dev/tty.
	[498985632]

2022-09-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure.ac, include/sudo_compat.h,
	include/sudo_debug.h, include/sudo_fatal.h, include/sudo_lbuf.h,
	include/sudo_util.h, lib/eventlog/eventlog.c,
	plugins/sudoers/check_aliases.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers.h, plugins/sudoers/defaults.c,
	plugins/sudoers/logging.h, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke.h,
	plugins/sudoers/tsdump.c, plugins/sudoers/visudo.c,
	src/parse_args.c, src/regress/noexec/check_noexec.c, src/sudo.h:
	Move gcc-style __attribute__ macros to config.h.in Renamed __malloc
	-> sudo_malloclike, __printflike -> sudo_printflike, __printf0like
	-> sudo_printf0like. Add sudo_noreturn instead of
	__attribute__((__noreturn__)). We do not use stdnoreturn.h since it
	has been deprecated in C23 in favor of the [[noreturn]] attribute.
	[304726a21]

2022-09-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in,
	docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in, docs/sudo.man.in,
	docs/sudo.mdoc.in, docs/sudo_logsrv.proto.man.in,
	docs/sudo_logsrv.proto.mdoc.in, docs/sudo_logsrvd.conf.man.in,
	docs/sudo_logsrvd.conf.mdoc.in, docs/sudo_logsrvd.man.in,
	docs/sudo_logsrvd.mdoc.in, docs/sudo_plugin.man.in,
	docs/sudo_plugin.mdoc.in, docs/sudo_sendlog.man.in,
	docs/sudo_sendlog.mdoc.in, docs/sudoers.ldap.man.in,
	docs/sudoers.ldap.mdoc.in, docs/sudoers.man.in,
	docs/sudoers.mdoc.in, docs/sudoers_timestamp.man.in,
	docs/sudoers_timestamp.mdoc.in, docs/sudoreplay.man.in,
	docs/sudoreplay.mdoc.in, docs/visudo.man.in, docs/visudo.mdoc.in:
	Remove most uses of the deprecated Li macro which has no effect.
	Also fix some other incorrect markup.
	[c34160807]

2022-09-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in, lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/python/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Use $(GREP) and $(EGREP) variables in Makefile.in files.
	[a32641190]

	* :
	Merge pull request #177 from a1346054/fixes

	Makefile.in: replace `egrep` and fix target name
	[f235390d1]

2022-09-12  a1346054  <36859588+a1346054@users.noreply.github.com>

	* Makefile.in:
	Fix incorrect makefile target name
	[5c1c276e2]

	* Makefile.in:
	Use `grep -E` instead of `egrep`
	[6fac1f518]

2022-09-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo_plugin.man.in, docs/sudo_plugin.mdoc.in:
	Document apparmor_profile, intercept_verify, and update_ticket.
	[3194d1667]

	* docs/sudo_plugin_python.man.in, docs/sudo_plugin_python.mdoc.in:
	Fix some of the markup to be more consistent with
	sudo_plugin.mdoc.in. Also reword a few awkward phrases.
	[5bcec0244]

	* docs/sudo_plugin.man.in, docs/sudo_plugin.mdoc.in:
	Use correct markup of function arguments and struct members. Also
	remove most uses of the deprecated Li macro which has no effect.
	[a7b200d01]

	* docs/sudo_plugin.man.in, docs/sudo_plugin.mdoc.in:
	Move the init_session() errstr description to where it belongs.
	[3f6ffead0]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Fix a typo
	[b85f95cb3]

2022-09-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	log_parse_error: make errstr const to quiet a -Wwrite-strings
	warning
	[d6c7abd42]

	* plugins/sudoers/visudo.c:
	Add __printf0like to visudo_track_error().
	[89a40741b]

2022-09-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.y:
	Back out unintended change in last commit.
	[7f169da83]

	* plugins/sudoers/gram.y, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h:
	It is possibble for sudoerserrorf() to be called with a NULL format.
	So log_parse_error() needs to check fmt for NULL before using it.
	[965e2a0c0]

2022-09-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/UPGRADE.md:
	Mention how to restore the historic core resource limit behavior.
	[67be67385]

2022-09-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Update with latest changes.
	[2815b77e4]

2022-09-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/audit.c:
	Set MODE_POLICY_INTERCEPTED for log_subcmds too. This fixes a
	problem where sub-commands were not being logged to the remote log
	server, if configured. Since we don't go through
	sudoers_policy_main() again for log_subcmds, we set the flag in
	sudoers_audit_accept() instead. The reason this is complicated is
	that when I/O logging is enabled the initial accept message gets
	sent as part of the remote logging handshake. GitHub issue #174
	[02e92c2af]

2022-09-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/cvtsudoers.mdoc.in:
	Fix typo.
	[21b48a303]

	* plugins/sudoers/sudoers.c:
	Only check the admin flag file once in intercept mode.
	[49e9e5eb8]

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in:
	Document cvtsudoers CSV output format
	[159bdb1cb]

2022-08-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in:
	Document cvtsudoers JSON output format
	[37ae66062]

2022-08-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	Zero out register struct before calling ptrace_getregs(). Quiets a
	spurious valgrind warning.
	[a6472710e]

2022-08-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	intercept_verify is fast, but the policy check is (relatively) slow.
	[caa0408a8]

	* src/exec_ptrace.c:
	Realloc the buffer used to store argv and envp as needed. We now
	store the vector immediately after the string table. It is possible
	for argv and its contents to be invalidated by realloc() when
	reading envp so we store the pointers as offsets until we are done
	allocating.
	[817f63b05]

2022-08-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c, src/exec_ptrace.h:
	ptrace_verify_post_exec: use /proc/PID/cmdline and /proc/PID/environ
	There is no reason to read these directly from the tracee when we
	rely on /proc being mounted to access /proc/PID/exe.
	[0d2f1c4a2]

	* src/exec_ptrace.c:
	Protect ptrace_readv_string() with #ifdef HAVE_PROCESS_VM_READV
	[234c56b87]

2022-08-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Rework the intercept section in "Preventing shell escapes".
	[922772c6c]

	* .github/workflows/codeql-analysis.yml:
	Update CodeQL Action to v2 using current example config.
	[351175eb2]

	* lib/util/arc4random.c:
	Suppress PVS-Studio false positive.
	[0af393e75]

	* src/exec_intercept.c:
	intercept_check_policy_req: an empty argv[] is now supported
	[2902ebe06]

	* config.h.in, configure, configure.ac, src/exec_ptrace.c:
	Use process_vm_readv(2) and process_vm_writev(2) if available. This
	is faster than reading/writing from/to the remote process one word
	at a time using PTRACE_PEEKDATA and PTRACE_POKEDATA.
	[14356c194]

	* plugins/sudoers/check.c:
	Skip all of check_user() for intercept unless intercept_authenticate
	set. Previously we were calling the PAM approval modules even in
	intercept mode which can take a lot of time. We may wish to make PAM
	approval configurable in intercept mode in the future.
	[36747f89a]

	* plugins/sudoers/sudoers.c:
	Only set MODE_POLICY_INTERCEPTED on subsequent policy checks. This
	fixes a bug where MODE_POLICY_INTERCEPTED was set too early if the
	intercept option was set globally in sudoers. It should only be set
	after the original command has executed.
	[22dad3f59]

2022-08-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	intercept_verify also compares the environment. Also mention the
	overhead involved in checking things.
	[966eae6bf]

2022-08-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	ptrace_getregs: make compat check more generic No need to use
	different checks for mips and non-mips, the compiler will optimize
	away the superfluous check.
	[3d995f7e5]

	* src/preload.c:
	Correct type of sudoers_audit. GitHub issue #61
	[4d58fc904]

2022-08-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sesh.c:
	Fix shadowed variable warning.
	[a3a181df0]

2022-08-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.h:
	Fix shadowed variable warning on aarch64.
	[c948717bd]

	* src/regress/intercept/test_ptrace.c:
	Quiet another -Wwrite-strings warning.
	[8145ad12d]

	* src/exec_ptrace.c:
	ptrace_getregs: try to determine compat mode if caller doesn't know.
	In ptrace_verify_post_exec(), we don't know whether the executable
	that is now running is a native or compat binary. In most cases
	ptrace_getregs() will be able to figure it out for us.
	[8eb619ac2]

	* src/exec_ptrace.c:
	ptrace_intercept_execve: fail syscall rather than killing process on
	error. If the execve(2) args are bogus pointers, we should just
	return an error instead of killing the process. For consistency with
	the kernel, convert EIO from ptrace(2) to EFAULT. Also convert some
	ptrace(2) warnings to debug printfs so sudo is less chatty.
	[b2d8909c1]

2022-08-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	Treat argv and closure->run_argv of different sizes as a mismatch.
	If argv and closure->run_argv match up to the point where we hit a
	NULL but one of them has additional entries, we still need to
	rewrite argv.
	[9f552471b]

	* src/exec_ptrace.c:
	Handle the case where argc is 0 when allocating space for argv. We
	need to pass the pathname to the policy plugin in argv[0] so we must
	be sure to allocate space for it even if argc is 0.
	[aef4a6188]

	* src/sudo_intercept.c:
	copy_vector: treat a NULL pointer as an empty vector. Linux
	execve(2) allows argv to be NULL so we must allocate an empty vector
	in this case and not return an error.
	[76bd1bcc9]

	* src/exec_preload.c:
	Update debug_decl name for sudo_preload_dso ->
	sudo_preload_dso_alloc change.
	[48a9126a1]

	* src/exec_intercept.c:
	Handle the case where argc is 0 when rebuilding argv. We need to
	pass the pathname to the policy plugin in argv[0] so we must be sure
	to allocate space for it even if argc is 0.
	[bc5016296]

	* src/exec_ptrace.c:
	Handle sysconf(_SC_ARG_MAX) failure, Coverity CID 276504.
	[23fa22975]

	* plugins/sudoers/match_digest.c:
	Avoid a Coverity false positive.
	[d65bcf2ab]

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y:
	Remove cast from time_t to int to avoid a Coverity false positive.
	The cast should not be required.
	[81a3339df]

2022-08-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/group_plugin.c:
	Use multilib rules to look for a 64-bit group plugin on failure. If
	sudo_dso_load() fails on a 64-bit system, try to load a 64-bit
	native version of the file using system-dependent multilib rules. If
	we don't support multilib on the platform, check for a version of
	the file that ends in "64" before the .so suffix.
	[158facf6d]

	* docs/sudo_plugin.man.in:
	regen
	[68b26056f]

2022-08-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/env.c, src/env_hooks.c:
	In putenv(3) replacement reject a string with no '=' or that starts
	with one.
	[2f3afd14e]

2022-08-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* LICENSE.md:
	Update copyright year for embedded zlib.
	[6e08fa9fb]

2022-08-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Use our own arc4random() in preference to the glibc version. The
	glibc arc4random() may fail in chroot on older kernels and exit.
	[a366c623f]

	* lib/util/sudo_dso.c:
	sudo_dso_load: restore original error for AIX on failure. For AIX,
	if dlopen() fails we try again with RTLD_MEMBER set and a default
	member (shr.o or shr_64.o). However, if that also fails, the user
	will receive a useless error message that doesn't correspond to the
	actual problem. We now retry the original dlopen() if the fallback
	to RTLD_MEMBER fails, which has the effect of restoring the original
	error message.
	[9ebaabfdd]

2022-08-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #165 from bdrung/xdg-current-desktop

	Add XDG_CURRENT_DESKTOP to initial_keepenv_table
	[184f0a249]

	* NEWS, configure, configure.ac:
	Sudo 1.9.12.
	[b422ddea7]

	* docs/sudo_plugin.mdoc.in, include/sudo_plugin.h,
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout, src/exec.c:
	Bump the sudo plugin minor version. The "update_ticket" entry was
	added to the settings list and the "intercept_verify" entry was
	added to the command_info list.
	[9c61d7e6e]

	* docs/sudo.man.in, docs/sudo.mdoc.in, plugins/sudoers/check.c,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.h,
	src/parse_args.c, src/sudo.c, src/sudo.h, src/sudo_usage.h.in:
	Add a way to run a command without updating the cached credentials.
	This can also be used to test for whether or not the user's
	credentials are currently cached.
	[556dacf1f]

	* :
	Merge pull request #168 from likunyur/lky

	Remove unnecessary initialization and casts.
	[2d94d329c]

2022-08-01  Li zeming  <zeming@nfschina.com>

	* lib/iolog/hostcheck.c:
	iolog/hostcheck: These two parameters do not need to be initialized
	and assigned, the following code is directly assigned

	Signed-off-by: Li zeming <zeming@nfschina.com>
	[393d9997c]

	* lib/util/arc4random.c:
	util/arc4random: (void*) type pointer passing address could remove
	cast

	Signed-off-by: Li zeming <zeming@nfschina.com>
	[c27acf55e]

2022-08-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #169 from kempstonjoystick/main

	Fix incorrect SHA384/512 digest calculation.
	[210eb17cb]

2022-08-02  Tim Shearer  <timtimminz@gmail.com>

	* lib/util/sha2.c:
	Fix incorrect SHA384/512 digest calculation.

	Resolves an issue where certain message sizes result in an incorrect
	checksum. Specifically, when: (n*8) mod 1024 == 896 where n is the
	file size in bytes.
	[e4f08157b]

2022-08-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec.c, src/selinux.c, src/sesh.c, src/sudo.c, src/sudo.h:
	Defer chdir(2) until sesh when running with SELinux. We need to be
	running with the correct security context or the chdir(2) may fail.
	GitHub issue #160.
	[cf250354f]

2022-07-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #166 from c4rlo/patch-1

	visudo.c: add nvim (Neovim) to lineno_editor list
	[555474d3a]

2022-07-31  Carlo Teubner  <435950+c4rlo@users.noreply.github.com>

	* plugins/sudoers/visudo.c:
	visudo.c: add nvim (Neovim) to lineno_editor list

	Neovim supports it: https://neovim.io/doc/user/starting.html#-+
	[2b5dcf255]

2022-07-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Document the TOCTOU issue with intercept mode. Describe how
	intercept_verify attempts to reduce the risk.
	[4de5e12dd]

	* etc/codespell.exclude, etc/codespell.ignore:
	Update a codespell exclude pattern.
	[3eb6e7856]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/policy.c, src/exec_ptrace.c, src/sudo.c, src/sudo.h:
	Add intercept_verify sudoers option to control execve(2) argument
	checking.
	[3ce19efca]

	* src/exec_ptrace.c:
	Use PTRACE_EVENT_EXEC to stop execution before return from
	execve(2). We can now verify that the arguments match what we
	accepted before the command actually runs. If there is a mismatch,
	the process is killed. Shell scripts must be handled specially since
	the path executed will be the interpreter, not the script name.
	Linux allows interpreters to be nested up to 4 deep.
	[b80b012de]

	* plugins/sudoers/sudoers.c:
	Only set MODE_POLICY_INTERCEPTED if we are running a command. Fixes
	an error with "sudo -l" when intercept is enabled globally.
	[620a563b5]

2022-07-29  Benjamin Drung  <bdrung@ubuntu.com>

	* plugins/sudoers/env.c:
	Add XDG_CURRENT_DESKTOP to initial_keepenv_table

	Qt needs `XDG_CURRENT_DESKTOP` to be set to determine the correct
	theme.

	Since `DISPLAY` and `XAUTHORITY` are already in the default table of
	variables to preserve in the environment, just add
	`XDG_CURRENT_DESKTOP` to it.

	Bug: https://launchpad.net/bugs/1958055 Signed-off-by: Benjamin
	Drung <bdrung@ubuntu.com>
	[225feb386]

2022-07-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	The length returned by ptrace_read_string() include the NUL. We were
	wasting a extra byte in the string table for each entry.
	[25513b4f3]

2022-07-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_compat.h, include/sudo_util.h:
	Use gcc's malloc attribute for malloc-like allocation functions.
	[882990b1b]

	* lib/util/mmap_alloc.c:
	Avoid a Coverity positive.
	[23ab31fce]

	* src/exec_preload.c:
	fmtstr: add missing va_end() for the overflow case Coverity CID
	275335
	[6c9b3c761]

	* lib/util/sudo_debug.c:
	Fix potential NULL pointer deference found by clang-analyzer.
	[3421c8b6c]

	* src/sudo.c, src/sudo_intercept_common.c:
	Quiet some harmless PVS-Studio warnings.
	[f5dc739ea]

	* src/exec_intercept.c:
	Reject relative command paths if runcwd is not set. This is now
	treated as a policy rejection.
	[de3d5fe93]

	* src/exec_intercept.c:
	intercept_check_policy: close saved_dir before returning
	[16ea0bb3f]

	* src/exec_intercept.c:
	Change to runcwd during the policy check where possible. Otherwise,
	attempts to run "./command" from a shell with intercept set will
	fail if the current working directory is different from the main
	sudo process.
	[3c1f3ef10]

2022-07-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_util.h, lib/util/mmap_alloc.c, lib/util/util.exp.in,
	src/sudo_intercept.c:
	For preload DSO make copies of cmnd, argv, envp and map them
	read-only.
	[5516cdcd5]

	* src/exec_preload.c, src/sudo_exec.h, src/sudo_intercept.c,
	src/sudo_intercept_common.c:
	Use sudo_mmap_alloc functions in DSO-based intercept code.
	[226a6cd75]

	* lib/util/snprintf.c:
	Use sudo_mmap_alloc functions instead of private versions. We no
	longer need to keep track of the allocation size.
	[e43c964c4]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/mmap_alloc.c, lib/util/util.exp.in:
	Add sudo_mmap_{alloc,allocarrary,strdup,free} functions. These
	allocate memory via mmap anonymous regions and store the mapped size
	immediately before the returned pointer as an unsigned long. They
	are intended to be used in cases where malloc(3) and free(3) are
	unsuitable due to concerns about corrupting global state in
	multi-threaded programs or signal handlers.
	[fccf3c9c5]

	* src/sudo_intercept.c:
	resolve_path: skip non-regular files
	[15fd62f0d]

	* docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in:
	Sync with schema.OpenLDAP for user/group utf8 support.
	[308a6c31d]

	* :
	Merge pull request #163 from Firstyear/20220725-sudo-ldap-schema

	Update sudoUser to be utf8 in ldap schemas
	[36b603aa9]

2022-07-25  William Brown  <wbrown@suse.de>

	* docs/schema.OpenLDAP, docs/schema.iPlanet, docs/schema.olcSudo:
	Update sudoUser to be utf8 in ldap schemas

	In most unix-style LDAP servers, uid is a utf8 string defined by OID
	1.3.6.1.4.1.1466.115.121.1.15. However, sudoUser was defined as an
	IA5 String (OID 1.3.6.1.4.1.1466.115.121.1.26) which meant that
	sudoUser could only represent a subset of possible values.

	In some cases when using sudoers.ldap, the uid from the machine
	which was utf8 was fed back into sudo which would then issue a
	search for sudoUsers. If this uid contained utf8 characters, the
	ldap server would refuse to match into sudoUsers because these were
	limited to IA5.

	This is a safe-forward upgrade as IA5 is a subset of UTF8 meaning
	that this change will not impact existing deployments and their
	rules.
	[7f9ea23e7]

2022-07-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_intercept.c, src/sudo.c:
	Make sure the plugin provides a command, argv and envp.
	[75e97fd5b]

	* lib/util/sudo_debug.c, src/exec_intercept.c, src/exec_preload.c,
	src/exec_ptrace.c, src/sudo_intercept.c,
	src/sudo_intercept_common.c:
	Linux execve(2) allows argv or envp to be NULL. Add checks to make
	sure we don't deference a NULL pointer.
	[e5652fc65]

2022-07-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_intercept.c:
	intercept_check_policy: add oom label and fix approval failure case.
	If the approval plugin fails we need to set the state to
	POLICY_REJECT just like we do if the policy rejected the command.
	[a5ac29219]

2022-07-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_csv.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_merge.c, plugins/sudoers/def_data.in,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/policy.c, src/apparmor.c:
	Fix a few whitespace issues.
	[a2b0a8330]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Increase the realloc increment from 128 to 1024. The contents of the
	env_add array should not include the leading "env=" prefix.
	[e7b7fbaf6]

	* plugins/sudoers/env.c:
	sudo_putenv_nodebug: require that the environment string include a
	'='
	[224d78993]

2022-07-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/visudo.c:
	If update_defaults() fails, treat it as a parse error.
	[fba81260a]

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add additional PVS-studio suppression comments for generated code.
	[3dc8497b4]

2022-07-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match_command.c:
	Fix compilation error when SUDOERS_NAME_MATCH is defined.
	[a7f9c8162]

	* plugins/sudoers/match_command.c:
	Fix a NOPASSWD issue with a non-existent command when fdexec=always
	In command_matches_all(), if the command is fully-qualified and
	open_cmnd() return false, only treat it as an error if we are able
	to stat(2) the command. For "sudo ALL" a non-existent command is not
	an error.
	[5a59ce159]

	* plugins/sudoers/regress/testsudoers/test18.sh:
	Quote ^foo$ on command line to protect it from the shell.
	[41e7532c9]

2022-07-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/regress/logwrap/check_wrap.c,
	lib/util/regress/closefrom/closefrom_test.c,
	lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/getgrouplist/getgrouplist_test.c,
	lib/util/regress/glob/globtest.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsig/strsig_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/strtofoo/strtobool_test.c,
	lib/util/regress/strtofoo/strtoid_test.c,
	lib/util/regress/strtofoo/strtomode_test.c,
	lib/util/regress/strtofoo/strtonum_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c,
	lib/util/regress/uuid/uuid_test.c,
	logsrvd/regress/logsrvd_conf/logsrvd_conf_test.c,
	plugins/python/regress/check_python_examples.c, src/exec_ptrace.c:
	Add explicit include of unistd.h for getopt(3) and related
	variables.
	[f6e4d2765]

2022-07-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/timegm.c:
	In timegm() initialize tm_isdst to 0 like tzcode does.
	[42c6d9fb5]

2022-07-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #161 from likunyur/lky

	sudoers/cvtsudoers: Remove the repeated ';' from code
	[fd0c5566a]

2022-07-04  Li kunyu  <kunyu@nfschina.com>

	* src/sudo_intercept_common.c:
	src/send: Remove the repeated ';' from code

	Signed-off-by: Li kunyu <kunyu@nfschina.com>
	[a9a164e71]

	* plugins/sudoers/cvtsudoers.c:
	sudoers/cvtsudoers: Remove the repeated ';' from code

	Signed-off-by: Li kunyu <kunyu@nfschina.com>
	[a311180bb]

2022-06-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/intercept.pb-c.h, include/sudo_event.h,
	src/exec_intercept.c, src/exec_intercept.h, src/intercept.pb-c.c,
	src/intercept.proto, src/sudo_intercept_common.c:
	Stop sending an InterceptResponse to a PolicyCheckRequest for
	log_subcmds. There's no real reason for the command to wait for sudo
	send back a response that will always be a PolicyAcceptMessage.
	[3cd9c5f5e]

	* plugins/sudoers/sudoers.c:
	sudoers_main: defer setting return value until the end when running
	a command Otherwise, we could return success when there was an error
	from a system call or memory allocation failure.
	[985a2261b]

	* plugins/sudoers/audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Save the initial command run via sudo and use it when logging exit
	status. Otherwise, if we are in intercept mode or logging
	sub-commands the exit status will be logged with the wrong command.
	[885abf48d]

2022-06-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/zlib/zconf.h.in:
	Define _LARGEFILE64_SOURCE if _FILE_OFFSET_BITS == 64. Fixes a
	-Wwrite-strings warning on 32-bit systems.
	[3badff39c]

	* lib/util/strsignal.c:
	Quiet another -Wwrite-strings warning.
	[50813f816]

	* lib/protobuf-c/protobuf-c.c:
	Fix a clang analyzer 14 warning about a possible NULL deref.
	[bfc624990]

2022-06-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_preload.c, src/sudo_exec.h, src/sudo_intercept_common.c:
	sudo_preload_dso: make the envp function argument const This lets us
	fix an inappropriate cast in sudo_intercept_common.c.
	[424fa7f2b]

2022-06-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/Makefile.in, lib/logsrv/Makefile.in,
	lib/protobuf-c/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Regenerate dependencies
	[5f534979e]

	* scripts/mkdep.pl:
	Do not check files generated by protbuf-c with PVS-Studio
	[a14bef6a4]

	* logsrvd/logsrv_util.c, logsrvd/logsrvd.c, logsrvd/logsrvd_conf.c,
	logsrvd/logsrvd_queue.c, logsrvd/sendlog.c, logsrvd/tls_client.c,
	plugins/sudoers/log_client.c, src/sudo_intercept_common.c:
	Quiet some harmless PVS Studio warnings.
	[b6151781c]

	* logsrvd/logsrvd_conf.c, logsrvd/sendlog.c:
	Use "unable to allocate memory" warning on malloc failure. This is
	consistent with the rest of the sudo source code.
	[54ed54d94]

	* lib/eventlog/Makefile.in, lib/fuzzstub/Makefile.in,
	lib/iolog/Makefile.in, lib/iolog/host_port.c,
	lib/logsrv/Makefile.in, lib/protobuf-c/Makefile.in,
	lib/util/Makefile.in, lib/util/getentropy.c, lib/util/roundup.c,
	logsrvd/iolog_writer.c, logsrvd/logsrv_util.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd_conf.c, logsrvd/logsrvd_journal.c,
	logsrvd/logsrvd_local.c, logsrvd/logsrvd_queue.c,
	logsrvd/logsrvd_relay.c, logsrvd/sendlog.c, logsrvd/tls_client.c,
	logsrvd/tls_init.c, plugins/sudoers/log_client.c, src/Makefile.in,
	src/apparmor.c:
	Add missing PVS Studio Open Source comments. Also avoid checking
	protobuf-c source and protobuf-c generated files.
	[3e21c8da5]

	* lib/iolog/host_port.c, lib/iolog/hostcheck.c, lib/util/roundup.c,
	logsrvd/iolog_writer.c, logsrvd/logsrv_util.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/logsrvd_journal.c, logsrvd/logsrvd_local.c,
	logsrvd/logsrvd_queue.c, logsrvd/logsrvd_relay.c, logsrvd/sendlog.c,
	logsrvd/sendlog.h, logsrvd/tls_client.c, logsrvd/tls_common.h,
	logsrvd/tls_init.c, plugins/python/pyhelpers.h,
	plugins/python/regress/iohelpers.h, plugins/sudoers/log_client.c:
	Use #include <config.h> not #include "config.h" for consistency.
	Otherwise, some compilers may do the wrong thing in a build dir if
	there is a config.h file in the source dir too.
	[e5834bd40]

2022-06-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/group_plugin.c:
	Update group_plugin_load() stub to match its prototype.
	[38278640c]

	* configure, configure.ac, include/sudo_iolog.h,
	lib/eventlog/eventlog.c, lib/eventlog/logwrap.c,
	lib/iolog/host_port.c, lib/iolog/regress/host_port/host_port_test.c,
	lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c, lib/util/aix.c,
	lib/util/getgrouplist.c, lib/util/getopt_long.c, lib/util/lbuf.c,
	lib/util/logfac.c, lib/util/logpri.c,
	lib/util/regress/progname/progname_test.c, lib/util/snprintf.c,
	lib/util/sudo_conf.c, lib/util/sudo_debug.c, logsrvd/logsrvd_conf.c,
	logsrvd/logsrvd_local.c, logsrvd/logsrvd_relay.c, logsrvd/sendlog.c,
	plugins/audit_json/audit_json.c,
	plugins/python/python_convmessage.c,
	plugins/python/python_plugin_common.c,
	plugins/python/regress/check_python_examples.c,
	plugins/python/sudo_python_module.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sudo_auth.h,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_csv.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/editor.c,
	plugins/sudoers/env.c, plugins/sudoers/exptilde.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/insults.h, plugins/sudoers/iolog.c,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/log_client.c, plugins/sudoers/logging.c,
	plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/pwutil.c,
	plugins/sudoers/regress/editor/check_editor.c,
	plugins/sudoers/regress/exptilde/check_exptilde.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/serialize_list/check_serialize_list.c,
	plugins/sudoers/regress/unescape/check_unesc.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoers_hooks.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/edit_open.c, src/exec_common.c, src/parse_args.c,
	src/regress/noexec/check_noexec.c, src/selinux.c, src/sudo.c,
	src/sudo_edit.c, src/sudo_intercept.c:
	Make sudo pass -Wwrite-strings
	[13672f28d]

	* configure, configure.ac:
	A typo prevented -Wno-deprecated-declarations from being used on
	macOS.
	[b3a8cad34]

2022-06-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/preload.c:
	Fix missing prototype warning.
	[0efd61620]

	* lib/zlib/zconf.h.in:
	Define _LFS64_LARGEFILE, _LARGEFILE64_SOURCE if 64-bit or
	_LARGE_FILES set. autoconf does not define _LARGEFILE64_SOURCE by
	default but zlib expects it (its own configure script will define
	it). Fixes a missing prototype for crc32_combine_gen64() on AIX and
	HP-UX.
	[89666e7c3]

	* configure, configure.ac, include/sudo_iolog.h,
	include/sudo_util.h, lib/iolog/host_port.c,
	lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c,
	lib/iolog/regress/iolog_json/check_iolog_json.c,
	lib/iolog/regress/iolog_timing/check_iolog_timing.c,
	lib/util/regress/fuzz/fuzz_sudo_conf.c,
	lib/util/regress/glob/globtest.c,
	lib/util/regress/mktemp/mktemp_test.c, lib/util/strtoid.c,
	logsrvd/logsrvd.c, logsrvd/logsrvd_relay.c,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c, logsrvd/sendlog.c,
	plugins/python/pyhelpers.c, plugins/python/python_plugin_approval.c,
	plugins/python/python_plugin_approval_multi.inc,
	plugins/python/python_plugin_audit.c,
	plugins/python/python_plugin_audit_multi.inc,
	plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_group.c,
	plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_io_multi.inc,
	plugins/python/python_plugin_policy.c,
	plugins/python/regress/check_python_examples.c,
	plugins/python/sudo_python_module.c, plugins/sudoers/audit.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/iolog.c, plugins/sudoers/log_client.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/stubs.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/timestr.c, plugins/sudoers/tsgetgrpw.h,
	plugins/sudoers/unesc_str.c, src/copy_file.c, src/exec_ptrace.c,
	src/load_plugins.c, src/net_ifs.c, src/sudo.h, src/sudo_intercept.c,
	src/sudo_intercept_common.c, src/sudo_noexec.c:
	Make sudo pass -Wmissing-prototypes
	[f5ac1317c]

	* src/exec_ptrace.c:
	Include inttypes.h if stdint.h is not present. Bug #1035
	[f43220930]

2022-06-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_intercept.c:
	intercept_write: remove unused CD_USE_PTRACE code. It is not
	possible to end up in intercept_write when CD_USE_PTRACE is set.
	[e9c269526]

	* src/exec_ptrace.c:
	readlink(2) does NUL-terminate the buffer, do it manually. Fixes a
	bug where the current working directory could include garbage in
	intercept mode using ptrace(2).
	[33547702f]

2022-06-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_11p3 for changeset 6e671475b373
	[898a1de36]

	* :
	Merge sudo 1.9.11p3 from tip.
	[b9dab8cda]

	* NEWS, configure, configure.ac:
	Sudo 1.9.11p3
	[01a9e5a15]

	* src/exec_intercept.c, src/sudo_intercept_common.c:
	Set TCP_NODELAY on the socket used for intercept IPC to reduce
	latency. On some systems, Nagle's algorithm was delaying receipt of
	the data, causing commands with intercept or log_subcmds to run
	slowly. Related to Bug #1034.
	[332a6afe7]

	* src/sudo_intercept_common.c:
	Use blocking I/O when talking to the sudo process. Also check for
	EAGAIN/EINTR when reading the message size. Fixes a problem seen on
	AIX where recv_intercept_response() could fail unexpectedly. Bug
	#1034.
	[b10201bdc]

	* src/exec_intercept.c:
	Add debug printfs when send/recv return EAGAIN or EINTR. These are
	not actually errors but can help gain insight into what is going on
	and, in the case of EAGAIN, whether or not there may be a kernel
	resource starvation problem.
	[8829c028d]

2022-06-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	log_exit_status: make local variables match struct evlog members.
	[49c27f527]

2022-06-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/getgrouplist.c:
	Quiet a compiler warning on macOS. The getgrouplist() groups array
	on macOS is int * instead of gid_t *.
	[5787da7b2]

2022-06-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_11p2 for changeset 9e4705cb1db5
	[ecb5be2be]

	* :
	Merge sudo 1.9.11p2 from tip.
	[f55a58b5e]

	* NEWS, configure, configure.ac:
	Sudo 1.9.11p2
	[04746d0e6]

2022-06-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.h:
	Fix compilation on Linux/x32; GitHub issue #158
	[dfee181d1]

2022-06-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c:
	Fix pasto in comment after HAVE_PRIV_SET #endif
	[1c00c7c23]

	* include/sudo_compat.h:
	Fix typo, we should define SSIZE_MAX if it is not defined.
	[169e04982]

2022-06-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/env.c:
	Change black list -> blocklist This was missed in the previous
	conversion.
	[6525436db]

	* plugins/sudoers/audit.c, plugins/sudoers/iolog.c,
	plugins/sudoers/log_client.c, plugins/sudoers/log_client.h,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoers.h:
	Save a pointer to the event_alloc parameter in the plugin open
	function. That way we don't need to pass event_alloc around to the
	log client functions.
	[d04810c4f]

	* lib/protobuf-c/protobuf-c.c:
	Fix regression with zero-length messages introduced in protobuf-c PR
	500.
	[b6a645148]

2022-06-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_11p1 for changeset 06b0f12fe91c
	[74133a342]

	* :
	Merge sudo 1.9.11p1 from tip.
	[212252e4f]

	* NEWS, configure, configure.ac:
	Sudo 1.9.11p1
	[d2bf3aad0]

2022-06-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	Make read and write events persistent and disable as needed. For the
	read callback, disable reader when the buffer is full. For the write
	callback, disable writer when the buffer is consumed.
	[964bcfa2d]

	* config.h.in, configure, configure.ac, src/sudo_exec.h,
	src/sudo_noexec.c:
	Check for SECCOMP_MODE_FILTER not SECCOMP_SET_MODE_FILTER. This
	matches the actual prctl() call we use.
	[7689b8718]

	* :
	Merge pull request #157 from 0x2b3bfa0/improve-tag-spec-ebnf-docs

	Improve Tag_Spec EBNF documentation
	[fedcb99ee]

	* logsrvd/logsrvd.c, logsrvd/logsrvd_relay.c, logsrvd/sendlog.c:
	Treat EINTR in a callback like we do EAGAIN. We shouldn't get EINTR
	in practice since we set SA_RESTART when registering signal handlers
	but it doesn't hurt to be consistent.
	[161b01fcc]

2022-06-07  Helio Machado  <0x2b3bfa0+git@googlemail.com>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Improve Tag_Spec EBNF documentation
	[d60b6c618]

2022-06-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #156 from delroth/aarch64-build

	exec_ptrace: fix missing sudo_pt_regs on aarch64
	[7f98ae7d2]

2022-06-07  Pierre Bourdon  <delroth@gmail.com>

	* src/exec_ptrace.h:
	exec_ptrace: fix missing sudo_pt_regs on aarch64

	AArch64 already had an existing "user_pt_regs" struct and didn't
	need a struct alias before the renaming to "sudo_pt_regs". Make the
	code build again by adding the now missing alias.

	Fixes: 2eb8ff17
	[d549adf04]

2022-06-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #154 from 0x2b3bfa0/fix-tag-spec-docs

	Add missing colon in Tag_Spec documentation
	[a4b2012c1]

	* :
	Merge pull request #152 from particleflux/fix-sudoers-typo

	Fix typo in sudoers comment
	[ab00d29ec]

2022-06-07  Helio Machado  <0x2b3bfa0+git@googlemail.com>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Add missing colon in Tag_Spec documentation
	[3405fac05]

2022-06-07  Stefan Linke  <particleflux@gmail.com>

	* plugins/sudoers/sudoers.in:
	Fix typo in sudoers comment

	Fix a typo in the sudoers comment about `maxseq` param.

	Introduced by 906eb19ece47023c659b4b3db2e7a6bb57dff0d9 in 1.9.11.
	[a074d058e]

2022-06-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/protobuf-c/protobuf-c.c:
	Only shift unsigned values to avoid implementation-specific
	behavior. This converts the arithmetic shifts to logical shifts.
	[e4ea5ad8a]

	* lib/protobuf-c/protobuf-c.c:
	Fix issue protobuf-c#499: unsigned integer overflow Signed-off-by:
	10054172 <hui.zhang@thalesgroup.com>
	[263fdc6b0]

	* include/sudo_event.h, lib/util/event_select.c:
	Fix building with select (not poll) when fd_set is not defined in
	sys/types.h. We can use a void * for the fd_set arrays and just add
	a cast when using the FD_SET macros.
	[b77cbb2e6]

	* src/exec_pty.c:
	Reinstall the event handler if we get EAGAIN from read/write
	callback. The read and write events do not set SUDO_EV_PERSIST so we
	need to explicitly re-enable the event if there is still data to be
	read. Bug #963.
	[c2a131714]

	* logsrvd/logsrvd.c, logsrvd/logsrvd_relay.c, logsrvd/sendlog.c:
	If write(2) returns EAGAIN just re-enter the event loop. This is
	consistent with how we handle EAGAIN for read(2).
	[db6fc237c]

	* .hgtags:
	Added tag SUDO_1_9_11 for changeset d495c99554f7
	[c14bc3a64]

	* :
	Merge sudo 1.9.11 from tip.
	[3aa7142d2]

	* docs/sudo_plugin_python.man.in, docs/sudo_plugin_python.mdoc.in:
	Document how setting ModulePath affects the Python search path. Also
	advise the user to use a unique prefix to avoid name space
	collisions with installed Python modules. Bug #1031.
	[fcb5867f1]

	* configure, configure.ac, docs/sudo_plugin_python.man.in,
	docs/sudo_plugin_python.mdoc.in:
	Add EXAMPLES variables for use in the man pages for the examples
	directory.
	[96c3c2819]

2022-06-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po:
	Updated translations from translationproject.org
	[24522fb4e]

	* plugins/sudoers/po/hr.mo, po/hr.mo:
	Rebuild Croatian message catalog.
	[258b504be]

2022-06-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .gitignore, .hgignore:
	Add new test binaries to the ignore files.
	[4386be3d6]

	* po/cs.mo, po/cs.po:
	Updated translations from translationproject.org
	[5cb94eb25]

	* lib/protobuf-c/protobuf-c.c:
	Define WORDS_BIGENDIAN on big endian systems. Instead of a configure
	check, we use endian.h (or a fallback).
	[ac06fb7f2]

	* include/intercept.pb-c.h, include/log_server.pb-c.h,
	include/protobuf-c/protobuf-c.h, lib/protobuf-c/protobuf-c.c,
	scripts/unanon:
	Update to protobuf-c 1.4.0
	[71c07579b]

	* logsrvd/logsrvd.c, plugins/sudoers/cvtsudoers_csv.c:
	Quiet two clang analyzer false positives.
	[aee276ea6]

	* src/exec_intercept.c:
	Move a comment to the correct location.
	[f19a71a3d]

	* logsrvd/logsrvd.c:
	union sockaddr_union: pass in sockaddr_union * instead of sockaddr
	*. This eliminates the need for a few casts and is consistent with
	how create_listener() is written.
	[5012c7f97]

	* src/exec_ptrace.c:
	Eliminate some dead stores that clang-analyzer complains about.
	[898ca5054]

	* src/exec_ptrace.c:
	ptrace_read_vec: don't try to free memory on the error path This is
	leftover from when ptrace_read_string() allocated its own memory.
	[63e6973ad]

	* config.h.in, configure, configure.ac, src/sudo_intercept.c:
	Avoid using vfork(2) in the DSO system(3) wrapper. Traditional
	vfork(2) semantics make it unsafe for use for more than just
	vfork(2) + execve(2).
	[25a26f504]

2022-06-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* po/vi.mo, po/vi.po:
	Updated translations from translationproject.org
	[06bf1be67]

	* NEWS:
	Mention sudo_logsrvd.conf "log_server" parsing fix.
	[66909a483]

	* MANIFEST, logsrvd/Makefile.in,
	logsrvd/regress/logsrvd_conf/sudo_logsrvd.conf.1.in,
	logsrvd/regress/logsrvd_conf/sudo_logsrvd.conf.2.in,
	logsrvd/regress/logsrvd_conf/tls/sudo_logsrvd.conf.1.in,
	logsrvd/regress/logsrvd_conf/tls/sudo_logsrvd.conf.2.in:
	For logsrvd_conf_test include both tls and non-tls configs.
	[2d6b9d22e]

	* MANIFEST, logsrvd/Makefile.in,
	logsrvd/regress/logsrvd_conf/cacert.pem,
	logsrvd/regress/logsrvd_conf/logsrvd_cert.pem,
	logsrvd/regress/logsrvd_conf/logsrvd_conf_test.c,
	logsrvd/regress/logsrvd_conf/logsrvd_dhparams.pem,
	logsrvd/regress/logsrvd_conf/logsrvd_key.pem,
	logsrvd/regress/logsrvd_conf/sudo_logsrvd.conf.1.in,
	logsrvd/regress/logsrvd_conf/sudo_logsrvd.conf.2.in:
	Add a simple regression test for logsrvd.conf parser. Unlike the
	parser fuzzer, this includes sample certs and keys. This test would
	have detected the BIO_new_file() bug in set_dhparams().
	[d7b2ff321]

	* logsrvd/logsrvd_conf.c:
	Fix inverted logic when setting server_log. A value that starts with
	a '/' should be treated as a path.
	[0ca222aa8]

	* plugins/audit_json/Makefile.in,
	plugins/sample_approval/Makefile.in:
	Use abs_top_builddir instead of `pwd`/$(top_builddir).
	[bec9603f3]

2022-06-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/regress/parse_gids/parse_gids_test.c:
	Plug a memory leak.
	[51b64780c]

	* plugins/sudoers/parse_ldif.c:
	Fix bug in last commit, need to reinitialize role to NULL.
	[89b80ea69]

	* plugins/sudoers/parse_ldif.c:
	Simplify the check for when we can reuse the previous user and host
	specs. This makes the code easier to read and quiets a cppcheck
	false positive.
	[eb0135a93]

	* docs/Makefile.in:
	Install the plugin man pages in section 5 (or 4 for System V). The
	manual had the correct section in the text but was installed in the
	wrong directory.
	[77a47affb]

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/ro.mo, plugins/sudoers/po/ro.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po, po/de.mo,
	po/de.po, po/eo.mo, po/eo.po, po/fr.mo, po/fr.po, po/hr.mo,
	po/hr.po, po/ko.mo, po/ko.po, po/pl.mo, po/pl.po, po/ro.mo,
	po/ro.po, po/uk.mo, po/uk.po:
	Updated translations from translationproject.org
	[3074f64bd]

	* NEWS:
	Sudo now supports intercepting system(3).
	[4b5ee47e0]

2022-05-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/log_client.c:
	Only display "unable to connect to log server" warning once.
	Previously, in intercept mode, if the log server is unreachable the
	message would be printed for each sub-command.
	[c20c3b563]

	* src/exec.c, src/exec_monitor.c, src/exec_nopty.c, src/sudo_exec.h:
	When using ptrace(2), push the point where we suspend into
	exec_cmnd(). This should reduce the amount of time the child has to
	wait for the parent to use PTRACE_SEIZE to seize control and then
	PTRACE_CONT to continue the child.
	[de4d53e48]

	* config.h.in, configure, configure.ac, src/sudo_intercept.c:
	Add configure check for vfork(2) and fall back to fork(2) if
	missing.
	[cec83a05a]

	* docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.mdoc.in, src/intercept.exp.in,
	src/sudo_intercept.c:
	Add support for intercepting the system(3) function. This also means
	we can log system(3) with log_subcmds.
	[f52342031]

	* include/compat/endian.h:
	Newer compilers define __BYTE_ORDER__ and
	__ORDER_{BIG,LITTLE}_ENDIAN__ Also add riscv the little endian list.
	[436deda08]

2022-05-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	On AIX, fmemopen(3) has a bug where feof() returns false at EOF. See
	https://www.ibm.com/support/pages/apar/IJ11845
	[1c8316162]

2022-05-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/defaults.c:
	Fix potential signed integer overflow on 32-bit CPUs. Converting
	fractional minutes to nanoseconds could overflow a 32-bit integer,
	use long long instead.
	[dc8311dae]

	* plugins/sudoers/Makefile.in:
	Fix path to example sudoers file, it is now in the build dir.
	[93916fde4]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	init_options: initialize apparmor_profile to NULL
	[b497d7454]

	* NEWS:
	Update with latest 1.9.11 changes.
	[c1934a636]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Fix typo
	[6eda28ef5]

	* docs/CONTRIBUTORS.md:
	Update contributors.
	[789bc6ec8]

	* logsrvd/tls_init.c:
	Fix uninitialized use of ca_store when building with wolfSSL.
	[15f167c3a]

	* docker/debian/testing/Dockerfile, docker/ubuntu/devel/Dockerfile,
	docker/ubuntu/latest/Dockerfile, docker/ubuntu/rolling/Dockerfile:
	Newer Debian/Ubuntu uses libsepol-dev not libsepol1-dev.
	[7125a9cc2]

2022-05-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update .pot files for 1.9.11
	[346e63cd7]

2022-05-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, plugins/sudoers/def_data.h,
	plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/toke.c, src/Makefile.in:
	Regenerate files after merging AppArmor integration.
	[9bb288d10]

	* :
	Merge pull request #148 from kernelmethod/apparmor_support

	Add AppArmor support to sudo
	[402fc832f]

	* :
	Merge branch 'main' into apparmor_support
	[f16754a1d]

2022-05-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo_intercept.c:
	Pass envp, not environ, to real execve() from exec_wrapper() if
	possible. The replacement execve() function was passing the global
	environ to exec_wrapper() instead of the envp parameter. This caused
	the command to be run with the wrong environment on AIX systems, and
	possibly others, when intercept or log_subcmds was enabled. Bug
	#1030.
	[dc2b28d3e]

	* src/exec_ptrace.c:
	Consolidate some translatable strings.
	[b6ddf3db6]

	* logsrvd/logsrvd.c, logsrvd/logsrvd_journal.c,
	logsrvd/logsrvd_relay.c, logsrvd/sendlog.c,
	plugins/sudoers/log_client.c, src/exec_intercept.c:
	Standardize protobuf "unable to unpack" warning messages.
	[38c6e1bff]

	* docs/sudo_plugin.man.in, docs/sudo_plugin.mdoc.in,
	include/sudo_plugin.h,
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout, src/exec.c:
	Bump plugin minor version and document new intercept-related
	settings. There should have been a minor version bump for sudo 1.9.8
	when intercept was originally implemented.
	[9ac42292d]

2022-05-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Reset intercept_allow_setid if intercept_type changes from trace to
	dso. But only reset intercept_allow_setid if the user didn't
	explicitly set it.
	[6ced49a34]

2022-05-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, etc/sudo-python.pp, etc/sudo.pp:
	CentOS Stream only uses a major version number, no minor version.
	This prevents the packages from being created as foo.el.arch.rpm
	since we were assuming that the version number was two digits.
	[deef5e57f]

	* src/exec_ptrace.c, src/exec_ptrace.h:
	Add support for running o32 and n32 binaries on mips64.
	[d6be44db0]

	* src/exec_ptrace.c, src/exec_ptrace.h, src/sudo_exec.h:
	Enable ptrace support for MIPS but only for log_subcmds. It is not
	possible to change the syscall return value on MIPS so we cannot
	support full intercept mode. Another complication on MIPS is that if
	a system call is invoked via syscall(__NR_###), v0 holds
	__NR_O32_Linux and the real syscall is in the first arg (a0) and
	other args are shifted by one.
	[bc6a0e1a1]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.h,
	src/exec_ptrace.c, src/parse_args.c, src/sudo.c, src/sudo.h,
	src/sudo_exec.h:
	Add intercept_type sudoers option to set intercept/log_subcmds
	mechanism.
	[f053f174b]

2022-05-23  kernelmethod  <wss2ec@virginia.edu>

	* INSTALL.md, docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Add documentation for AppArmor support

	- Document the AppArmor userspec option in the sudoers man pages. -
	Add information about the --with-apparmor build configuration option
	to INSTALL.md.
	[d8184fdb6]

2022-05-22  kernelmethod  <wss2ec@virginia.edu>

	* docker/debian/latest/Dockerfile, docker/debian/testing/Dockerfile,
	docker/ubuntu/devel/Dockerfile, docker/ubuntu/latest/Dockerfile,
	docker/ubuntu/rolling/Dockerfile:
	Add libapparmor-dev to the Debian and Ubuntu Dockerfiles

	Install libapparmor-dev on Debian- and Ubuntu-based Docker images so
	that they can build sudo with AppArmor support.
	[58ce33aba]

2022-05-23  kernelmethod  <wss2ec@virginia.edu>

	* plugins/sudoers/check.c, plugins/sudoers/cvtsudoers_csv.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_merge.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.dict,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.dict,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/toke.l:
	Add an APPARMOR_PROFILE user spec option to sudoers

	sudoers now supports an APPARMOR_PROFILE option, which can be
	specified as e.g.

	alice ALL=(ALL:ALL) APPARMOR_PROFILE=foo ALL

	The line above says "user alice can run any command as any
	user/group, under confinement by the AppArmor profile 'foo'."
	Profiles can be specified in any way that complies with the rules of
	aa_change_profile(2). For instance, the sudoers configuration

	alice ALL=(ALL:ALL) APPARMOR_PROFILE=unconfined ALL

	allows alice to run any command unconfined (i.e., without an
	AppArmor profile), while

	alice ALL=(ALL:ALL) APPARMOR_PROFILE=foo//&bar ALL

	tells sudoers that alice can run any command under the stacked
	AppArmor profiles 'foo' and 'bar'.

	The intention of this option is to give sysadmins on Linux distros
	supporting AppArmor better options for fine-grained access control.
	Among other things, this option can enforce mandatory access control
	(MAC) over the operations that a privileged user is able to perform
	to ensure that they cannot privesc past the boundaries of a
	specified profile. It can also be used to limit which users are able
	to get unconfined system access, by enforcing a default AppArmor
	profile on all users and then specifying
	'APPARMOR_PROFILE=unconfined' for a privileged subset of users.
	[c20859d55]

	* MANIFEST, include/sudo_debug.h, src/Makefile.in, src/apparmor.c,
	src/parse_args.c, src/sudo.c, src/sudo.h:
	Add an apparmor_profile sudo setting

	Define a new sudo setting, `apparmor_profile`, that can be used to
	pass in an AppArmor profile that should be used to confine commands.
	If apparmor_profile is specified, sudo will execute the command
	using the new `apparmor_execve` function, which confines the command
	under the provided profile before exec'ing it.
	[bd25b85a6]

	* config.h.in, configure.ac, scripts/mkdep.pl, scripts/mkpkg:
	Add a --with-apparmor build flag

	Add a new build flag, --with-apparmor, that builds sudo with
	AppArmor support. Modify the build script for Debian and Ubuntu to
	enable this flag by default.
	[0b541c202]

2022-05-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_nopty.c, src/exec_pty.c:
	Pass the WUNTRACED flag to waitpid() even if __WALL is present.
	Otherwise, we won't get the wait status of a suspended command that
	is not being traced.
	[b20375301]

	* configure, configure.ac, lib/iolog/Makefile.in,
	lib/logsrv/Makefile.in, logsrvd/Makefile.in,
	plugins/sudoers/Makefile.in:
	Use explicit library dependencies instead of implicit. We now
	include all the dependent libraries when linking. Fixes a linking
	problem on CentOS Stream 9.
	[583e8bf53]

	* plugins/sudoers/logging.c:
	mail_parse_errors: allocate the correct amount of space for mail
	body. Use strlen(), not sizeof(), on "problem parsing sudoers" since
	it is a tranlated string and not a constant. This was caught by the
	existing overflow checks.
	[0b63af91b]

2022-05-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, src/Makefile.in, src/exec_nopty.c, src/exec_pty.c,
	src/regress/intercept/test_ptrace.c, src/sudo_exec.h,
	src/suspend_nopty.c:
	Move code to suspend sudo when no pty is in use to separate file.
	Use this in test_ptrace.c to be able to suspend just like sudo does.
	[0ea431e39]

2022-05-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_nopty.c, src/exec_ptrace.c, src/exec_pty.c,
	src/regress/intercept/test_ptrace.c, src/sudo_exec.h:
	Fix suspending a sudo-run shell in ptrace intercept mode with no
	pty. When ptracing a process, we receive the signal-delivery-stop
	signal before the group-stop signal. If sudo is running the command
	in the same terminal, we need to wait until the stop signal is
	actually delivered to the command before we can suspend sudo itself.
	If we suspend sudo before receiving the group-stop, the command will
	be restarted with PTRACE_LISTEN too late and will miss the SIGCONT
	from sudo.
	[a52e3776f]

	* docs/TROUBLESHOOTING.md, docs/sudo_logsrvd.man.in,
	docs/sudo_logsrvd.mdoc.in:
	OpenSSL 3.x requires the key usage extension be present in CA and
	certs. Certificates generated with a CA that doesn't set the key
	usage extension will fail to validate if "tls_verify" is enabled.
	[0bcfe6184]

	* logsrvd/tls_init.c:
	Include the cert or ca file in error messages where applicable.
	[69fa04f06]

	* logsrvd/tls_init.c:
	Add missing include of string.h for strerror(3).
	[a82fe9aa0]

	* logsrvd/logsrvd.c, logsrvd/logsrvd_relay.c, logsrvd/sendlog.c,
	logsrvd/tls_client.c, logsrvd/tls_init.c,
	plugins/sudoers/log_client.c:
	If ERR_reason_error_string() returns NULL, fall back on
	strerror(errno). That way we get reasonable error messages for
	missing files, etc.
	[d7df7abf8]

	* logsrvd/tls_init.c:
	set_dhparams: pass BIO_new_file() "r" for the file mode, not
	O_RDONLY. Unlike BIO_new_fp(), BIO_new_file() takes an fopen-style
	mode string.
	[3ba807b70]

	* src/exec_ptrace.c:
	The set_sc_arg3, get_sc_arg3 and set_sc_arg4 functions are not used.
	Use ifdef notyet to disable for now since they may be used in the
	future.
	[161a97260]

2022-05-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.h, src/sudo_exec.h:
	Use __x86_64__ preprocessor symbol, not __amd64__ Also clarify a
	comment about MIPS ptrace.
	[0bfbef016]

	* src/exec_ptrace.h, src/sudo_exec.h:
	ptrace support has been tested on Debian/s390x. It should also work
	on s390 but this has not been tested. I have not added a compat mode
	to trace 31-bit binaries on s390x due to the lack of a test system.
	[7329a4a86]

	* src/exec_ptrace.h:
	Define sudo_pt_regs instead of user_pt_regs and include the struct
	keyword. On s390, the struct is typedef'd without a name.
	[2eb8ff17b]

	* src/exec_ptrace.h, src/sudo_exec.h:
	ptrace support has been tested on Debian/riscv64.
	[74c6353a8]

2022-05-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.in:
	Add maxseq setting to log_output example. This should make it more
	obvious that you need to adjust maxseq unless you have (virtually)
	unlimited disk space.
	[906eb19ec]

	* scripts/mkpkg:
	Fix dependency check for libssl on Debian/Ubuntu with OpenSSL 3.
	Also add check for python 3.10 and 3.11 and remove versions < 3.4.
	Fixes building on Ubuntu 22.04.
	[b61a55eb1]

2022-05-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.h:
	Tracing 32-bit arm binaries from a 64-bit sudo works.
	[55bd6272c]

	* src/exec_ptrace.c:
	ptrace_write_string: the terminating NUL fix was reverted by
	mistake.
	[3238c43f9]

	* src/exec_ptrace.h, src/sudo_exec.h:
	ptrace-based intercept has now been tested on 32-bit arm
	[cb95b75ff]

2022-05-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.h:
	Don't use PTRACE_SET_SYSCALL for 32-bit arm binaries running on
	aarch64. Use PTRACE_SETREGSET with NT_ARM_SYSTEM_CALL instead just
	like we would for a 64-bit binary. Newer Linux headers don't define
	PTRACE_SET_SYSCALL for aarch64.
	[bb3c4ba07]

	* src/regress/intercept/test_ptrace.c:
	Replace verbose flag with debug flag. This is more accurate since it
	actually uses the debug subsystem.
	[6a196190c]

	* src/exec_ptrace.h:
	Initial cut at MIPS support, untested. Mips is a bit different in
	that most Linux distros appear to use the n32 ABI on 64-bit CPUs. We
	don't currently support tracing a 64-bit binary from a 32-bit sudo.
	We could suport tracing o32 ABI binaries in compat mode, though.
	[3226c2df4]

2022-05-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/regress/intercept/test_ptrace.c:
	Add have_seccomp_action("trap") call to check for
	SECCOMP_MODE_FILTER.
	[f4cc99c06]

	* src/exec_ptrace.c, src/exec_ptrace.h:
	Add arm-specific code to set the system call number. Fixes rejection
	of commands due to policy on arm when in intercept mode.
	[b99debf92]

	* scripts/mkpkg:
	Fix OS major version detection on CentOS Stream
	[4a7d26c38]

	* src/exec_ptrace.c:
	ptrace_intercept_execve: read back the updated syscall args in test
	mode. This makes it easier to detect problems with the syscall
	rewrite code when testing with test_ptrace.
	[ea2bf7f1f]

	* src/exec_ptrace.c:
	Repair ptrace_write_vec() for compat binaries.
	[4ecada04a]

	* src/regress/intercept/test_ptrace.c:
	Fix a crash when not run in verbose mode.
	[0f104d2ff]

2022-05-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	Fix compilation error on systems with no compat arch. Currently only
	affects i386.
	[f94e5d40d]

	* src/exec_ptrace.c:
	Move code to write a string vector to ptrace_write_vec().
	[64aba8f88]

	* src/exec_ptrace.c:
	Fix tracing compat binaries on big endian systems. We need to swap
	the order of the two 32-bit addresses for big-endian.
	[55f5e389b]

	* src/exec_ptrace.c, src/exec_ptrace.h, src/sudo_exec.h:
	Enable ptrace intercept on powerpc. Tested on ppc64 and ppc64le.
	[31e8506c8]

	* MANIFEST, src/Makefile.in, src/exec_intercept.h,
	src/exec_ptrace.c, src/regress/intercept/test_ptrace.c,
	src/sudo_exec.h:
	Add test_ptrace program to test ptrace-based intercept support.
	[040e75a07]

	* src/exec_ptrace.c:
	Use unsigned long for addresses so we don't have to worry about sign
	extension.
	[532e8218b]

2022-05-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	ptrace_write_string: make sure we always write the terminating NUL.
	We can't check *str for NUL since it may not have been written yet.
	[6cd461d9f]

	* src/exec_ptrace.c:
	Fix compilation error when SECCOMP_AUDIT_ARCH_COMPAT is not defined.
	[8fe123867]

2022-05-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c, src/exec_ptrace.h:
	It is now safe to make WORDALIGN use compat (not native) aligment.
	We allocate space for an extra pointer between argv and the string
	table for compat binaries so there is no need to align address to
	sizeof(long).
	[a40d62b3d]

	* src/exec_ptrace.c, src/exec_ptrace.h:
	Use the entire word in ptrace_get_vec_len() and ptrace_read_vec().
	For compat binaries, use the upper 32-bits as the next word instead
	of calling ptrace(2) to get it. This reduces the number of ptrace(2)
	calls when reading argv and envp for compat binaries.
	[f82aa334c]

2022-05-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	We don't need to align strings in the string table. We align the
	start of the string table to a word boundary to help prevent overlap
	when writing the pointers. However, the actual strings themselves
	don't need to be aligned.
	[c9a481506]

2022-05-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	Avoid potentially overwriting string table when writing argv. In
	compat mode, if argc is odd, writing the last pointer of argv will
	overlap with the address of argv[0], so leave an extra word in
	between. Also remove incorrect comments about PTRACE_PEEKDATA
	unaligned access.
	[206cd10ed]

2022-05-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	ptrace_intercept_execve: rewrite path to exec if changed by the
	policy
	[0a2975367]

2022-05-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c, src/exec_ptrace.h:
	Use native word size for padding and when reading/writing strings.
	If we try to use the compat word size we can end up in a situation
	where a subsequent PTRACE_POKEDATA overwrites part of what we've
	already written since it always writes in sizeof(long) units.
	[a15ca9c85]

2022-05-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	ptrace_intercept_execve: plug memory leak of get_execve_info()
	buffer
	[339746730]

	* MANIFEST, src/Makefile.in, src/exec_intercept.h,
	src/exec_ptrace.c, src/exec_ptrace.h:
	Move register definitions to exec_ptrace.h
	[35ea534b3]

	* src/exec_ptrace.c:
	Add support for intercepting 32-bit binaries on 64-bit systems. We
	need to define the ptrace register struct ourselves for the 32-bit
	system since there is no good way to get it from the system headers.
	Currently only implemented for x86_64 and aarch64.
	[d3a1bf421]

	* src/exec_ptrace.c:
	Add setters and getters for ptrace(2) register access. This will be
	used when running 32-bit binaries from a 64-bit sudo.
	[de678ba77]

	* src/exec_ptrace.c:
	exec_ptrace_handled: don't return early if ptrace_intercept_execve()
	fails. We need to continue the traced process even if there is a
	fatal error. Otherwise, sudo will appear to hang as the running
	process is left in PTRACE_EVENT stop.
	[f53053a66]

	* src/exec_ptrace.c:
	Don't use PTRACE_GETREGS, it is too complicated when runing compat
	binaries. Unlike PTRACE_GETREGSET, PTRACE_GETREGS requires that we
	manually map registers from 64-bit to 32-bit layouts when running,
	e.g. a 32-bit binary from a 64-bit sudo process.
	[bbbb6e2ac]

2022-05-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/defaults.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h, src/exec_nopty.c, src/exec_pty.c,
	src/parse_args.c, src/sudo.c, src/sudo.h, src/sudo_exec.h:
	Initialize intercept_allow_setid to true if we use ptrace(2) and
	seccomp(2).
	[4ab6a87b9]

2022-05-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_nopty.c, src/exec_ptrace.c, src/exec_pty.c,
	src/sudo_exec.h:
	If the process is already being traced, just resume it and clear
	flags. This makes it possible to run sudo in ptrace intercept mode
	from within a shell (or other process) that is already being traced
	by sudo.
	[e84fdd99f]

	* src/exec_ptrace.c:
	exec_ptrace_handled: fix delivery of non-stop signals. We need to
	deliver signals to the tracee as long as it is not a group stop.
	Fixes a hang while tracing another sudo process.
	[cc52ab770]

	* src/exec_nopty.c:
	Make SIGCHLD handler more consistent with the pty version. No real
	change other than a few debug statements.
	[4cac34b86]

	* plugins/sudoers/parse.c:
	sudoers_lookup_check: preserve intercepted flag when reinitializing
	cmnd_info Otherwise we may not reject an attempt to run a
	set-user-ID command.
	[4d75b3279]

	* src/exec_nopty.c, src/exec_pty.c:
	Kill the command if intercept_setup() or ptrace_seize() fail.
	[3ee8bcefb]

2022-05-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_ptrace.c:
	Add support for intercepting x32 binaries on Linux x64_64.
	[1d17415b6]

	* plugins/sudoers/match_command.c:
	Move intercept setid check out of do_stat() and into its own
	function. For command_matches_all() we should only perform the setid
	check if the file exists and intercept is enabled. Otherwise, we can
	end up returning an error if the fully-qualified command does not
	exist. Fixes a regression introduced in sudo 1.9.0 with the support
	for digests in conjunction with "sudo ALL".
	[42117a1ce]

2022-04-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac:
	Sudo 1.9.11
	[4ac1237bd]

	* plugins/sudoers/auth/kerb5.c, src/exec_ptrace.c:
	Fix typos
	[307b4f69b]

	* MANIFEST, docs/CONTRIBUTORS.md, po/ka.mo, po/ka.po:
	New Georgian translation from translationproject.org
	[77979932b]

	* src/exec_ptrace.c:
	Short-circuit the policy check if the command doesn't exist.
	Otherwise, both sudo and the shell will report the error.
	[cdc35afff]

	* src/exec_ptrace.c:
	Use PTRACE_GETREGS/PTRACE_SETREGS on platforms that support it. This
	has a better chance of working on things like user-mode Linux.
	[b75a8be34]

	* src/exec_intercept.c, src/exec_ptrace.c:
	In ptrace(2) intercept mode, add execveat to the seccomp(2) filter.
	This allows us to avoid logging the initial command twice regardless
	of whether the kernel supports execveat(2) or not.
	[4010d06ed]

	* docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Update intercept documentation.
	[052d3d1d9]

	* src/exec_intercept.c, src/exec_intercept.h, src/exec_ptrace.c,
	src/sudo.c, src/sudo.h:
	For ptrace intercept mode, do not do a policy check for the initial
	command. We can skip the policy check for the execve(2) of the
	initial command since it has already been check. Otherwise, we would
	log the command twice. When using fexecve(2) due to a digest check,
	there should be no need to skip the initial command since it will be
	executed via execveat(2) not execve(2). However, on older kernels
	without execveat(2), glibc will emulate fexecve(2) using /proc which
	will result in the extra log entry.
	[52cacfc30]

	* plugins/sudoers/parse.c, src/exec.c, src/selinux.c, src/sudo.h:
	Enable intercept and log_subcmds for SELinux using ptrace and
	seccomp.
	[5d385b3c5]

	* src/exec_common.c, src/exec_monitor.c, src/exec_nopty.c,
	src/exec_ptrace.c:
	Suspend the child process and wait for SIGUSR when using ptrace.
	This fixes a race condition in ptrace-based intercept mode when
	running the command in a pty. It was possible for the monitor to
	receive SIGCHLD when the command sent itself SIGSTOP before the main
	sudo process did.
	[423fbedb6]

	* src/exec_ptrace.c:
	Check architecture in the seccomp filter. Currently only supports
	the native architecture.
	[fe80dc0bc]

	* src/exec_ptrace.c:
	Add support for replacing argv in ptrace intecept mode. The new argv
	is written below the tracee's stack and the system call argument is
	replaced with the new argv address.
	[8e7ead57f]

	* MANIFEST, src/Makefile.in, src/exec_intercept.c,
	src/exec_intercept.h, src/exec_nopty.c, src/exec_ptrace.c,
	src/exec_pty.c, src/sudo_exec.h:
	Check the policy for ptrace-based intercept mode.
	[8e375445f]

	* src/exec_ptrace.c:
	Add support for getting the execve(2) arguments via ptrace(2). This
	will be used to perform a policy check in intercept mode.
	[3e73644cd]

	* MANIFEST, src/Makefile.in, src/exec.c, src/exec_common.c,
	src/exec_intercept.c, src/exec_nopty.c, src/exec_ptrace.c,
	src/exec_pty.c, src/sudo.h, src/sudo_exec.h:
	Add scaffolding for ptrace-based intercept mode.
	[01733a521]

	* src/exec_nopty.c, src/exec_pty.c:
	Handle multiple child processes in the SIGCHLD handler. This is
	required by the uncoming ptrace intercept code.
	[22866f242]

	* include/sudo_compat.h, src/exec_monitor.c, src/exec_nopty.c,
	src/exec_pty.c:
	Stop using the WCONTINUED flag with waitpid(2). We don't use it for
	anything other than a debug message and it will cause problems when
	intercept mode starts using ptrace(2).
	[46edc4e19]

2022-04-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/iolog_writer.c, logsrvd/logsrvd_journal.c,
	plugins/sudoers/log_client.c:
	sudo_logsrvd: update elapsed time for winsize and suspend in journal
	mode Fixes a bug in store-first relay mode where the commit point
	messages sent by the server were incorrect.
	[c7ed03c98]

2022-04-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/visudo.man.in, docs/visudo.mdoc.in:
	Fix typo; GitHub issue #144
	[72794ecd7]

2022-04-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_monitor.c:
	Add struct command details * to struct monitor_closure. This will be
	used in the future by the ptrace intercept code.
	[d2da56dac]

	* src/exec.c, src/exec_intercept.c:
	Don't require a pty for intercept or log_subcmmds. The code to take
	back control of the tty before a policy check doesn't appear to be
	needed. If the command is run in its own pty, sudo has control over
	the user's tty. If the command is run in the user's tty, sudo should
	be in the foreground process group.
	[841375783]

	* src/exec.c:
	Translate "unable to set limit privileges" strings.
	[839c18937]

2022-04-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac:
	Define _TIME_BITS=64 on systems that define __TIMESIZE, like GNU
	libc. This should be replaced by a specialized autoconf macro when
	one becomes available.
	[ec5164ced]

2022-04-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* ABOUT-NLS, MANIFEST, docs/CONTRIBUTING.md:
	Remove ABOUT-NLS file, it is no longer maintained as part of GNU
	gettext. Expand the Translations section in CONTRIBUTING.md.
	[c414a89eb]

	* docs/TROUBLESHOOTING.md:
	Expand section about expired accounts to include /etc/shadow info.
	GitHub issue #143
	[c51b81fa5]

2022-04-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	*
	plugins/python/regress/testdata/check_example_group_plugin_is_able_t
	o_debug.log, plugins/python/regress/testhelpers.c:
	clean_output: prune lines that consisting of '^' characters and
	whitespace. Starting with Python 3.11, backtraces may contain a line
	with '^' characters to bring attention to the important part of the
	line. Also replace "REJECT" with "0" in backtrace output for Python
	3.11.
	[930271847]

2022-04-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Fix check for EVP_MD_CTX_new() when -pthread is in Libs.private.
	[a1e20ddd9]

2022-04-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, lib/eventlog/Makefile.in,
	lib/fuzzstub/Makefile.in, lib/iolog/Makefile.in,
	lib/logsrv/Makefile.in, lib/protobuf-c/Makefile.in,
	lib/util/Makefile.in, lib/zlib/Makefile.in, logsrvd/Makefile.in,
	plugins/audit_json/Makefile.in, plugins/group_file/Makefile.in,
	plugins/python/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_approval/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Rename SSP_(C|LD)FLAGS -> HARDENING_(C|LD)FLAGS
	[dcb2fb26a]

	* INSTALL.md:
	Mention other hardening compilation and linker options.
	[4a8877beb]

2022-03-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, m4/libtool.m4, m4/ltoptions.m4, m4/ltsugar.m4,
	m4/ltversion.m4, m4/lt~obsolete.m4, scripts/ltmain.sh:
	Update to libtool 2.4.7.
	[cc4d7196f]

	* configure, configure.ac:
	Fix check for EVP_MD_CTX_new using static libcrypto with
	dependencies.
	[90501b700]

2022-03-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	--enable-openssl: don't add non-existent directories to
	PKG_CONFIG_LIBDIR
	[c77cba373]

2022-03-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	Fix a typo in the AIX section.
	[dfd8ef293]

2022-03-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/zlib/crc32.c, lib/zlib/crc32.h, lib/zlib/deflate.c,
	lib/zlib/deflate.h, lib/zlib/gzguts.h, lib/zlib/gzlib.c,
	lib/zlib/gzread.c, lib/zlib/gzwrite.c, lib/zlib/infback.c,
	lib/zlib/inffast.c, lib/zlib/inflate.c, lib/zlib/inflate.h,
	lib/zlib/inftrees.c, lib/zlib/trees.c, lib/zlib/zlib.exp,
	lib/zlib/zlib.h, lib/zlib/zutil.c, lib/zlib/zutil.h:
	Update embedded copy of zlib to version 1.2.12. Fixes CVE-2018-25032
	[5c0436f0b]

2022-03-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/kerb5.c:
	Minor style nit.
	[6af2b4188]

	* :
	Merge pull request #138 from dfskoll/main

	If we're using Kerberos, don't overwrite a custom prompt
	[6143dcae9]

2022-03-16  Dianne Skoll  <dianne@skoll.ca>

	* plugins/sudoers/auth/kerb5.c:
	If we're using Kerberos, don't overwrite a custom prompt if one was
	given with -p

	Thanks to @thend20 for testing this patch.
	[11c6cdc02]

2022-03-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/conversation.c:
	Write the \r\n pair to ttyfp if possible, falling back on fp. This
	is consistent with the vfprintf() call and fixes a problem
	introduced by the last commit where the newline could be written
	before the message instead of after.
	[e2692f109]

	* include/sudo_util.h,
	plugins/sudoers/regress/starttime/check_starttime.c:
	Adjust starttime test when run under Debian faketime. Bug #1026
	[753771390]

2022-03-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/conversation.c:
	sudo_conversation_printf: convert trailing nl to cr + nl combo. This
	fixes output when the terminal is in raw mode and is consistent with
	how sudo_conversation() behaves.
	[210875796]

	* plugins/sudoers/sudoers.c:
	Do not warn, log or send mail for errors when reinitializing
	defaults. If there is a problem, we would have already warned,
	logged or mailed it. The one exception is the initial defaults,
	which should never fail.
	[ff1731798]

	* lib/eventlog/eventlog.c, src/exec_monitor.c, src/exec_nopty.c,
	src/exec_pty.c, src/tgetpass.c:
	Block SIGCHLD when forking the mailer. Otherwise, it may be picked
	up by the signal handler instead of our waitpid(2) call. Don't warn
	if waitpid() returns 0 in a SIGCHLD handler.
	[de4738035]

	* plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/parse.c, plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.c:
	If there are multiple parse errors, send them in a single mail
	message.
	[e5a50ae42]

	* lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/python/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Unset LANGUAGE when running tests, otherwise it may override LC_ALL.
	Bug #1025.
	[1f64aca22]

2022-03-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/visudo.c:
	Looser owner/permission checks for an uninstalled sudoers file. We
	don't check the owner or permissions on a sudoers file that is
	specified as an argument to visudo by default. However, the owner
	and mode of files included via @includedir were still checked. This
	commit makes the owner and permissions checks for filed included via
	@includedir follow the same as for the original sudoers file.
	[ef4ce5c08]

	* lib/util/regress/getdelim/getdelim_test.c:
	getdelim_test: increase longstr to check end pointer after realloc
	This would have caught the recent bug in our getdelim replacement
	when run under address-sanitizer or valgrind.
	[b2a32f95e]

	* plugins/sudoers/check_aliases.c:
	Add missing va_start/va_end around call to sudoers_error_hook().
	Coverity CID 250885
	[8e7c004c7]

	* lib/util/getdelim.c:
	Correctly update the end pointer when we expand the buffer. From
	Robert Manner.
	[c48c511e9]

2022-03-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/secure_path.c:
	sudo_secure_path: pass the struct stat * argument directly to
	stat(2) Set the pointer to a struct stat on the stack if st is NULL.
	Avoids a needless memcpy() at the end.
	[6ff33922f]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Fix off-by-one when storing line number in userspec. We store the
	line number *after* parsing the newline so we need to subtract one.
	[8dae0ba06]

	* lib/eventlog/eventlog.c:
	For alert messages, the command or runuser may not be set. This
	fixes the logging of parse errors when JSON logging is enabled.
	[eb2803c3e]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/group_plugin.c, plugins/sudoers/iolog.c,
	plugins/sudoers/locale.c, plugins/sudoers/logging.h,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	Pass file, line and column to sudoers defaults callbacks.
	[65e5b89f1]

	* plugins/sudoers/audit.c, plugins/sudoers/check_aliases.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/defaults.c,
	plugins/sudoers/file.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/parse.h, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/sudoers/test18.toke.ok,
	plugins/sudoers/regress/visudo/test2.err.ok,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/visudo.c:
	Add a hook for sudoers parse errors (including defaults and
	aliases). The hook can be used to log parser errors (sudoers module)
	or keep track of which files have an error (visudo). Previously, we
	only kept track of a single parse error.
	[d7ddff2a3]

2022-03-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/file.c, plugins/sudoers/ldap.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/sudoers/test18.out.ok,
	plugins/sudoers/sssd.c, plugins/sudoers/sudo_nss.h,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c:
	Add a source to struct sudo_nss and use it if getdefs() fails. Also
	remove useless "Problem with defaults entries" warning in
	testsudoers.
	[6ec279532]

2022-03-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/util/regress/getgrouplist/getgrouplist_test.c:
	Plug a few test memory leaks now that they return from main().
	[31ab2e229]

2022-03-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/regress/logwrap/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c:
	Remove extra newline in sudo_warnx() calls.
	[346dce435]

	* plugins/sudoers/check_aliases.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/file.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/sudoers.h, plugins/sudoers/visudo.c:
	Preserve the column and error message when there is a syntax error.
	This information is now included in the error mail sent to root.
	[7d3f9293c]

	* plugins/python/python_plugin_common.c:
	Deinit python subinterpreters in reverse order (last to first). This
	appears to work around a crash on OpenBSD with Python 3.9.10.
	[dfda098ae]

2022-03-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_10 for changeset 3557db693da4
	[ae52df80c]

	* :
	Merge sudo 1.9.10 from tip.
	[cc56fc18e]

	* lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/python/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	For 'make check-verbose' run fuzzers with -verbose=1 This is the
	default for libFuzzer but not for the stub fuzzer lib.
	[c131b2747]

2022-03-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md:
	INSTALL.md: Mention "make check" and "make check-verbose"
	[ecaa8ab42]

	* scripts/generate_test_coverage.sh:
	Repair generate_test_coverage.sh after move to scripts directory.
	[9f47ea5cb]

	* Makefile.in, docs/Makefile.in, examples/Makefile.in,
	include/Makefile.in, lib/eventlog/Makefile.in,
	lib/fuzzstub/Makefile.in, lib/iolog/Makefile.in,
	lib/logsrv/Makefile.in, lib/protobuf-c/Makefile.in,
	lib/util/Makefile.in, lib/zlib/Makefile.in, logsrvd/Makefile.in,
	plugins/audit_json/Makefile.in, plugins/group_file/Makefile.in,
	plugins/python/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_approval/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Add check-verbose Makefile target that runs tests in verbose mode.
	[cdee5d48d]

	* lib/eventlog/regress/logwrap/check_wrap.c,
	lib/iolog/regress/host_port/host_port_test.c,
	lib/iolog/regress/iolog_filter/check_iolog_filter.c,
	lib/iolog/regress/iolog_json/check_iolog_json.c,
	lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/iolog/regress/iolog_timing/check_iolog_timing.c,
	lib/util/regress/closefrom/closefrom_test.c,
	lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/getdelim/getdelim_test.c,
	lib/util/regress/getgrouplist/getgids.c,
	lib/util/regress/getgrouplist/getgrouplist_test.c,
	lib/util/regress/glob/globtest.c,
	lib/util/regress/mktemp/mktemp_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsig/strsig_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/strtofoo/strtobool_test.c,
	lib/util/regress/strtofoo/strtoid_test.c,
	lib/util/regress/strtofoo/strtomode_test.c,
	lib/util/regress/strtofoo/strtonum_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c,
	lib/util/regress/uuid/uuid_test.c:
	Add -v option parsing to regress tests, currently a no-op. This will
	be used by a "check-verbose" target in the future.
	[43cc80d79]

2022-03-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/regress/check_python_examples.c,
	plugins/python/regress/testhelpers.h:
	Less verbose output unless the -v option is used. Also display a
	test summary at the end.
	[dda14cb57]

	* src/regress/net_ifs/check_net_ifs.c,
	src/regress/noexec/check_noexec.c,
	src/regress/ttyname/check_ttyname.c:
	verbose flag is boolean, not int
	[2c329dbe4]

	* configure.ac:
	Update copyright year.
	[908ae9510]

	* plugins/sudoers/Makefile.in, src/Makefile.in:
	Regenerate dependencies.
	[e9155a067]

	* MANIFEST, configure, configure.ac, lib/util/Makefile.in,
	lib/util/regress/closefrom/closefrom_test.c:
	Add sudo_closefrom() regression test.
	[75a0e5159]

	* NEWS, config.h.in, configure, configure.ac, lib/util/closefrom.c:
	Use close_range(2) in closefrom() emulation if available. On Linux,
	prefer our own closefrom() emulation since the glibc version may
	fail if /proc is not present and close_range() is not supported. On
	FreeBSD, closefrom(3) will either call the closefrom or close_range
	system call, depending on which is available.
	[f1a697a8f]

	* configure, configure.ac:
	Repair --enable-pvs-studio on Linux.
	[c3177ce83]

	* configure, configure.ac:
	Mention apple radar 3710161 in the comment about broken macOS
	poll(2).
	[10ca59097]

2022-02-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/regress/net_ifs/check_net_ifs.c,
	src/regress/noexec/check_noexec.c,
	src/regress/ttyname/check_ttyname.c:
	Only display test totals unless run in verbose mode.
	[a199abe0e]

	* lib/util/regress/harness.in, plugins/sudoers/regress/harness.in:
	Allow test harness to be run from any directory. Also add missing
	copyright notice.
	[c2bd52edf]

	* lib/util/regress/harness.in:
	Adapt test harness for lib/util and move to regress directory.
	[a4f847b1d]

	* .gitignore, .hgignore, MANIFEST, configure, configure.ac,
	lib/util/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/harness.in:
	Adapt test harness for lib/util and move to regress directory.
	[a57e97996]

	* lib/fuzzstub/fuzzstub.c:
	Make fuzzer stub main() quiet by default. LLVM LibFuzzer displays
	the input and running time by default but we don't care about that
	for the stub fuzzer library.
	[6a8452367]

	* .gitignore, .hgignore, MANIFEST, configure, configure.ac,
	plugins/sudoers/Makefile.in, plugins/sudoers/harness.in:
	Move the cvtsudoers/sudoers/testsudoers/visudo tests into a script.
	It is easier to maintain these tests in script form. The output now
	more closely matches that of the other tests. The harness script can
	be invoked directly and supports running specific tests.
	[f35bbd5a3]

2022-02-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po:
	Updated translations from translationproject.org
	[e7b7c902d]

2022-02-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	sudo_regex_compile_v1 stub: set errstr on error
	[e703feeae]

	* logsrvd/Makefile.in, logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	fuzz_logsrvd_conf: add stub version of sudo_regex_compile_v1(). We
	want to fuzz our parser, not the libc regular expression code.
	[590c4cf62]

	* plugins/sudoers/regress/testsudoers/test18.out.ok,
	plugins/sudoers/regress/testsudoers/test18.sh:
	testsudoers/test18: don't rely on /usr/bin/w being present Fixes a
	test failure on Alpine Linux.
	[e5bbd3383]

2022-02-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Add configure check for gzclearerr() when using system zlib.
	[42f735c8d]

	* configure, configure.ac:
	Fix PVS-Studio platform check for macOS.
	[68bc030c0]

	* plugins/sudoers/ldap.c:
	sudo_ldap_parse_options: fix memory leak of sudoRole cn string.
	Coverity CID 249976
	[22a01410b]

	* src/sudo_intercept_common.c:
	command_allowed: plug memory leak on strdup() failure. Coverity CID
	249972
	[f793042be]

2022-02-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/check.c:
	display_lecture: just return if callback is NULL
	[b1fd1ec0f]

	* lib/eventlog/eventlog.c:
	For alert messages it is possible for evlog to be NULL. Coverity CID
	238641
	[330b4e821]

	* logsrvd/logsrv_util.c:
	iolog_seekto: initialize struct timing_closure before using.
	Coverity CID 249977
	[8290a1e57]

	* logsrvd/iolog_writer.c:
	iolog_rewrite: initialize struct timing_closure before using.
	Coverity CID 249971
	[2315c0b3b]

	* scripts/mkpkg:
	Allow ARCH_FLAGS to be overridden and handle macOS 12.
	[79d850034]

	* scripts/mkpkg:
	Prefer if [ ... ]; then over if test ...; then.
	[9f427b017]

	* .circleci/config.yml:
	Do not build with -Werror on macOS. Some macOS warnings are bogus,
	for instance it has an incorrect getgrouplist(3) definition.
	[77164836f]

	* .circleci/config.yml:
	Build and test macos with circleci.
	[cf8451127]

2022-02-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention lecture behavior change.
	[c7fb51359]

	* lib/iolog/regress/iolog_filter/check_iolog_filter.c:
	Fix compilation on systems without a real openat(2).
	[eaf76278e]

	* plugins/sudoers/match_digest.c:
	Better warning message when the digest in sudoers is the wrong
	length.
	[b0fa76950]

	* lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c,
	lib/util/regress/fuzz/fuzz_sudo_conf.c,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Do not disable fuzzer output if SUDO_FUZZ_VERBOSE env variable is
	set.
	[41bc52302]

2022-02-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/afs.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/check.c,
	plugins/sudoers/check.h, plugins/sudoers/timestamp.c:
	Display the lecture immediately before prompting for a password.
	This means we no longer display the lecture unless the user is going
	to enter a password. Authentication methods that don't interact with
	the user via the terminal don't trigger the lecture.
	[2911c31dd]

	* NEWS, plugins/sudoers/logging.c:
	Add back warning when a user is not allowed to run a command.
	Previously, the warning was displayed when a user was not in the
	sudoers file, or was present but not listed for the local host. The
	new behavior is to display the warning if a command is denied and
	mail is sent to the administrator. Whether or not mail is sent is
	controlled by the "mail_*" flags in sudoers. The warning text is now
	"This incident has been reported to the administrator." which is
	hopefully less confusing. The message will not be printed if either
	the "mailto" or "mailerpath" sudoers settings are disabled.
	[9757d29a2]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Document that negating mailto or mailerpath disables sending mail.
	[973a8f08f]

2022-02-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	Don't try to send mail if mailto not set or the mailer is not
	present.
	[98ac09de3]

2022-02-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* TODO:
	Remove obsolete TODO file.
	[81d63244e]

2022-02-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/fi.mo,
	po/fi.po, po/fr.mo, po/fr.po, po/hr.mo, po/hr.po, po/ja.mo,
	po/ja.po, po/ko.mo, po/ko.po, po/pl.mo, po/pl.po, po/ro.mo,
	po/ro.po, po/sr.mo, po/sr.po, po/uk.mo, po/uk.po, po/vi.mo,
	po/vi.po, po/zh_CN.mo, po/zh_CN.po, po/zh_TW.mo, po/zh_TW.po:
	Updated translations from translationproject.org
	[bde48fb4c]

	* MANIFEST, lib/iolog/Makefile.in,
	lib/iolog/regress/iolog_filter/check_iolog_filter.c,
	lib/iolog/regress/iolog_filter/test1/log,
	lib/iolog/regress/iolog_filter/test1/timing,
	lib/iolog/regress/iolog_filter/test1/ttyin,
	lib/iolog/regress/iolog_filter/test1/ttyin.filtered,
	lib/iolog/regress/iolog_filter/test1/ttyout,
	lib/iolog/regress/iolog_filter/test2/log,
	lib/iolog/regress/iolog_filter/test2/timing,
	lib/iolog/regress/iolog_filter/test2/ttyin,
	lib/iolog/regress/iolog_filter/test2/ttyin.filtered,
	lib/iolog/regress/iolog_filter/test2/ttyout,
	lib/iolog/regress/iolog_filter/test3/log,
	lib/iolog/regress/iolog_filter/test3/timing,
	lib/iolog/regress/iolog_filter/test3/ttyin,
	lib/iolog/regress/iolog_filter/test3/ttyin.filtered,
	lib/iolog/regress/iolog_filter/test3/ttyout:
	Add tests for iolog filtering. This is the functionality used by the
	log_passwords and passprompt_regex options.
	[cadfbfedb]

	* lib/iolog/iolog_filter.c:
	iolog_pwfilt_run: apply regex on ttyout even if we disabled
	filtering. The heuristic used to decide when to disable filtering is
	when we see another ttyout buffer or find a cr or nl in the ttyin
	buffer. However, we should also check the buffer that caused us to
	disable filtering for a matching regex that would re-enable
	filtering. Programs that prompt for a password twice might otherwise
	not have the second password filtered.
	[b19bd9853]

2022-02-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md, README.LDAP.md, docs/TROUBLESHOOTING.md,
	docs/UPGRADE.md, docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in,
	docs/sudo.man.in, docs/sudo.mdoc.in, docs/sudo_logsrv.proto.man.in,
	docs/sudo_logsrv.proto.mdoc.in, docs/sudo_logsrvd.conf.man.in,
	docs/sudo_logsrvd.conf.mdoc.in, docs/sudo_plugin.man.in,
	docs/sudo_plugin.mdoc.in, docs/sudo_plugin_python.man.in,
	docs/sudo_plugin_python.mdoc.in, docs/sudoers.ldap.man.in,
	docs/sudoers.ldap.mdoc.in, docs/sudoers.man.in,
	docs/sudoers.mdoc.in, docs/sudoreplay.man.in,
	docs/sudoreplay.mdoc.in, docs/visudo.man.in, docs/visudo.mdoc.in,
	examples/sudo_logsrvd.conf.in:
	Avoid using "note that" and "note: " in documentation.
	[9f5615e5b]

	* INSTALL.md, README.LDAP.md, README.md, docs/CONTRIBUTING.md,
	docs/CONTRIBUTORS.md, docs/SECURITY.md, docs/TROUBLESHOOTING.md,
	docs/UPGRADE.md, docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in,
	docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in, docs/sudo.man.in,
	docs/sudo.mdoc.in, docs/sudo_logsrv.proto.man.in,
	docs/sudo_logsrv.proto.mdoc.in, docs/sudo_logsrvd.conf.man.in,
	docs/sudo_logsrvd.conf.mdoc.in, docs/sudo_logsrvd.man.in,
	docs/sudo_logsrvd.mdoc.in, docs/sudo_plugin.man.in,
	docs/sudo_plugin.mdoc.in, docs/sudo_plugin_python.man.in,
	docs/sudo_plugin_python.mdoc.in, docs/sudo_sendlog.man.in,
	docs/sudo_sendlog.mdoc.in, docs/sudoers.ldap.man.in,
	docs/sudoers.ldap.mdoc.in, docs/sudoers.man.in,
	docs/sudoers.mdoc.in, docs/sudoers_timestamp.man.in,
	docs/sudoers_timestamp.mdoc.in, docs/sudoreplay.man.in,
	docs/sudoreplay.mdoc.in, docs/visudo.man.in, docs/visudo.mdoc.in:
	Remove "please" from the documentation, it is considered bad style.
	[917595489]

	* docs/UPGRADE.md:
	Mention regular expressions and "sudo -l -U user" behavior change.
	[c4fc9b695]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	Add security notes about regular expressions in sudoers rules.
	[339ef82d6]

	* NEWS:
	Update NEWS for GitHub issue #134.
	[03484c0c1]

2022-02-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	fmt_authfail_message: compute the exact amount of space needed.
	Instead of truncating on overflow, warn and return NULL.
	[de52b8e44]

	* lib/eventlog/eventlog.c:
	do_logfile_sudo: plug memory leak of full_line Coverity CID 249329
	[274468d7d]

	* plugins/sudoers/logging.c:
	log_server_alert: plug potential memory leak Coverity CID 249328
	[f01b04401]

	* plugins/sudoers/parse.c:
	Fix potential NULL deref if getpwuid(0) fails. Coverity CID 249326
	[72961fe43]

2022-02-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.man.in, docs/sudo.mdoc.in, plugins/sudoers/parse.c,
	plugins/sudoers/policy.c:
	Restrict "sudo -U other -l" to users with sudo ALL for root or
	"other". Having "sudo ALL" permissions in no longer sufficient to be
	able to list another user's privileges. The invoking user must now
	have "sudo ALL" for root or the target user. GitHub issue #134
	[9f695f0fc]

2022-02-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Reword some of the NEWS items for 1.9.10.
	[df1bb3814]

2022-02-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo_logsrvd.conf.man.in, docs/sudo_logsrvd.conf.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.mdoc.in, lib/util/regex.c,
	po/sudo.pot:
	Limit regular expressions to 1024 characters each. Avoids a problem
	with the fuzzer creating large regular expressions that blow up the
	glibc regcomp().
	[33f54c853]

2022-02-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .gitignore, .hgignore, MANIFEST, configure, configure.ac,
	examples/Makefile.in, examples/sudo.conf.in,
	examples/syslog.conf.in:
	Substitute values in the example syslog.conf too. Also update ignore
	files for example changes
	[63b2a62f8]

	* MANIFEST, configure, configure.ac, docs/sudo.conf.man.in,
	docs/sudo.conf.mdoc.in, docs/sudo.man.in, docs/sudo.mdoc.in,
	docs/sudo_logsrvd.conf.man.in, docs/sudo_logsrvd.conf.mdoc.in,
	docs/sudo_plugin_python.man.in, docs/sudo_plugin_python.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.mdoc.in, examples/Makefile.in,
	examples/sudo_logsrvd.conf.in, examples/sudoers.in:
	Substitute paths set by configure in examples. Bug #1023
	[0bbe4b181]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update Project-Id-Version to 1.9.10.
	[0e2e4b688]

	* plugins/sudoers/po/sudoers.pot:
	Update .pot files for 1.9.10
	[541c165e6]

	* NEWS, configure, configure.ac:
	Sudo 1.9.10
	[85f9f2beb]

	* MANIFEST, docs/sudo_logsrvd.conf.man.in,
	docs/sudo_logsrvd.conf.mdoc.in, docs/sudoers.man.in,
	docs/sudoers.mdoc.in, include/sudo_util.h, lib/iolog/iolog_filter.c,
	lib/util/Makefile.in, lib/util/regex.c, lib/util/util.exp.in,
	plugins/sudoers/defaults.c, plugins/sudoers/match_command.c,
	plugins/sudoers/regress/sudoers/test28.in,
	plugins/sudoers/regress/sudoers/test28.json.ok,
	plugins/sudoers/regress/sudoers/test28.ldif.ok,
	plugins/sudoers/regress/sudoers/test28.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test28.out.ok,
	plugins/sudoers/regress/sudoers/test28.toke.ok,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.h, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c:
	Add helper function to compile a regex that supports (?i).
	[7c17f84a3]

2022-02-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, configure, configure.ac, docs/sudoers.man.in,
	docs/sudoers.mdoc.in, examples/sudoers,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/match_command.c,
	plugins/sudoers/parse.h, plugins/sudoers/regress/sudoers/test28.in,
	plugins/sudoers/regress/sudoers/test28.json.ok,
	plugins/sudoers/regress/sudoers/test28.ldif.ok,
	plugins/sudoers/regress/sudoers/test28.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test28.out.ok,
	plugins/sudoers/regress/sudoers/test28.toke.ok,
	plugins/sudoers/regress/sudoers/test29.in,
	plugins/sudoers/regress/sudoers/test29.json.ok,
	plugins/sudoers/regress/sudoers/test29.ldif.ok,
	plugins/sudoers/regress/sudoers/test29.out.ok,
	plugins/sudoers/regress/sudoers/test29.toke.ok,
	plugins/sudoers/regress/testsudoers/test18.out.ok,
	plugins/sudoers/regress/testsudoers/test18.sh,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c:
	Add support for matching command and args using regular expressions.
	Either the command, its arguments or both may be (separate) regular
	expressions.
	[86d217393]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Clear sudoers_errstr after it is used. This way we avoid printing
	the same error message more than once if there are multiple ERROR
	tokens returned from the lexer.
	[c8bf59104]

	* logsrvd/logsrvd_local.c:
	store_iobuf_local: fix potential double free on the error path.
	[3c1ce4bf7]

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in,
	docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in, docs/sudo.man.in,
	docs/sudo.mdoc.in, docs/sudo_logsrv.proto.man.in,
	docs/sudo_logsrv.proto.mdoc.in, docs/sudo_logsrvd.conf.man.in,
	docs/sudo_logsrvd.conf.mdoc.in, docs/sudo_logsrvd.man.in,
	docs/sudo_logsrvd.mdoc.in, docs/sudo_plugin.man.in,
	docs/sudo_plugin.mdoc.in, docs/sudo_plugin_python.man.in,
	docs/sudo_plugin_python.mdoc.in, docs/sudo_sendlog.man.in,
	docs/sudo_sendlog.mdoc.in, docs/sudoers.ldap.man.in,
	docs/sudoers.ldap.mdoc.in, docs/sudoers.man.in,
	docs/sudoers.mdoc.in, docs/sudoers_timestamp.man.in,
	docs/sudoers_timestamp.mdoc.in, docs/sudoreplay.man.in,
	docs/sudoreplay.mdoc.in, docs/visudo.man.in, docs/visudo.mdoc.in:
	Update links to sudo web site and reference markdown docs.
	[3b6f620e3]

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in,
	docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in, docs/sudo.man.in,
	docs/sudo.mdoc.in, docs/sudo_logsrvd.man.in,
	docs/sudo_logsrvd.mdoc.in, docs/sudo_plugin_python.man.in,
	docs/sudo_plugin_python.mdoc.in, docs/sudoers.man.in,
	docs/sudoers.mdoc.in, docs/sudoreplay.man.in,
	docs/sudoreplay.mdoc.in, docs/visudo.man.in, docs/visudo.mdoc.in:
	Use a 4n indent for code blocks instead of the default 6n.
	[7b5f0dfaf]

	* plugins/sudoers/testsudoers.c:
	testsudoers: disable argument permutation in GNU getopt This makes
	it easier to test commands with arguments.
	[4e3a48f2d]

	* lib/iolog/iolog_filter.c:
	iolog_pwfilt_run: fix types in error return
	[b6a2fcf59]

	* lib/iolog/iolog_filter.c, plugins/sudoers/iolog.c:
	Free potential leaks of passprompt_regex_handle. Coverity CID 249057
	[c5027c796]

2022-02-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #133 from Dzejrou/main

	Do not unset user timeout when no default timeout is set.
	[8dc2dc8bb]

2022-02-09  Jaroslav Jindrak  <dzejrou@gmail.com>

	* plugins/sudoers/policy.c:
	Do not unset user timeout when no default timeout is set.
	[1f3815c4f]

2022-02-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/fmtsudoers.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/sudoers/test2.in,
	plugins/sudoers/regress/sudoers/test2.json.ok,
	plugins/sudoers/regress/sudoers/test2.ldif.ok,
	plugins/sudoers/regress/sudoers/test2.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test2.out.ok,
	plugins/sudoers/regress/sudoers/test2.toke.ok:
	Don't escape double quotes (") in a command when printing it.
	Previously, cvtsudoers and "sudo -l" would escape double quotes in a
	command or command line argument, which is not valid sudoers syntax.
	[10ad934b7]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in:
	A few minor (mostly cosmetic) fixes. Add missing ALL to Runas_Member
	and Host. Replace some tabs with spaces. Fix the syntax of a
	sudoedit example.
	[8adad85b4]

2022-02-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #132 from ninedotnine/patch-1

	Sync example sudoers with default sudoers
	[53d3e2009]

2022-02-04  dan soucy  <ninedotnine@users.noreply.github.com>

	* examples/sudoers:
	Sync example sudoers with default sudoers

	`sudoers.in` was changed by 1d13533
	[8130dc9cb]

2022-02-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* ABOUT-NLS, INSTALL.md, NEWS, README.LDAP.md, docs/CONTRIBUTING.md,
	plugins/sudoers/po/README, po/README:
	Upgrade http links to https where possible and fix some broken
	links.
	[c5133d84e]

2022-02-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	Remove "This incident will be reported." from user warnings. This
	used to indicate that email had been sent to the administrator
	telling them that someone tried to run sudo. Whether or not sudo
	sends email is now configurable, so the warning may not be accurate.
	It is also confusing to the user since they will not know who the
	incident is being reported to. See also https://xkcd.com/838/
	[6aa320c96]

	* plugins/sudoers/sssd.c:
	Log fn_get_values() return code in the debug log on error. Also move
	a nested switch() statement out of 'case 0' for improved
	readability.
	[4d0aeea68]

	* plugins/sudoers/sssd.c:
	Do not return an error if we cannot connect to the SSSD connector.
	This may simply mean that nsswitch.conf lists sss as a sudoers
	source but SSSD is not configured for sudo. Otherwise, the user will
	receive a useless "problem with defaults entries" when the sssd
	backend tries to fetch the global defaults. Bug #1022.
	[de0f4398e]

	* plugins/sudoers/log_client.c, plugins/sudoers/logging.c:
	Set client_closure to NULL after freeing it.
	[c236d58b5]

	* plugins/sudoers/log_client.c:
	client_closure_alloc: init write_bufs/free_bufs before other
	allocations. We must initialize the tail queues before any possible
	call to client_closure_free(), such as due to malloc() failure.
	[3f1bb7bc9]

	* logsrvd/logsrvd_journal.c:
	Add missing default return in last commit.
	[c4e67624e]

	* logsrvd/logsrvd_journal.c:
	sudo_logsrvd: make sure journal exists before writing the alert
	message. Fixes a potential NULL dereference when journaling an alert
	message.
	[d18ee7935]

	* include/sudo_compat.h:
	Fix compilation on Debian kFreeBSD. The configure script correctly
	detects that utimensat() and futimens() are missing but the headers
	define stub versions of the functions. Including sys/stat.h pulls in
	the system definitions so we can override them safely. Bug #1021.
	[2e957cd43]

2022-02-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/ttyname.c:
	Add fallback if /proc/self/stat or /proc/pid/psinfo is missing or
	invalid. If the /proc file indicates no terminal is present there is
	no fallback. Bug #1020
	[a29940629]

2022-02-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/check.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c:
	Add sudoers option to perform authentication even in non-interative
	mode. If noninteractive_auth is set, authentication methods that do
	not require input from the user's terminal may proceed. It is off by
	default, which restores the pre-1.9.9 behavior of "sudo -n".
	[85fef8b50]

	* MANIFEST, lib/iolog/iolog_filter.c,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.7:
	Work around a glibc regcomp() bug with repeated '+' operators. Glibc
	regcomp() has a bug where it uses excessive memory for repeated '+'
	ops. Collapse them to avoid running the fuzzer out of memory.
	[6564f1ae4]

	* logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.1,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.2,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.3,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.4,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.5,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.6:
	Rebase seed corpus on updated sudo_logsrvd.conf example.
	[ac555d454]

	* logsrvd/logsrvd_conf.c:
	Fix parsing of "retry_interval" in the relay section. The setting
	was present but the callback was missing so it could not be parsed
	in the conf file.
	[ad719d06b]

	* logsrvd/logsrvd_conf.c:
	Use TIME_T_MAX as the upper limit when parsing timeouts.
	[2df2276d5]

	* plugins/sudoers/auth/pam.c:
	converse: don't set response pointer on error Linux pam_conv(3) says
	not to set the pointer on PAM_CONV_ERR.
	[46ca28821]

2022-01-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/regress/cvtsudoers/sudoers4:
	Add missing sudoers4 test file for new cvtsudoers test.
	[3c84aef90]

	* MANIFEST, plugins/sudoers/cvtsudoers_merge.c,
	plugins/sudoers/regress/cvtsudoers/test38.out.ok,
	plugins/sudoers/regress/cvtsudoers/test38.sh:
	defaults_check_conflict: it is only really a conflict if the binding
	match If the Defaults name matched but the binding does not, we can
	simply leave it be. Fixes a problem where given two sudoers sources
	that have a host specified, if they contain conflicting Defaults
	entries we would drop one of the Defaults instead of keeping both
	after making them host-specific.
	[960bf9965]

	* MANIFEST, plugins/sudoers/cvtsudoers_merge.c,
	plugins/sudoers/regress/cvtsudoers/sudoers1,
	plugins/sudoers/regress/cvtsudoers/sudoers2,
	plugins/sudoers/regress/cvtsudoers/sudoers3,
	plugins/sudoers/regress/cvtsudoers/test34.out.ok,
	plugins/sudoers/regress/cvtsudoers/test34.sh,
	plugins/sudoers/regress/cvtsudoers/test35.out.ok,
	plugins/sudoers/regress/cvtsudoers/test35.sh,
	plugins/sudoers/regress/cvtsudoers/test36.out.ok,
	plugins/sudoers/regress/cvtsudoers/test36.sh,
	plugins/sudoers/regress/cvtsudoers/test37.out.ok,
	plugins/sudoers/regress/cvtsudoers/test37.sh:
	Make it possible to merge a host-based Defaults with a global one.
	We convert the global Defaults to a host-based one with a single
	"ALL" member. Later, when we simplify the host list, we'll convert
	this back to a global Defaults.
	[8f4351a89]

2022-01-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd_conf.c:
	Check for garbage after [section] in sudo_logsrvd.conf.
	[be4d62e9a]

	* logsrvd/regress/fuzz/fuzz_logsrvd_conf.dict,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.dict:
	Sync fuzzing dictionary with current configuration keyword list.
	[9303aec0d]

2022-01-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/iolog.c,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/serialize_list/check_serialize_list.c,
	plugins/sudoers/regress/unescape/check_unesc.c,
	plugins/sudoers/serialize_list.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/unesc_str.c:
	Escape/unescape commas when serializing/deserializing a stringlist.
	[5ea0bf4ee]

	* docs/sudo_logsrvd.conf.man.in, docs/sudo_logsrvd.conf.mdoc.in,
	examples/sudo_logsrvd.conf, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c, logsrvd/logsrvd_local.c:
	Add new log_passwords and passprompt_regex settings. When logging
	terminal input, if log_passwords is false and any of the regular
	expressions in the passprompt_regex list are found in the terminal
	output, terminal input will be replaced with '*' characters until a
	newline or carriage return is found in the input or an output
	character is received.
	[9b93961b3]

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/defaults.h:
	Add a flag to avoid splitting list entries on white space.
	[c58a080dd]

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/iolog.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c:
	Add a new sudoers settings log_passwords and passprompt_regex. When
	logging terminal input, if log_passwords is disabled and any of the
	regular expressions in the passprompt_regex list are found in the
	terminal output, terminal input will be replaced with '*' characters
	until a newline or carriage return is found in the input or an
	output character is received.
	[0efe28003]

	* MANIFEST, include/sudo_iolog.h, lib/iolog/Makefile.in,
	lib/iolog/iolog_filter.c:
	lib/iolog: add support for filtering password out of tty input If a
	password regex is found in the tty output, tty input will be
	replaced with '*' chars until a newline or another tty output
	character is received.
	[946404434]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/group_plugin.c, plugins/sudoers/iolog.c,
	plugins/sudoers/locale.c, plugins/sudoers/logging.h,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	Pass the operator to the Defaults callback too. That way we can tell
	what to do in callbacks for lists.
	[86f123cd9]

2022-01-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_9 for changeset 296f4f986a7a
	[c262f1f40]

	* :
	Merge sudo 1.9.9 from tip.
	[7e1795b7d]

	* docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in:
	"plain text" -> "plaintext" for consistency.
	[be45d8fef]

2022-01-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* po/ro.mo, po/ro.po:
	Updated translations from translationproject.org
	[cc5eb2bc4]

	* INSTALL.configure:
	Sync with autoconf git.
	[f4dd59049]

	* scripts/mkdep.pl:
	Fix potential infinite loop when trying to format long lines.
	[ada7d4382]

2022-01-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudo.man.in, docs/sudo.mdoc.in:
	Document how commands are passed to the shell for the -i and -s
	options. The concatenation of command and arguments and escaping of
	special characters was not documented. Text adapted from GitHub
	issue #121 from Kris Rinzwind
	[5f45fd907]

	* docs/TROUBLESHOOTING.md:
	Also mention no_new_privs error in the troubleshooting guide.
	[805e1b947]

	* INSTALL.md, docs/TROUBLESHOOTING.md, docs/sudo.conf.man.in,
	docs/sudo.conf.mdoc.in, docs/sudo.man.in, docs/sudo.mdoc.in,
	docs/sudo_plugin.man.in, docs/sudo_plugin.mdoc.in,
	docs/sudo_plugin_python.man.in, docs/sudo_plugin_python.mdoc.in,
	docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.mdoc.in, docs/visudo.man.in,
	docs/visudo.mdoc.in:
	Replace uid and gid with user-ID and group-ID in more places.
	[e4ee1a850]

2022-01-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL.md:
	PAM is enabled on NetBSD by default too.
	[bdae9843a]

	* INSTALL.md, README.LDAP.md, docs/HISTORY.md,
	docs/TROUBLESHOOTING.md, docs/UPGRADE.md:
	Use the Oxford comma consistently, it is helpful in technical
	documents.
	[9d79a0767]

	* docs/sudo.man.in, docs/sudo.mdoc.in:
	Document the error message when no_new_privs is set.
	[78e74c605]

	* docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in:
	Sudo now recovers from sudoers syntax errors.
	[17b7ac346]

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in,
	docs/sudo.conf.man.in, docs/sudo.conf.mdoc.in, docs/sudo.man.in,
	docs/sudo.mdoc.in, docs/sudo_logsrv.proto.man.in,
	docs/sudo_logsrv.proto.mdoc.in, docs/sudo_logsrvd.conf.man.in,
	docs/sudo_logsrvd.conf.mdoc.in, docs/sudo_plugin.man.in,
	docs/sudo_plugin.mdoc.in, docs/sudo_plugin_python.man.in,
	docs/sudo_plugin_python.mdoc.in, docs/sudoers.ldap.man.in,
	docs/sudoers.ldap.mdoc.in, docs/sudoers.man.in,
	docs/sudoers.mdoc.in, docs/sudoreplay.man.in,
	docs/sudoreplay.mdoc.in, docs/visudo.man.in, docs/visudo.mdoc.in,
	examples/sudo.conf.in, examples/sudo_logsrvd.conf:
	Use the Oxford comma consistently, it is helpful in technical
	documents.
	[0d0e7de45]

	* INSTALL.md:
	Mention docker configuration.
	[144e57832]

	* plugins/sudoers/ldap_util.c:
	Quiet a cppcheck false positive.
	[368e5d49e]

	* docs/CONTRIBUTING.md:
	Mention https://www.sudo.ws/security/fuzzing/ in the fuzzing
	section.
	[9a013b79b]

	* plugins/sudoers/sssd.c:
	Fix logic inversion when setting negated flag.
	[08abeb94a]

	* src/sudo.c:
	Quiet a PVS-Studio format string warning.
	[5e30d0120]

2022-01-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Regen .pot files.
	[c8b9f4ad1]

	* NEWS:
	Bug #1016, #1017 and negated sudoUser in LDAP.
	[3f8b7f6ea]

	* plugins/sudoers/defaults.c:
	Don't set/run early Defaults if a custom defaults_list is specified.
	Defaults settings passed in by the front end are already "early" so
	there is no need to treat any of them as special.

	Otherwise, we end up running the early defaults callbacks before
	sudoers has been parsed. This means that, for instance, it is not
	possible to disable the fqdn flag before its callback is run if sudo
	is build with the --with-fqdn option. Bug #1016.
	[e1c2288fb]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h:
	Mark is_early_default(), run_early_defaults(), set_early_default()
	static. They are not used outside of defaults.c.
	[28cfe868e]

	* plugins/sudoers/sssd.c:
	Add support in SSSD for negated users.
	[9bb3df748]

	* docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in,
	plugins/sudoers/ldap.c:
	Add support in the LDAP filter for negated users. Based on a diff
	from Simon Lees
	[e88087721]

2022-01-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/mkdir_parents.c:
	Use PATH_MAX, not NAME_MAX+1 for the directory entry length. On some
	systems, such as Solaris, the max length of a directory entry is
	filesystem-dependent. We could use fpathconf() and dynamically
	allocate the name but it is simpler to just use PATH_MAX here.
	[1afce22f7]

	* plugins/python/python_plugin_common.c:
	Only emulate Py_FinalizeEx for Python 3.[0-5].
	[853e710f4]

	* lib/util/getcwd.c, lib/util/mkdir_parents.c:
	Use POSIX NAME_MAX, not the obsolete MAXNAMLEN define. Fixes
	compilation with musl libc.
	[1f098a202]

2022-01-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/limits.c:
	When applying fallback limits, make sure we don't reduce rlim_max.
	Fixes a problem where sudo could reduce the max stack size on some
	systems if the original limit was higher than the fallback limit,
	but not unlimited/infinity.
	[757c3a1d3]

	* src/limits.c:
	Don't modify the stack limit if it is >= SUDO_STACK_MIN.
	[1c95ab885]

	* plugins/sudoers/Makefile.in:
	The pre-install target requires visudo, add an explicit dependency.
	[5fdaa4822]

2022-01-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo.c:
	If sudo is not set-user-ID root, check for the no_new_privs flag on
	Linux. This flag disables set-user-ID at execve(2) time and may be
	set by default for some containers. GitHub issue #129.
	[2e08db369]

2022-01-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/sudoers.man.in, docs/sudoers.mdoc.in,
	plugins/sudoers/auth/pam.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.h,
	src/parse_args.c:
	Add pam_askpass_service sudoers setting for "sudo -A". This makes it
	possible to use a different PAM configuration for when "sudo -A" is
	used. The main use case is to only use PAM modules that can interact
	with the askpass program. GitHub issue #112.
	[48bc498a6]

2022-01-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/iolog_loginfo.c:
	Improve debugging info when fdopen() fails.
	[763256e46]

2022-01-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sssd.c:
	sss_sudo_free_values() checks for NULL, no need to do it manually.
	[3b7d32b25]

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y:
	Quiet a clang analyzer false positive.
	[8aec6c2a8]

2022-01-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y:
	Quiet a clang analyzer false positive.
	[de7171ab6]

	* plugins/sudoers/auth/sudo_auth.c:
	Fix return value for non-interactive mode for non-standalone auth
	methods. AUTH_NONINTERACTIVE was being stored in the wrong variable.
	[a2d27bc9e]

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po, po/fi.mo,
	po/fi.po, po/ko.mo, po/ko.po, po/tr.mo, po/tr.po:
	Updated translations from translationproject.org
	[513574ce1]

	* plugins/sudoers/cvtsudoers_merge.c:
	defaults_var_matches() should return bool, not enum match_result.
	Remove enum match_result as it is no longer used.
	[d6ff97d83]

	* plugins/sudoers/audit.c, plugins/sudoers/auth/sudo_auth.c:
	Quiet two PVS-studio warnings.
	[72989bf83]

	* plugins/sudoers/auth/pam.c:
	Remove PAM_TTY workaround for old, buggy PAM modules. In the past,
	some PAM modules assumed that PAM_TTY was set and would misbehave
	(or crash) if not. This was primarily obsolete versions of
	Linux-PAM, so it should now be safe to remove this. Setting PAM_TTY
	to an empty string can cause its own set of issues. GitHub issue #74
	[1b72f138e]

2022-01-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention fix for Bug #956 and GitHub issue #83.
	[8c42a29a1]

	* plugins/sudoers/auth/API, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/check.c,
	plugins/sudoers/logging.c, plugins/sudoers/sudoers.h:
	Push non-interactive mode checking down into the auth methods. For
	"sudo -n" we only want to reject a command if user input is actually
	required. In the case of PAM at least, we may not need to interact
	with the user. Bug #956, GitHub issue #83
	[521ef37ae]

2022-01-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_merge.c,
	plugins/sudoers/regress/cvtsudoers/sudoers1,
	plugins/sudoers/regress/cvtsudoers/sudoers2,
	plugins/sudoers/regress/cvtsudoers/sudoers3,
	plugins/sudoers/regress/cvtsudoers/test34.out.ok,
	plugins/sudoers/regress/cvtsudoers/test35.out.ok,
	plugins/sudoers/regress/cvtsudoers/test36.out.ok:
	userspec_overridden: fix checks when there is more than one userspec
	[296d876b7]

	* MANIFEST, plugins/sudoers/cvtsudoers_merge.c,
	plugins/sudoers/regress/cvtsudoers/test35.out.ok,
	plugins/sudoers/regress/cvtsudoers/test36.out.ok,
	plugins/sudoers/regress/cvtsudoers/test36.sh:
	Fix merging of global/ALL entries when each input file has a host.
	If a host is specified for the input file, cvtsudoers will bind
	global Defaults to that host and change host "ALL" in a userspec to
	the host name. However, if all the input files have matching hosts
	we can simplify the merged file by converting back to ALL after
	resolving conflicts.
	[835079fa3]

	* LICENSE.md:
	Welcome to 2022.
	[d02ba52fa]

	* docs/Makefile.in:
	LICENSE.md moved to the top-level src dir.
	[59d55c530]

2021-12-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* :
	Merge pull request #127 from Tyler887/main

	Typo
	[dabd8d80a]

2021-12-22  Tyler887  <tylermageeshields@gmail.com>

	* INSTALL.md:
	Typo
	[d9594cb21]

2021-12-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, docs/UPGRADE.md, plugins/sudoers/policy.c, src/selinux.c,
	src/sudo.c:
	Back out changes to enable SELinux by default. This may return in a
	future release in a different form.
	[e22cc7253]

	* LICENSE.md, MANIFEST, README.md:
	Move LICENSE.md out of docs and back to the top-level. GitHub
	expects it to be in the top-level directory.
	[0ed92e616]

2021-12-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/cvtsudoers_merge.c,
	plugins/sudoers/regress/cvtsudoers/test35.out.ok,
	plugins/sudoers/regress/cvtsudoers/test35.sh:
	cvtsudoers: fix a regression when merging matching Defaults. If a
	host is specified with a sudoers file, we have to treat Defaults as
	Defaults@host checking for duplicates.
	[149e8208b]

2021-12-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	add_defaults: add defs == NULL check to quiet coverity false
	positive
	[4ffc3142c]

2021-12-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_merge.c,
	plugins/sudoers/regress/cvtsudoers/test34.out.ok,
	plugins/sudoers/regress/cvtsudoers/test34.sh:
	When merging Defaults, allow a subsequent global Defaults (no
	binding) to override a prior Defaults setting with a binding.
	[dfc11d748]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	add_defaults: defs can never be NULL
	[6a2c5043a]

	* plugins/sudoers/cvtsudoers_merge.c:
	Plug memory leak when making a default host-specific. We don't need
	to allocate new space for the binding list, just the members of the
	list.
	[546d4f624]

2021-12-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, examples/Makefile.in, examples/cvtsudoers.conf:
	Add an example cvtsudoers.conf file.
	[5d95345e6]

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h:
	Add group_file, match_local, and passwd_file to cvtsudoers.conf.
	Previously, these were only settable via command line options.
	[991ef3250]

2021-12-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/TROUBLESHOOTING.md:
	Remove question about running Solaris 11 binaries on Solaris 10.
	Current versions of sudo use many APIs that are not present on
	Solaris 10. If you want a sudo Solaris 10 binary, build it on
	Solaris 10, not 11.
	[537f75dc7]

	* MANIFEST, plugins/sudoers/regress/cvtsudoers/test34.out.ok,
	plugins/sudoers/regress/cvtsudoers/test34.sh:
	Add simple test for cvtsudoers merge functionality.
	[7158b03b5]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/fr.mo,
	po/fr.po, po/hr.mo, po/hr.po, po/ja.mo, po/ja.po, po/pl.mo,
	po/pl.po, po/sr.mo, po/sr.po, po/uk.mo, po/uk.po, po/zh_CN.mo,
	po/zh_CN.po, po/zh_TW.mo, po/zh_TW.po:
	Updated translations from translationproject.org
	[955359af5]

	* MANIFEST, plugins/sudoers/po/es.mo, plugins/sudoers/po/es.po:
	Add sudoers Spanish translation from translationproject.org
	[869994433]

2021-12-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Bugs #1013 and #1014
	[7d7e24d16]

	* lib/util/mkdir_parents.c:
	sudo_mkdir_parents: make sure the path we created is a directory For
	extra paranoia, verify that the directory we created is still a
	directory before we fchown() it.
	[c53192eb7]

	* docs/sudo.man.in, docs/sudo.mdoc.in:
	In SECURITY NOTES, clarify that PATH may be overridden by the
	policy. Bug #1014
	[e66e1ca38]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/mkdir_parents.c, lib/util/mkdirat.c, logsrvd/logsrvd.c,
	plugins/sudoers/timestamp.c, scripts/mkdep.pl:
	Avoid TOCTOU in sudo_mkdir_parents() using openat(2) and mkdirat(2).
	This also allows us to make path const as it should be.
	[c13b21c19]

	* plugins/sudoers/ldap_conf.c, plugins/sudoers/sudo_ldap_conf.h:
	Sudo parsed "deref" and "tls_reqcert" in ldap.conf but didn't set
	the options. The switch() in the sudo_ldap_set_options_table()
	function needed to be updated to treat CONF_DEREF_VAL and
	CONF_REQCERT_VAL data types as int. Fix from Dennis Filder. Bug
	#1013.
	[55db23924]

2021-12-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/SECURITY.md:
	Minor formatting tweak so we can import into the sudo web site.
	[a2aa70970]

	* plugins/sudoers/defaults.c, plugins/sudoers/pwutil_impl.c:
	Fix CodeQL "Multiplication result converted to larger type"
	warnings.
	[83defd3a6]

2021-12-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/SECURITY.md:
	Surround email addresses with angle brackets, not square backets.
	[014339948]

2021-12-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po, po/fa.mo,
	po/fa.po, po/fi.mo, po/fi.po, po/ja.mo, po/ja.po, po/sr.mo,
	po/sr.po, po/zh_CN.mo, po/zh_CN.po, po/zh_TW.mo, po/zh_TW.po:
	Updated translations from translationproject.org
	[3cd0ffade]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update .pot files for 1.9.9
	[27121cff6]

2021-12-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* README.LDAP.md, docs/CONTRIBUTING.md, docs/TROUBLESHOOTING.md,
	docs/UPGRADE.md:
	Minor formatting tweaks.
	[d324a5306]

2021-12-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL, INSTALL.md, MANIFEST, README, README.LDAP.md, README.md,
	docs/CONTRIBUTING.md, docs/CONTRIBUTORS.md, docs/HISTORY.md,
	docs/LICENSE, docs/LICENSE.md, docs/Makefile.in,
	docs/TROUBLESHOOTING, docs/TROUBLESHOOTING.md, docs/UPGRADE,
	docs/UPGRADE.md, etc/sudo-logsrvd.pp, etc/sudo-python.pp,
	etc/sudo.pp:
	Convert README and docs files to markdown. This makes things look
	better on GitHub and we can use the markdown version directly in the
	new sudo web site.
	[3bd572ba8]

2021-12-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/SECURITY.md:
	Policy -> Disclosure Policy
	[2c754a8d4]

	* :
	Merge pull request #124 from juspence/main

	Allow sudo -g anyone and sudo -u anyone -g anytwo
	[9497ab99c]

2021-12-04  juspence  <87657842+juspence@users.noreply.github.com>

	* plugins/sudoers/sudoers.in:
	Allow sudo -g anyone and sudo -u anyone -g anytwo

	When only the user (ALL) is specified explicitly, and the group is
	implied, only sudo -u works. Specifying both the user and group,
	like (ALL:ALL), is required to:

	1) Use sudo -g by itself (with no -u user) 2) Use sudo -u and -g
	together, with a -g group that is different from the -u user's
	primary group
	[1d13533ea]

2021-12-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/Makefile.in:
	Add build dir to include search path for mksiglist.h and mksigname.h
	Fixes out of tree builds on systems without sys_siglist[] or
	sys_signame[]. GitHub issue #123.
	[aae130eb7]

2021-11-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/cvtsudoers_merge.c,
	plugins/sudoers/regress/cvtsudoers/sudoers1,
	plugins/sudoers/regress/cvtsudoers/sudoers2,
	plugins/sudoers/regress/cvtsudoers/sudoers3:
	cvtsudoers: better merging of lists that are not exact duplicates
	When merging rules, if one list would be overridden by another,
	remove the overridden rule and continue merging.
	[0608a4ea6]

2021-11-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Update NEWS with latest changes.
	[a9f3032b5]

2021-11-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/edit_open.c:
	dir_is_writable: don't treat EPERM from faccessat() as a fatal
	error. We can get EPERM on Linux with SELinux. GitHub issue #122.
	[f9f39cde2]

2021-11-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_merge.c:
	cvtsudoers: add -l option to log merge actions The "-l logfile"
	option can be used to store a log of what actions cvtsudoers took
	when merging multiple files. For example, which aliases were
	renamed, which entries were overriden or removed as duplicated.
	[003f9550f]

	* NEWS, configure, configure.ac:
	Sudo 1.9.9
	[ce9c6d17c]

2021-11-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, docs/CONTRIBUTORS, po/fa.mo, po/fa.po:
	New Persian (Farsi) translation from translationproject.org
	[409410b02]

2021-11-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_csv.c:
	Quiet a PVS Studio warning. The warning that need_comma is always
	false is correct but in this case it is better to use a consistent
	construct so that if the code is re-ordered no bugs are introduced.
	[d83321388]

	* lib/util/getentropy.c:
	Pass correct size to free_zero(). Coverity CID 241233
	[dc5ac7424]

	* plugins/sudoers/alias.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers_csv.c, plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_merge.c, plugins/sudoers/defaults.c,
	plugins/sudoers/fmtsudoers_cvt.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/parse_ldif.c:
	Add reference counting to Defaults bindings. Previously, we checked
	that the previous entry's binding pointer was not the same while
	freeing. However, to be able to merge Defaults records we cannot
	rely on Defaults entries with the same binding being immediately
	adjacent. This removes the prev_binding checks in favor of a
	reference count which allows us to plug the memory leak in
	cvtsudoers when merging Defaults.
	[e64a089ae]

2021-11-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_merge.c:
	cvtsudoers: use init_parse_tree() to initialize a parse tree. Also
	free the parse tree before exit.
	[aed51033e]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c, plugins/sudoers/sssd.c:
	init_parse_tree() now takes ownership of lhost and shost, if any.
	This means that lhost and shost in struct sudoers_parse_tree are no
	longer const and that free_parse_tree() will free lhost/shost. The
	only consumer that passed in lho.st/shost was the SSSD back-end
	which has been updated to avoid a double-free.
	[730ebabdb]

	* docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in:
	Document how to merge sudoers files with cvtsudoers.
	[cc7903873]

	* plugins/sudoers/cvtsudoers_merge.c:
	cvtsudoers: merge userspecs when multiple sudoers files are
	specified If a hostname is specified with the sudoers file, it will
	be used to make the userspec host-specific, if possible. Duplicate
	userspecs are removed but conflicting entries are not currently
	pruned.
	[f5c6e2df7]

	* plugins/sudoers/cvtsudoers_merge.c:
	cvtsudoers: merge Defaults when multiple sudoers files are specified
	If a hostname is specified with the sudoers file, it will be used to
	make the Defaults setting host-specific, if possible. Duplicate
	Defaults settings are removed and conflicts are warned about. It is
	not possible to resolve all conflicts automatically.
	[d31109ded]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/alias.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_merge.c, plugins/sudoers/parse.h:
	cvtsudoers: merge aliases when multiple sudoers files are specified
	Duplicate aliases are remove. If there are conflicting alias names,
	the conflicts are renamed by appending a numerical suffix. For
	example, if there are two SERVERS Host_Aliases, the second one will
	be renamed to SERVERS_1.
	[ab9e44a6c]

2021-11-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c:
	Add support for specifying the hostname as a prefix to the sudoers
	file. If present, the host name is copied into the struct
	sudoers_parse_tree.
	[33fbf5946]

2021-11-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c:
	cvtsudoers: parse multiple sudoers files and store them in a tail
	queue In the future the parsed files will be merged before they are
	output.
	[4cb34a201]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h:
	Add sudoers_parse_tree_list, a tail queue of struct
	sudoers_parse_tree. This will be used to store multiple parse trees
	and merge them into a single sudoers_parse_tree.
	[b1309f76d]

2021-11-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, Makefile.in, etc/macos-background.png,
	etc/sudo-logsrvd.pp, etc/sudo-python.pp, etc/sudo.pp:
	Add a background image for the macOS installer.
	[7baee707b]

	* scripts/pp:
	Update PolyPkg
	[7b0b18699]

2021-11-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	mkpkg: handle a macOS SDK that just uses the major version. For
	example, MacOSX11.sdk instead of MacOSX11.3.sdk.
	[0a89b87a3]

	* lib/util/Makefile.in:
	Add missing dependencies for timegm.
	[70c0d35fa]

2021-11-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docs/CONTRIBUTING.md:
	Fix formatting of links.
	[3ab280fc6]

	* MANIFEST, docs/CONTRIBUTING.md:
	Add contributing guide.
	[781a4fb69]

	* .github/workflows/codeql-analysis.yml:
	Create codeql-analysis.yml
	[658eba7ee]

2021-11-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, docs/SECURITY.md:
	Add security doc, inspired by the Microsoft template.
	[85325a7d2]

	* .gitignore, .hgignore, INSTALL, MANIFEST, Makefile.in, README,
	configure, configure.ac, docs/CONTRIBUTORS, docs/HISTORY,
	docs/LICENSE, docs/Makefile.in, docs/TROUBLESHOOTING, docs/UPGRADE,
	docs/cvtsudoers.man.in, docs/cvtsudoers.mdoc.in, docs/fixman.sh,
	docs/fixmdoc.sed, docs/schema.ActiveDirectory, docs/schema.OpenLDAP,
	docs/schema.iPlanet, docs/schema.olcSudo, docs/sudo.conf.man.in,
	docs/sudo.conf.man.in.sed, docs/sudo.conf.mdoc.in, docs/sudo.man.in,
	docs/sudo.man.in.sed, docs/sudo.mdoc.in,
	docs/sudo_logsrv.proto.man.in, docs/sudo_logsrv.proto.mdoc.in,
	docs/sudo_logsrvd.conf.man.in, docs/sudo_logsrvd.conf.mdoc.in,
	docs/sudo_logsrvd.man.in, docs/sudo_logsrvd.mdoc.in,
	docs/sudo_plugin.man.in, docs/sudo_plugin.mdoc.in,
	docs/sudo_plugin_python.man.in, docs/sudo_plugin_python.mdoc.in,
	docs/sudo_sendlog.man.in, docs/sudo_sendlog.mdoc.in,
	docs/sudoers.ldap.man.in, docs/sudoers.ldap.mdoc.in,
	docs/sudoers.man.in, docs/sudoers.man.in.sed, docs/sudoers.mdoc.in,
	docs/sudoers_timestamp.man.in, docs/sudoers_timestamp.mdoc.in,
	docs/sudoreplay.man.in, docs/sudoreplay.mdoc.in, docs/visudo.man.in,
	docs/visudo.mdoc.in, etc/codespell.skip:
	Rename "doc" directory to "docs" for better GitHub compatibility.
	[289a045a4]

	* lib/util/Makefile.in:
	Use $(SED), not sed, when generating mksiglist.h/mksigname.h
	[5faf46de6]

	* configure, configure.ac, lib/iolog/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/sudoers/Makefile.in:
	Add configure check for sha1sum and use "openssh dgst -sha1" if
	missing. Only needed when building the seed corpus zip files.
	[09b82a22c]

	* include/sudo_compat.h:
	sudo_compat.h: include unistd.h regardless of OS type This helps to
	avoid issues with mismatched headers and libraries.
	[c2d03f7cc]

2021-11-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/visudo.c:
	install_sudoers: fix return value when there is no temp file to
	install This can happen when no changes were made. Also preserve the
	edited temp file on error if we are unable to move it into place.
	[55d17eaa3]

	*
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout:
	Bump plugin version in test data to 1.18.
	[def7a51f4]

	* plugins/sudoers/defaults.c:
	free_defs_val: free rlimits like strings (which they are).
	[8e656b63c]

	* plugins/sudoers/visudo.c:
	Rename {check,set}_perms variable to {check,set}_mode. Avoids a name
	clash with the set_perms() function.
	[288bb8254]

	* src/edit_open.c:
	Avoid symbol name clash with is_writable() function variable. Rename
	"is_writable" variable to "writable".
	[7085a6447]

	* doc/UPGRADE:
	Mention that the core dump size resource limit now defaults to 0.
	[03927f998]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document new resource limit settings.
	[6f7f8601e]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	include/sudo_plugin.h, src/exec.c:
	Document resource limit support in command_info[] and Bump plugin
	API minor. This is supported beginning with sudo 1.9.9 and plugin
	API 1.17.
	[7c8746bc7]

2021-11-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, plugins/sudoers/defaults.c,
	src/limits.c:
	Use strtoul() on systems without strtoull(). We can assume that
	systems without strtoull() have 32-bit resource limits.
	[19065cb22]

	* src/exec.c, src/limits.c, src/sudo.c, src/sudo.h:
	Add front-end support for setting resouce limits. The special value
	"user" means preserve the invoking user's limit. The value "default"
	means don't override the default limit for the user as assigned by
	the system (PAM, loging.conf, userdb, etc).
	[74ef983f6]

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/mkdefaults,
	plugins/sudoers/policy.c:
	Add basic support for setting resource limits in sudoers. The
	default for rlimit_core is "0,0" Resource limits are passed back to
	the front-end in command_info[] when set.
	[f279df5e1]

	* src/edit_open.c:
	switch_user_nonfatal: only define if using faccessat()
	[9c465f84a]

2021-11-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/visudo.man.in, doc/visudo.mdoc.in, plugins/sudoers/visudo.c:
	visudo: add -O and -P options to check/set owner and permissions.
	This can be used in conjunction with the -c option to check that the
	sudoers file ownership and permissions are correct. Bug #1007
	[cdd41af66]

2021-11-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/UPGRADE:
	UPGRADE: mention SELinux behavior change.
	[78709eaee]

	* src/selinux.c, src/sudo.h, src/sudo_edit.c:
	Rename selinux_setcon -> selinux_setexeccon
	[22d624c02]

	* src/selinux.c:
	In the SELinux role is "unconfined_r", disable SELinux support. We
	only want to apply SELinux to confined users. This is a bit of a
	hack as unconfined_r is specific to the targeted policy.
	[e92c3d841]

	* src/exec_monitor.c, src/exec_nopty.c, src/selinux.c, src/sudo.c,
	src/sudo.h, src/sudo_edit.c:
	Separate out the code to compute the context from selinux_setup().
	This makes it possible to determine whether we really need to
	execute the command via the sesh helper. What was left of
	selinux_setup() is now selinux_relabel_tty() and
	selinux_audit_role_change().
	[e97fb5fd0]

	* plugins/sudoers/policy.c, src/selinux.c, src/sudo.c:
	Pass status of selinux sudoers setting to front-end as selinux-rbac.
	The front-end uses this to decide whether or not to enable SELinux.
	If selinux-rbac is true _or_ if it is not present and selinux_role
	or selinux_type are set, SELinux support is enabled. Previously,
	SELinux support was only enabled if a role was specified.
	[a336a8422]

2021-11-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/selinux.c:
	Make get_exec_context static, it is unused outside selinux.c.
	[680463259]

2021-11-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/edit_open.c:
	dir_is_writable: add fallback if changing UIDs fails The SELinux
	policy may not allow uid/gid changes which will break the
	writability checks and cause sudoedit to fail.
	[a527d6dfd]

2021-11-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	Build python package on Fedora
	[733fe4bd1]

2021-11-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.conf.mdoc.in:
	Fix lint warning: skipping paragraph macro: Pp before Bd
	[ff888e700]

2021-10-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in:
	Escape some minus signs ('-') as required by newer groff.
	[4e1e07b88]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/timegm.c,
	plugins/sudoers/Makefile.in, plugins/sudoers/gentime.c,
	plugins/sudoers/parse.h, scripts/mkdep.pl:
	parse_gentime: use timegm() to generate time since the epoch The
	timegm() function is non-standard but widely available. Provide an
	implementation for those systems that lack it. Bug #1006
	[4eebd53bc]

	* include/sudo_compat.h, lib/util/Makefile.in, scripts/mkdep.pl:
	Fix pasto in gmtime_r and localtime_r macros. Also add missing
	Makefile targets for them.
	[b506497fe]

	* plugins/sudoers/gmtoff.c:
	Take daylight saving time into consideration when computing offset.
	Otherwise, the resulting time may be off by and hour, depending on
	whether DST is currently active compared to the target time.
	[dcd2199f7]

2021-10-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	Back out f2d82771e7dd, arm64e on macOS is still in preview state.
	Until arm64e on macOS is finalized, continue to build arm64
	packages.
	[12c8dba4c]

2021-10-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	Build arm64e ABI binaries on macOS 11 and above. We originally used
	arm64 here but the correct ABI is arm64e. The arm64 arch will be
	removed in a future release.
	[491aee866]

	* logsrvd/logsrvd_local.c:
	Use iolog_openat() when opening the log.json file in the I/O log
	dir.
	[7c4c61be0]

2021-10-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/tls_init.c:
	Use BIO_new_file() not BIO_new_fd() to read dhparams file. Older
	versions of OpenSSL and wolfSSL lack BIO_new_fd(). Also explicitly
	include openssl/bio.h and openssl/dh.h for wolfSSL.
	[ed13faf9f]

	* INSTALL, config.h.in, configure, configure.ac:
	wolfSSL not WolfSSL
	[fc5fa1bbd]

	* .circleci/config.yml:
	Add wolfSSL variant to continuous integration tests.
	[77048c119]

	* docker/debian/latest/Dockerfile, docker/debian/testing/Dockerfile,
	docker/ubuntu/devel/Dockerfile, docker/ubuntu/latest/Dockerfile,
	docker/ubuntu/rolling/Dockerfile:
	Add libwolfssl-dev to Debian and Ubuntu Dockerfiles Fedora does not
	appear to have an official wolfssl package.
	[21c240d80]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	White space in an include file path supported by sudo 1.9.1 or
	higher.
	[094f4dac5]

2021-10-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/iolog/hostcheck.c,
	lib/util/digest_openssl.c, lib/util/getentropy.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd.h, logsrvd/logsrvd_relay.c, logsrvd/sendlog.c,
	logsrvd/sendlog.h, logsrvd/tls_client.c, logsrvd/tls_common.h,
	logsrvd/tls_init.c, plugins/sudoers/log_client.c,
	plugins/sudoers/log_client.h:
	Add support for WolfSSL's OpenSSL compatibility layer. Based on
	changes from Hayden Roche
	[cc6157d7d]

	* lib/util/Makefile.in, plugins/sudoers/Makefile.in:
	regenerate dependencies
	[465bfbba7]

	* logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c, logsrvd/logsrvd_journal.c,
	logsrvd/logsrvd_local.c, logsrvd/logsrvd_queue.c,
	logsrvd/logsrvd_relay.c, logsrvd/regress/fuzz/fuzz_logsrvd_conf.c,
	logsrvd/sendlog.c, logsrvd/sendlog.h:
	Move include of log_server.pb-c.h into logsrvd.h and sendlog.h This
	way there is no include file order issue with the
	PROTOBUF_C_VERSION_NUMBER check.
	[87c1dd9d7]

	* docker/debian/latest/Dockerfile, docker/debian/testing/Dockerfile,
	docker/fedora/latest/Dockerfile, docker/fedora/rawhide/Dockerfile,
	docker/ubuntu/devel/Dockerfile, docker/ubuntu/latest/Dockerfile,
	docker/ubuntu/rolling/Dockerfile:
	Add pkg-config to all Dockerfile
	[1dbf95645]

2021-10-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/tls_init.c:
	Use SSL_FILETYPE_PEM with SSL_CTX_use_PrivateKey_file, not
	X509_FILETYPE_PEM While they are defined to the same value in
	OpenSSL one should not rely on this.
	[8a9c8794d]

2021-10-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Fix setting _PATH_ASAN_LIB, need to double up the square brackets.
	[a808f8e7e]

	* logsrvd/sendlog.c:
	sudo_sendlog: send runenv, rungid and runuid from log.json too With
	this change, sudo_sendlog can now round-trip sudo-style I/O logs
	that use the newer log.json format without losing any information.
	[e73e9d5e4]

2021-10-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, lib/util/arc4random.c:
	arc4random: need to include sys/random.h on Solaris too. This was
	removed when Linux genentropy() was disabled.
	[ef3eb25a1]

2021-10-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/hostcheck.c, lib/util/inet_ntop.c,
	logsrvd/logsrv_util.h, plugins/sudoers/log_client.h:
	Make sure INET_ADDRSTRLEN and INET6_ADDRSTRLEN are defined.
	[88c577171]

	* plugins/sudoers/audit.c, plugins/sudoers/iolog.c,
	plugins/sudoers/log_client.c, plugins/sudoers/log_client.h,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h:
	Only include log_client.h if SUDOERS_LOG_CLIENT is defined.
	[00f0c233b]

	* :
	Merge pull request #118 from larb0b/main

	Define MAP_FAILED where relevant if undefined
	[cf47187eb]

2021-10-21  Larkin Nickle  <me@larbob.org>

	* lib/util/getentropy.c, lib/util/regress/mktemp/mktemp_test.c,
	lib/util/snprintf.c:
	Define MAP_FAILED where relevant if undefined

	On systems such as HP-UX 10.20, MAP_FAILED is not defined.
	[07bdfeedb]

2021-10-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, m4/libtool.m4:
	Improve macOS version detection to support macOS 11 and simplify
	legacy logic From Jeremy Huddleston Sequoia
	[cccefb962]

	* logsrvd/sendlog.c:
	sudo_sendlog: send multiple I/O log records together if possible Try
	to fill the write buffer and then send to the server instead of
	sending records one at a time.
	[14873832c]

	* logsrvd/sendlog.c, logsrvd/sendlog.h:
	sudo_sendlog: support multiple write buffers like sudo_logsrvd
	[1a26d2c88]

	* configure, configure.ac, lib/util/Makefile.in:
	Always link libsudo_util.so with libcrypto.so if using OpenSSL. We
	may need to use RAND_bytes() in the getentropy() emulation.
	[9fbbca7b7]

	* config.h.in, configure, configure.ac, lib/util/getentropy.c,
	plugins/sudoers/boottime.c:
	Add an explicit check for sys/sysctl.h. This test needs to be done
	after AC_LANG_WERROR to avoid including sys/sysctl.h on systems
	where it is marked as deprecated via a #warning directive.
	[23eef895f]

	* config.h.in, configure, configure.ac, lib/util/arc4random.c:
	Use our own getentropy() by default on Linux. The glibc getentropy()
	emulation will fail on older kernels that don't support getrandom().
	Also use sudo_fatal() instead of sending SIGKILL on getentropy()
	failure. GitHub issue #117.
	[00e53b32e]

	* lib/util/getentropy.c:
	Use the OpenSSL RAND_bytes() function if getrandom() fails.
	[de4fd4a31]

	* lib/util/Makefile.in, lib/util/arc4random_buf.c, scripts/mkdep.pl:
	Fix compilation of standalone arc4random_buf(). Apparently this code
	was never compiled anywhere.
	[badd6267b]

	* lib/util/uuid.c:
	sudo_uuid_create: no longer need a union for the uuid.
	[9dd630494]

2021-10-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog_free.c:
	eventlog_free: free signal_name too
	[803fc56be]

	* lib/iolog/regress/fuzz/fuzz_iolog_json.dict:
	Add new log.json keywords
	[f49c7ac5a]

	* lib/iolog/regress/fuzz/fuzz_iolog_json.c:
	fuzz_iolog_json: initialize exit_value to -1
	[89b53d5ed]

	* logsrvd/logsrvd.c:
	Fix potential use-after-free when calling iolog_flush_all(). We need
	to call iolog_flush_all() _before_ scheduling the commit point. If
	we fail to schedule to commit point, the closure will be freed.
	Coverity CID 220557
	[02e77e656]

	* logsrvd/sendlog.c:
	sendlog: use runargv from log.json if available
	[5eebc3098]

	* logsrvd/sendlog.c:
	sudo_sendlog: send exit data in eventlog if present
	[a71d1f7ce]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	logsrvd/logsrvd_local.c, plugins/sudoers/logging.c:
	No longer need to pass exit params to eventlog_exit(), use struct
	eventlog. Now that struct eventlog includes the exit parameters we
	can simplify how eventlog_exit() is called.
	[bddf03fe4]

	* include/sudo_eventlog.h, lib/iolog/iolog_json.c,
	lib/iolog/iolog_loginfo.c, logsrvd/iolog_writer.c:
	Read command run_time, signal and exit_value from I/O log log.json
	file.
	[d415624ff]

	* logsrvd/logsrvd_local.c:
	Log the command run-time and exit status in the I/O log.
	[d21c935a1]

2021-10-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog.c, logsrvd/logsrvd_local.c:
	Handle a missing run_time in an ExitMessage. It is now possible to
	pass a NULL run_time to eventlog_exit().
	[77c339858]

2021-10-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog.c:
	format_json: fix pasto when setting dumped_core boolean
	[f73bc6dee]

2021-10-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	logsrvd/logsrvd.c:
	No need to flush logs before commit point if we flush after each
	write. Also document that logs are flushed before sending a commit
	point even when flushing is disabled.
	[15b4427b9]

2021-10-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, include/sudo_iolog.h, lib/iolog/Makefile.in,
	lib/iolog/iolog_conf.c, lib/iolog/iolog_flush.c,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/logsrvd.h:
	Flush I/O logs before we send a commit point. The commit point
	message means we have written the data to disk so we should not be
	buffering it any longer. We do not currently fsync(2) the data after
	flushing, perhaps we should.
	[a554629d8]

	* logsrvd/logsrv_util.c:
	Do not treat a resume point of [0, 0] as an error. If the connecton
	is interrupted before sudo sends back a commit_point message,
	resuming at [0, 0] is correct. Also add a warning on unexpected EOF
	parsing the timing file.
	[3e4f6aa2e]

2021-10-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Display a more helpful message if the user tries to run "sudo cd".
	Since "cd" is a shell built-in command it cannot be run directly via
	sudo. The user either needs to spawn a shell via "sudo -s" or use
	the -D option to run a command in a specific directory.
	[369d21323]

	* configure, configure.ac:
	Don't install sudoers.a when configured with
	--enable-static-sudoers. We already avoid installing it when
	--disable-shared-util is specified.
	[64e579831]

2021-10-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	mkpkg: preserve make exit value on exit Fixes a problem where the
	exit value from mkpkg was 0 even on error.
	[7a56c9871]

	* plugins/sudoers/cvtsudoers_csv.c:
	Fix typos in SELinux and Solaris priv support.
	[4b7b3c05e]

	* MANIFEST, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers.h, plugins/sudoers/cvtsudoers_csv.c:
	cvtsudoers: initial support for CSV output For CSV output we double
	quotes strings that contain commas. For each literal double quote
	character present inside the string, two double quotes are output.
	[430048d16]

	* lib/iolog/Makefile.in, lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/sudoers/Makefile.in:
	regenerate dependencies
	[de5ca187b]

	* docker/README, etc/codespell.ignore:
	Fix typo and avoid a codespell false positive.
	[a4fb31aa0]

2021-10-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .circleci/config.yml:
	Add build-nointercept and test-nointercept
	[032575f57]

2021-10-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .circleci/config.yml:
	circleci: test multiple build options We now do separate builds with
	LDAP/SSSD enabled, logsrv client/server disabled, and static-sudoers
	enabled.
	[25129cb77]

	* configure, configure.ac, plugins/sudoers/Makefile.in:
	Fix fuzzer build with when --enable-static-sudoers is used. This
	introduces a sudoers-specific version of LT_STATIC instead of
	appending the --tag=disable-shared to SUDOERS_LDFLAGS. I've also
	removed the -static flag as it should not be needed.
	[eaee7a0eb]

2021-10-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* docker/README:
	Mention --security-opt=seccomp=unconfined workaround for bleeding
	edge. May be needed for Fedora rawhide and Ubuntu testing, among
	others.
	[f6fc70e5d]

	* configure, configure.ac:
	Try to handle the case where libasan.so is a linker script. Fixes
	check_noexec with ASAN on Fedora where libasan.so just includes the
	actual library file.
	[8350307a2]

	* .circleci/config.yml, docker/README,
	docker/fedora/latest/Dockerfile, docker/fedora/rawhide/Dockerfile:
	Enable address and undefined behavior sanitizers in CI builds. We
	need to disable leak sanitizer during "make check" because it uses
	ptrace which is not allowed for unprivileged containers.
	[850804472]

2021-10-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .circleci/config.yml:
	Switch to Ubuntu latest for circleci build.
	[49611d6cc]

	* .circleci/config.yml, docker/debian/latest/Dockerfile,
	docker/debian/testing/Dockerfile, docker/fedora/latest/Dockerfile,
	docker/fedora/rawhide/Dockerfile, docker/ubuntu/devel/Dockerfile,
	docker/ubuntu/latest/Dockerfile, docker/ubuntu/rolling/Dockerfile:
	Add build user for circleci instead of running as root.
	[3fa025281]

	* .circleci/config.yml, MANIFEST, docker/README,
	docker/debian/latest/Dockerfile, docker/debian/testing/Dockerfile,
	docker/fedora/latest/Dockerfile, docker/fedora/rawhide/Dockerfile,
	docker/ubuntu/devel/Dockerfile, docker/ubuntu/latest/Dockerfile,
	docker/ubuntu/rolling/Dockerfile:
	Use circleci for continuous integegration. Build container
	descriptions are in the new docker directory.
	[8d98a447c]

2021-10-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .gitignore, .hgignore:
	Update ignore file.
	[a02af3a45]

2021-10-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoreplay.c:
	Sync "sudo -l" output with normal sudo log format. It now prints
	runchroot and runcwd (falling back on cwd). As a result, submithost
	is now printed first, matching sudo. Also avoid printing NULL
	pointers and skip entries that don't have at least command,
	submituser and runuser set.
	[4e4b506f2]

	* lib/iolog/iolog_json.c:
	iolog_parse_json_object: optimize for large argv
	[3575e995a]

2021-09-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Add "-fcf-protection" to SSP_CFLAGS and SSP_LDFLAGS if supported.
	Can be disabled via --disable-hardening.
	[c5f983c64]

	* configure, configure.ac:
	Add "-z now" to hardened link options if supported. Can be disabled
	via --disable-hardening.
	[edf30c727]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/editor.c,
	plugins/sudoers/regress/editor/check_editor.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/visudo.c:
	find_editor: remove the env_error argument There is no case where we
	should fail to find an editor just because the values of EDITOR,
	VISUAL and SUDO_EDITOR are unavailable. Both sudoedit and the
	"env_editor" sudoers setting are documented as falling back on the
	hard-coded list of editors in the "editors" sudoers setting. Bug
	#1000
	[d15e117c2]

	* plugins/sudoers/check_aliases.c:
	Use sudo_printf(SUDO_CONV_ERROR_MSG) instead of fprintf(stderr).
	Avoids extraneous output in the fuzzer.
	[dde951a09]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Stub out sudo_printf() and avoid other use of stderr in fuzzers.
	This makes it possible to parse sudoers without using quiet mode,
	resulting in better coverage.
	[2aa6cb13a]

2021-09-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c,
	lib/util/regress/fuzz/fuzz_sudo_conf.c,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Use a consistent version of fuzz_conversation() with all fuzzers.
	Also undo a change to fuzz_sudoers.c that snuck in to the last
	commit.
	[eefb7b0d5]

	* lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c,
	lib/util/regress/fuzz/fuzz_sudo_conf.c,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c,
	plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Fuzzers should not produce output. Excessive output makes the fuzzer
	runs much less efficient.
	[7d964875d]

	* logsrvd/logsrv_util.c:
	expand_buf: fix conditional for when we need to preserve existing
	data It is possible for the buffer offset to be zero when the length
	is non-zero. The proper value to use is the same as is used for the
	memcpy/memmove size. Fixes buffer corruption caused by a very long
	command line that usually results in a dropped connection.
	[dea7e6aef]

2021-09-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, lib/util/closefrom.c:
	Emulate closefrom() on macOS using proc_pidinfo(). This avoids
	relying on /dev/fd which may not exist in a chroot jail. Adapted
	from a change in OpenSSH by likan_999.student AT sina.com
	[476f00b82]

2021-09-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/edit_open.c:
	Handle EMLINK and EFTYPE errno values for O_NOFOLLOW failure.
	FreeBSD returns EMLINK and NetBSD returns EFTYPE instead of ELOOP.
	This is only used to present the user with a more appropriate error
	message.
	[73e9256f9]

2021-09-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c:
	Fix typo in last commit, use boolean AND not bitwise.
	[1d203c834]

	* doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h:
	Add the ability to filter/match by command via the -m option. For
	example "cvtsudoers -m cmd=/bin/ls" would only display entries that
	would allow /bin/ls to be allowed or denied.
	[1831176a1]

2021-09-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers.h, plugins/sudoers/pwutil.c:
	Add --group-file and --passwd-file options to cvtsudoers. These are
	based on the code in testsudoers.
	[41f116050]

2021-09-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/mkdir_parents.c:
	Move cppcheck suppression annotation to where it needs to be.
	[a7367ce47]

	* lib/util/mksigname.c:
	format string fix: print signal number as unsigned. Quiets a
	cppcheck warning; mksiglist.c already has this fixed.
	[99655f28d]

	* plugins/sudoers/ldap_util.c:
	Fix memory leak on error path if snprintf() overflows. Coverity CID
	188804
	[86df86ed9]

2021-09-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c:
	Avoid reinitializing other auth methods.
	[b9b845183]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	expand_include: add bounds checking when expanding %h escape.
	[4a49f1696]

	* plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Check snprintf() return values even if we preallocated the correct
	amount. There are no remaining unchecked snprintf() that can
	actually overflow.
	[dc90df8de]

	* include/sudo_iolog.h, lib/iolog/iolog_nextid.c:
	iolog_nextid(): make iolog_dir argument const. We make a copy of the
	directory so there's no real reason that parameter can't be const.
	[23d04dde2]

	* plugins/sudoers/ldap_util.c:
	Amend truncation fix, the real problem was the size passed to
	snprintf(). sudo_rcstr_alloc() takes a length (not a size) parameter
	so when calling snprintf() we need to add one to the length.
	[0f2252f89]

	* plugins/sudoers/ldap_util.c:
	Fix truncation of the last char of the sudoRole cn passed to
	append_default(). This string is primarily used for warning
	messages. Also check the snprintf() return value to avoid silent
	truncation. GitHub issue #115
	[e23874d0f]

2021-09-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_8p2 for changeset 9edebc604c58
	[dc8067ca7]

	* NEWS, configure, configure.ac:
	Sudo 1.9.8p2
	[4fef09e1c]

	* NEWS, configure, configure.ac:
	Sudo 1.9.8p2
	[48911e691]

	* etc/codespell.exclude:
	Standardize on "front-end" not "front end" in the man pages.
	[0340a9056]

	* configure, configure.ac:
	fix typo
	[a036cb025]

	* logsrvd/logsrvd_journal.c:
	Reuse existing journal file for an accepted/rejected sub-command.
	Otherwise we end up with zero-length files in the incoming queue dir
	and may end up relaying one of those instead of the actual journal
	file.
	[a41e74aad]

	* logsrvd/logsrvd_journal.c:
	Reuse existing journal file for an accepted/rejected sub-command.
	Otherwise we end up with zero-length files in the incoming queue dir
	and may end up relaying one of those instead of the actual journal
	file.
	[a78d3cc25]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Re-enable error output for the sudoers parser. It is only the alias
	and defaults warnings we need to suppress.
	[b6561831b]

	* src/exec_intercept.c:
	Add intercept_cleanup() stub for when building w/o intercept
	support.
	[5421c6182]

	* src/exec_intercept.c, src/exec_nopty.c, src/exec_pty.c,
	src/sudo_exec.h:
	Add intercept_cleanup() to free the closure used by
	intercept_accept_cb().
	[a8c4d9800]

	* plugins/sudoers/auth/pam.c:
	Don't re-initialize PAM for sub-commands.
	[6f7bef4e4]

	* plugins/sudoers/auth/pam.c:
	Don't re-initialize PAM for sub-commands.
	[328bc282e]

	* logsrvd/logsrvd_local.c:
	sudo_logsrvd: only send log ID for first command of a session There
	is no need to send the log ID for each sub-command.
	[047f2be8a]

	* logsrvd/logsrvd_local.c:
	sudo_logsrvd: only send log ID for first command of a session There
	is no need to send the log ID for each sub-command.
	[8cc7e4bb5]

	* plugins/sudoers/log_client.c:
	Only store the first log id received from the server. Plugs a small
	memory leak in intercept mode if the log server sends the log ID
	again for sub-commands.
	[cb187e0ac]

	* plugins/sudoers/log_client.c:
	Only store the first log id received from the server. Plugs a small
	memory leak in intercept mode if the log server sends the log ID
	again for sub-commands.
	[0eb677b74]

2021-09-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	fuzz_sudoers: don't warn about unknown defaults entries Some fuzzing
	inputs cause a huge number of warnings and displaying them all can
	result in the fuzz run timing out. If we disable the warnings we can
	avoid the timeout.
	[77ef8baa9]

	* plugins/sudoers/defaults.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/policy.c:
	Limit paths for command, cwd and chroot to PATH_MAX bytes. This
	helps prevent the fuzzer from going off the rails.
	[0ea561ca6]

	* plugins/sudoers/sudoers.c:
	sudo -i: missing NULL terminator when moving argv to make room for
	--login Fixes a potential crash for "sudo -i" when the target user
	has bash as the shell (which needs the --login option). Bug #998.
	[09eba6137]

	* plugins/sudoers/sudoers.c:
	sudo -i: missing NULL terminator when moving argv to make room for
	--login Fixes a potential crash for "sudo -i" when the target user
	has bash as the shell (which needs the --login option). Bug #998.
	[7ab66eb3a]

	* lib/eventlog/eventlog.c:
	Only append argv[] to the log line if argv[0] is not NULL. It should
	not be possible to reach this point with a command defined but
	argv[] empty but it doesn't hurt to check.
	[518bc1b25]

2021-09-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/check_aliases.c:
	Only warn about an undefined alias or a cycle a single time. There's
	no point in warning about the same problem multiple times. This
	implementation assumes a small number of warnings and so just uses a
	simple listed link.
	[613468e4d]

	* configure, configure.ac:
	Remove now-unused CHECK_INTERCEPT variable.
	[1d2512ae1]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Quiet pvs-studio false positive: V557 Array overrun is possible.
	Make the zero length check explicit so as not to confuse static (or
	human) analyzers.
	[d9e8c852b]

2021-09-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/regress/testsudoers/test17.out.ok,
	plugins/sudoers/regress/testsudoers/test17.sh:
	Test that digest matching works with LDAP sudoCommand: ALL
	[292916f43]

	* plugins/sudoers/ldap_util.c:
	Allow a digest to be specified with the "ALL" command for ldap/sssd
	back-ends. This has been possible with sudoers file entries since
	sudo 1.9.0 but no corresponding change was made for ldap/sssd.
	[702746f96]

	* lib/eventlog/eventlog.c:
	Use localtime_r() not gmtime_r() when formatting the local time.
	This is consistent with how sudo formatted time stamps prior to the
	logging code being split off into libeventlog. We only need to use
	gmtime_r() for ISO 8601 time.
	[49bf0cc84]

	* lib/eventlog/eventlog.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/util/sudo_debug.c, plugins/audit_json/audit_json.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/timestr.c:
	Check strftime(3) return value in all cases. Old versions of
	strftime(3) didn't guarantee to NUL-terminate the buffer so we
	explicitly clear the last byte of the buffer and check it.
	[55171df5e]

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in, doc/sudo.man.in,
	doc/sudo.mdoc.in, doc/sudo_logsrvd.man.in, doc/sudo_logsrvd.mdoc.in,
	doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in,
	doc/sudo_sendlog.man.in, doc/sudo_sendlog.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, doc/visudo.man.in,
	doc/visudo.mdoc.in:
	Standardize on "front-end" not "front end" in the man pages.
	[698481492]

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	Plugin lines are for approval and audit plugins too.
	[7c550c5d1]

	* lib/eventlog/eventlog.c, lib/iolog/iolog_path.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/util/sudo_debug.c, plugins/audit_json/audit_json.c,
	plugins/sample_approval/sample_approval.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/gmtoff.c, plugins/sudoers/ldap.c,
	plugins/sudoers/parse.c, plugins/sudoers/timestr.c:
	Use gmtime_r() and localtime_r() instead of gmtime() and
	localtime().
	[18f1884dd]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/gmtime_r.c, lib/util/localtime_r.c:
	Add gmtime_r and localtime_r tests and compat if missing.
	[fa71679b5]

	* lib/util/sudo_debug.c:
	Store milliseconds in the debug file timestamp. Sometime second
	granularity is not enough.
	[46d71c436]

	* configure, configure.ac:
	When using pkg-config, don't assume the names of the ssl and crypto
	libs. On the HP-UX build machines these are named libssl_pic.a and
	libcrypto_pic.a to avoid conflicting with the system libs.
	[78eb24064]

2021-09-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_8p1 for changeset feb396a0d60d
	[2021f15ff]

	* :
	Merge sudo 1.9.8p1 from tip
	[f5f4a544b]

	* NEWS:
	Bug #994.
	[eab915ae9]

	* plugins/sudoers/ldap_util.c:
	Always allocate a struct sudo_command for the command, even for ALL.
	This was missed in the previous set of changes, resulting in a crash
	for LDAP and SSSD rules that give sudo "ALL" privileges. Bug #994.
	[0c30976ae]

	* plugins/sudoers/Makefile.in:
	Add SUDOERS_LDFLAGS to FUZZ_LDFLAGS Fixes a fuzzer link error when
	building with ldap if the ldap libs are not in the default library
	search path.
	[31e4a0a0a]

	* configure, configure.ac:
	Fix the OpenSSL link order for the non-pkg-config case. Since -lssl
	depends on -lcrypto, -lcrypto must be listed after -lssl. Fixes
	linking of non-dynamic OpenSSL libs.
	[2d632937e]

2021-09-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac:
	Sudo 1.9.8p1
	[e1653be43]

	* src/sudo_intercept_common.c:
	sudo_interposer_init: verify message type from sudo We should only
	get a HelloResponse from sudo at this point.
	[51d5f05e6]

	* include/intercept.pb-c.h, src/exec_intercept.c,
	src/intercept.pb-c.c, src/intercept.proto,
	src/sudo_intercept_common.c:
	Avoid symbol name clash to fix --enable-static-sudoers linking.
	[db750232c]

2021-09-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/defaults.c, plugins/sudoers/policy.c:
	append_defaults() should not be passed a value for boolean flags.
	The operation should simply be set to true/false. Also treat a NULL
	file as coming from the front-end. Bug #993.
	[d7cdf1e47]

2021-09-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, plugins/python/Makefile.in,
	scripts/mkdep.pl, src/Makefile.in:
	Teach mkdep.pl about --tag=disable-static in LTFLAGS. If static objs
	are disabled we need to add explicit dependencies for .o files. The
	OpenBSD libtool doesn't use a pic object file when linking
	executables so we need to build the non-pic objects too.
	[4289e9609]

	* configure, configure.ac:
	Use SUDO_APPEND_LIBPATH when appending to LIBTLS and LIBMD. The
	OpenSSL pkgconfig files only include -L paths, not -R paths. Using
	SUDO_APPEND_LIBPATH ensures the rpath is set correctly so the
	binaries will run (not just link).
	[229dfe175]

2021-09-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, lib/util/digest_openssl.c:
	Use the EVP digest routines instead of calling SHA2 functions
	directly. Avoids compiler warnings with OpenSSL 3.0.
	EVP_MD_CTX_new() is only available for OpenSSL 1.1 and higher--we
	will fall back to sudo's SHA2 code if necessary.
	[921bc1c69]

	* config.h.in, configure, configure.ac, logsrvd/tls_init.c:
	tls_init.c: use SSL_CTX_set0_tmp_dh_pkey if present. Fixes a warning
	on OpenSSL 3.0 and plugs a memory leak of dhparams on config reload.
	[4e0b77be4]

2021-09-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL, configure, configure.ac:
	Add --enable-openssl-pkgconfig-template option. This can be used to
	find the correct openssl pkg-config file if it is not named
	"openssl" (also libcrypto).
	[052391da9]

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y:
	Some POSIX yacc fixes for bison 3.8 yyerror() must be extern void
	declare tokens with type instead of using separate %type lines
	[ecc3aeffc]

2021-09-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	mkpkg: limit the number of cores used to 16
	[18613eee2]

	* MANIFEST, plugins/sudoers/regress/testsudoers/test16.out.ok,
	plugins/sudoers/regress/testsudoers/test16.sh:
	Add a test to exercise Bug #994
	[cf225d2f1]

2021-09-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	fix typo
	[2445576e9]

2021-09-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_8 for changeset e25cff5d148b
	[5b50bb5cb]

	* :
	Merge sudo 1.9.8 from tip
	[affd3d06d]

	* .gitignore, .hgignore:
	Add src/intercept.exp to ignore files.
	[4b5a67cf8]

2021-09-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/cs.mo:
	regen
	[197d4ced3]

	* NEWS:
	Mention --enable-static-sudoers fix.
	[02966f059]

	* configure, configure.ac:
	Fix typo introduced in 1.9.7 that set SUDO_LDFLAGS to
	SUDOERS_LDFLAGS. Copy pasta is not always the best kind of pasta.
	[4b365300a]

	* MANIFEST, configure, configure.ac, m4/sudo.m4, src/Makefile.in,
	src/intercept.exp.in, src/sudo_intercept.c:
	sudo_intercept.so: only replace execvpe() if it is present.
	execvpe() is a GNU extension also found on *BSD (but not macOS).
	[3a4aec7a6]

	* NEWS:
	We now intercept more than just execve().
	[6d5f450a6]

2021-09-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo_intercept.c:
	Implement simple PATH resolution for execvp(). We want to use PATH
	from the current value of the environment, not the initial value of
	PATH when the policy was opened. This is a little different from how
	real execvp() works since we use stat() instead of just execve().
	[6c456127b]

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, src/intercept.exp, src/sudo_intercept.c:
	Add support for execl, execle, execlp, execvp, and execvpe.
	Currently, PATH traversal is handled by sudoers which uses the
	original PATH, not the one updated by the shell.
	[7ae62866e]

2021-09-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y:
	Remove conditional include of alloca.h, we don't define
	HAVE_ALLOCA_H. The configure check for alloca() was removed long ago
	but this got missed.
	[bf6045184]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Define RBAC and mention incompatibility with intercept/log_subcmds.
	[aac09cf7b]

2021-09-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_intercept.c:
	Fix computation of the token address when handling a partial read.
	We want to treat it as an array of bytes, not an array of tokens.
	Coverity CID 240011
	[157ceadfa]

	* plugins/sudoers/parse.c:
	Quiet a PVS-Studio format string warning.
	[f64d71674]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Regen .pot files.
	[9a9a22e93]

	* plugins/sudoers/po/cs.po:
	Updated translations from translationproject.org
	[2f6cacd1e]

2021-09-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/Makefile.in:
	regen
	[967bcab4d]

	* configure, configure.ac, lib/util/sudo_conf.c, scripts/mkdep.pl,
	src/Makefile.in, src/exec_common.c, src/exec_intercept.c:
	Do not compile intercept code if --disable-intercept is specified.
	[38d884a62]

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	We now intercept execv() too.
	[5c2f1ebbc]

	* INSTALL:
	INSTALL: --disable-intercept will also disable "log_subcmds"
	[190e495b6]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/parse.c:
	Can't use intercept or log_subcmds with SELinux RBAC. SELinux policy
	will prevent the inherited socket from sudo from being used and may
	also restrict the ability to connect back to the sudo process.
	[f40afd73f]

	* m4/ax_prog_cc_for_build.m4:
	Fix typo in comment.
	[242e4d070]

	* po/cs.mo, po/cs.po:
	Updated translations from translationproject.org
	[4ca5c7d64]

	* include/intercept.pb-c.h, src/exec_intercept.c,
	src/intercept.pb-c.c, src/intercept.proto, src/sudo_exec.h,
	src/sudo_intercept_common.c:
	Switch to a 128-bit token instead of a 64-bit secret. Protobuf
	doesn't have a 128-bit type so use two u64s. We now support partial
	reads of the token.
	[9a690a898]

2021-08-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, lib/util/Makefile.in, lib/util/regress/uuid/uuid_test.c,
	lib/util/uuid.c:
	Fix random uuid generation, no need to convert between byte order.
	Also add regression test.
	[4bff82cab]

	* include/intercept.pb-c.h, src/exec_intercept.c,
	src/intercept.pb-c.c, src/intercept.proto,
	src/sudo_intercept_common.c:
	sudo_intercept.so: send the secret immediately after connecting.
	Sending the secret out of band, before the message size is read,
	should make it harder to mount a DoS attack.
	[9137909c7]

	* src/sudo_intercept_common.c:
	Handle reading large messages that don't fit in a single recv(). We
	know the length of what we are receiving so just loop until we have
	it all, get EOF or an error.
	[26938012f]

	* configure, configure.ac:
	Add checks for -fstack-clash-protection and -Wl,-z,noexecstack We
	use -Wc,-fstack-clash-protection as the linker flag to prevent
	libtool from removing it from the link line.
	[c0630a36c]

	* src/exec_intercept.c:
	Make the sudo side of the intercept socket non-blocking.
	[a078bc64b]

	* src/exec_intercept.c:
	Handle partial read/write by dropping back into the event loop.
	[3c26b92a7]

	* src/exec_intercept.c:
	intercept_check_policy: Fix double free introduced in last commit If
	the command is not accepted we don't rebuild command_info[] and must
	not free it. It will be freed by the policy instead.
	[33d1b26c6]

2021-08-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/intercept.pb-c.h, src/exec_intercept.c,
	src/intercept.pb-c.c, src/intercept.proto,
	src/sudo_intercept_common.c:
	Update runcwd in command_info[] before passing it to the audit
	plugin. Since sudoers does rejected commands itself the runcwd will
	still not be correct for those.
	[168d5c47c]

	* src/exec_preload.c:
	Fix LD_PRELOAD formatting when there is an existing LD_PRELOAD var.
	[22de92b0d]

2021-08-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_intercept.c:
	intercept_check_policy: fix potential NUL dereference on the error
	path.
	[75bac8dee]

	* NEWS, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/policy.c, src/exec.c,
	src/exec_common.c, src/exec_nopty.c, src/exec_pty.c, src/sudo.c,
	src/sudo.h:
	Rename log_children -> log_subcmds
	[ba171724f]

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt.mo, plugins/sudoers/po/pt.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/eo.mo,
	po/eo.po, po/fr.mo, po/fr.po, po/hr.mo, po/hr.po, po/ko.mo,
	po/ko.po, po/pl.mo, po/pl.po, po/pt.mo, po/pt.po, po/pt_BR.mo,
	po/pt_BR.po, po/tr.mo, po/tr.po, po/uk.mo, po/uk.po, po/zh_CN.mo,
	po/zh_CN.po, po/zh_TW.mo, po/zh_TW.po:
	Updated translations from translationproject.org
	[d8d402333]

	* lib/util/sudo_debug.c:
	Add sudo_debug_register_v2() stub for fuzzing build.
	[dcab17900]

	* src/exec_intercept.c:
	Fix use-after-free on error. Also remove useless free of a ptr that
	is always NULL on the error path.
	[3d8b327c6]

	* src/exec_common.c:
	No longer need to remap intercept fd but we do need to remap debug
	fd. The intercept fd is closed in the ctor but the debug fd will
	still be open.
	[dc30c842b]

	* include/sudo_debug.h, lib/util/sudo_debug.c, lib/util/util.exp.in,
	logsrvd/logsrvd.c, logsrvd/sendlog.c,
	plugins/audit_json/audit_json.c, plugins/python/sudo_python_debug.c,
	plugins/sample_approval/sample_approval.c,
	plugins/sudoers/sudoers_debug.c, plugins/sudoers/sudoreplay.c,
	src/sesh.c, src/sudo.c, src/sudo_intercept_common.c:
	sudo_debug_register: add minfd argument to specify lowest fd number
	Use this in sudo_intercept.so to avoid allocating a low-numbered fd
	which the shell reserves for use by scripts.
	[70aef0eb2]

	* src/exec_intercept.c:
	Fix command name of sub-command in logs when log_children is set.
	[d6a71fe32]

2021-08-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h:
	log_allowed: pass struct eventlog * instead of argv[] and envp[].
	This lets us log based on the command_info[] list passed in from the
	front-end. Previously, much of the struct eventlog was constructed
	from internal sudoers state instead.
	[ec751c63e]

	* include/sudo_compat.h:
	sudo_compat.h: include unistd.h on HP-UX to safely redefine
	pread/pwrite HP-UX 11.31 defines static functions for pread() and
	pwrite() which will conflict with our macros.
	[e199dd825]

	* src/exec_intercept.c:
	Add a state variable to intercept_closure, replaces policy_result.
	[438a0cf07]

	* config.h.in, configure, configure.ac, include/intercept.pb-c.h,
	src/exec_intercept.c, src/exec_nopty.c, src/exec_pty.c,
	src/intercept.pb-c.c, src/intercept.proto, src/sudo_exec.h,
	src/sudo_intercept_common.c:
	Change intercept IPC to use a localhost socket instead of inherited
	fd. This allows intercept mode to work with shells that close all
	open fds upon startup. The ctor in sudo_intercept.so requests the
	port number and secret over the socket inherited from the parent
	then closes it. For each policy request, a TCP connection is made to
	the sudo parent process to perform the policy check. Child processes
	re-use the TCP socket to request the port number and secret just
	like the initial process started by sudo does.
	[c465d8971]

2021-08-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_intercept.c:
	Fold intercept_closure_reset() into intercept_close().
	[448536e0f]

2021-08-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match_command.c:
	command_matches: avoid printf("%s") of NULL in debug for sudo ALL.
	[0aedc965f]

	* :
	Merge pull request #111 from commodo/fix-cflags

	lib/util/Makefile.in: use host CFLAGS and CPPFLAGS for
	mksig{name,list}
	[9980357a7]

2021-08-25  Alexandru Ardelean  <ardeleanalex@gmail.com>

	* lib/util/Makefile.in:
	lib: util: Makefile.in: use host CFLAGS and CPPFLAGS for
	mksig{name,list}

	When cross-build support was added for mkig{name,list} was added,
	the CFLAGS and CPPFLAGS should have been updated to the
	HOSTCFLAGS/HOSTCPPFLAGS vars.

	In a cross-build scenario, some of these flags don't match what the
	compiler can understand (because they may be architecture specific)
	and may fail the build.

	Using the HOSTCFLAGS/HOSTCPPFLAGS works and builds successfully.
	Also the output binary works on the target.

	This is in continuation of -
	https://github.com/sudo-project/sudo/pull/104 -
	https://github.com/sudo-project/sudo/pull/109

	Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
	[a12b15b43]

2021-08-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_preload.c:
	Fix typo that caused SUDO_INTERCEPT_FD to overwrite LD_PRELOAD.
	[222d6f94c]

	* src/exec_preload.c:
	Fix off-by-one that could result in duplicate SUDO_INTERCEPT_FD
	vars.
	[139181344]

	* src/sudo_intercept.c:
	Fix typo in macOS execv change.
	[df68f4c8d]

2021-08-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, src/intercept.exp, src/sudo_intercept.c:
	Add execv(3) support to sudo_intercept.so. This allows intercept to
	work with csh which uses execv(3) not execve(2).
	[98401c058]

2021-08-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in, doc/sudoers.man.in,
	doc/sudoers.mdoc.in:
	Sync the list of functions trapped by sudo_noexec.so.
	[02b78c38e]

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	Add a Debug example for sudo_intercept.so Don't try to enumerate all
	the sudo programs that support debugging since all of them do.
	[1e795b548]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Update sudoers Debug example to match the debug changes from sudo
	1.8.12.
	[bb40491c9]

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	sudo_intercept.so only intercepts execve(2) for now.
	[8ccb7f009]

	* plugins/sudoers/parse.c:
	Fix formatting for bound defaults with multiple entries in the
	binding. The entries in the binding were separated with " ," instead
	of ", ".
	[7df245dc9]

	* MANIFEST, src/Makefile.in, src/intercept.exp:
	Add exports file for sudo_intercept.so that only exports execve()
	[4ccd966e2]

	* src/Makefile.in, src/sudo_intercept.c,
	src/sudo_intercept_common.c:
	Add some debugging to the sudo_intercept.so.
	[dc281f036]

	* config.h.in, configure, configure.ac:
	Use AC_FUNC_FSEEKO instead of AC_CHECK_FUNCS_ONCE([fseeko]). This
	will define _LARGEFILE_SOURCE, if needed, to make the prototype
	visible on older systems.
	[680fd4a62]

2021-08-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	We still need the pread/pwrite hack for HP-UX 11.11 at least. This
	time around, avoid defining _LARGEFILE64_SOURCE and just declare
	pread64/pwrite64 ourselves.
	[ad28b90c4]

	* include/sudo_compat.h:
	Fix prototypes for sudo_pread() and sudo_pwrite().
	[23e5304b7]

	* src/exec_intercept.c:
	intercept_fd_cb: store the passed fd in newfd, not fd only affects
	the old BSD-style fd passing code, not POSIX-style.
	[5d3ab032f]

	* lib/util/Makefile.in:
	Fix mksiglist and mksigname dependencies.
	[d333f484e]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	set-user-ID and set-group-ID not set user-ID and set group-ID.
	[52e7594ae]

	* NEWS:
	The fix for bug #989 will make sudo 1.9.8. Also mention
	intercept_authenticate and intercept_allow_setid.
	[09f160779]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[90aee138b]

	* logsrvd/logsrvd_conf.c, plugins/sudoers/check.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/exptilde.c,
	plugins/sudoers/iolog.c, plugins/sudoers/logging.c,
	plugins/sudoers/mkdefaults, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/tsdump.c:
	Replace messages like "unknown foo: %s" with "unknown foo %s". The
	colon really doesn't belong there; we generally use a colon to
	separate a message from the warning detail.
	[bb5843055]

	* .gitignore, .hgignore, MANIFEST, aclocal.m4, configure,
	configure.ac, lib/util/Makefile.in, lib/util/mksiglist.c,
	lib/util/mksigname.c, lib/util/sys_siglist.h,
	lib/util/sys_signame.h, m4/ax_prog_cc_for_build.m4:
	Cross-build support for mksigname and mksiglist We must build these
	with the host C compiler but use the target preprocessor to generate
	the output.
	[b40f74cb2]

2021-08-19  a1346054  <36859588+a1346054@users.noreply.github.com>

	* .clang-format, INSTALL, MANIFEST, autogen.sh, doc/LICENSE,
	etc/sudo.pp, examples/Makefile.in:
	Minor cleanup (#110)

	* fix trivial shell script issues * remove trailing whitespace
	[bf7d20b48]

2021-08-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	log_server_peer_cert and log_server_peer_key are not required by
	default. They are only required if sudo_logsrvd has tls_checkpeer
	enabled.
	[1c52c24a9]

	* logsrvd/logsrvd_conf.c:
	Sync warning messages with sudoers/logging.c Avoids 3 translation
	strings that were effectively duplicated.
	[e17003b35]

2021-08-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/protobuf-c/Makefile.in, src/Makefile.in:
	regen
	[ad5feeb40]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/match_command.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Add intercept_allow_setid sudoers option, disabled by default. With
	this change, a shell in intercept mode cannot run a setuid or setgid
	binary by default. On most systems, the dynamic loader will ignore
	LD_PRELOAD for setuid/setgid binaries such as sudo which would
	effectively disable intercept mode.
	[f9d3f46fa]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/match.c:
	Always allocate a struct sudo_command for the command, even for ALL.
	Previously we special-cased handling of ALL but this complicates
	some upcoming changes.
	[53a95e3a5]

2021-08-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/codespell.exclude:
	Update TAGS_CHANGED macro based on parse.h
	[dad40a50a]

	* doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudoers.man.in,
	doc/sudoers.mdoc.in:
	Better document the limitations of intercept mode. Also mention
	log_children under "Preventing shell escapes"
	[fc9a01936]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update .pot files for 1.9.8.
	[e4809d634]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Try to clarify log_server_peer_key and log_server_peer_cert. These
	are client-side not server-side.
	[a85cf1f3f]

	* logsrvd/logsrvd_conf.c:
	Print the section when warning about an illegal key in the conf
	file. This should make it easier to tell when a setting is present
	in the wrong section.
	[bfcc31b19]

2021-08-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog.c:
	new_logline: limit offset to two significant digits after the
	decimal Now instead of TSID=0001L3@5.168230749 we would log
	TSID=0001L3@5.16.
	[5902c0e21]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/logsrvd_journal.c:
	Set umask to be less restrictive before creating parent directories.
	Otherwise we could end up creating them with a more restrictive mode
	than indended. Coverity CID 221592
	[9248ea6bb]

	* lib/eventlog/eventlog.c:
	new_logline: handle case where evlog is NULL
	[babb498c6]

	* logsrvd/logsrvd_local.c:
	store_alert_local: fix memory leak on error path Coverity CID 238642
	[6d3cf0ffd]

	* plugins/sudoers/audit.c:
	log_server_accept: fix memory leak of evlog when logging a
	sub-command. Coverity CID 238643
	[e2abcd6cb]

	* src/exec_intercept.c:
	Fix memory leak when client requests secret. Move closure allocation
	closer to where it is used.
	[340d75394]

	* logsrvd/logsrvd_local.c:
	store_accept_local: fix return value on error
	[4add9c2c0]

2021-08-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog.c:
	Cast iolog_offset.tv_sec to long long for %lld printf format. Quiets
	a compiler warning on systems where tv_sec in struct timeval is not
	long long.
	[0f6a74f18]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	logsrvd/logsrvd_local.c, plugins/sudoers/logging.c:
	For intercepted commands, log an offset into the current I/O log.
	This can be used with sudoreplay to jump to when a specific command
	was executed within a session log.
	[4aefd4394]

	* doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	lib/iolog/iolog_timing.c, plugins/sudoers/sudoreplay.c:
	Add support for an optional offset when parsing the ID to replay.
	The offset is a suffix in the form of @sec[.nanosec]
	[695f4bea0]

	* logsrvd/logsrvd_local.c:
	Don't overwrite closure->evlog for sub-commands.
	[064981fb1]

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Older Solaris has getusershell() et al but does not declare it.
	[62aca803c]

	* src/exec_intercept.c, src/exec_nopty.c, src/exec_pty.c,
	src/sudo_intercept_common.c:
	Add missing stdint.h and sudo_rand.h includes. Needed for
	arc4random() and uin64_t.
	[a55b54329]

	* include/intercept.pb-c.h, src/exec_intercept.c, src/exec_nopty.c,
	src/exec_pty.c, src/intercept.pb-c.c, src/intercept.proto,
	src/sudo_exec.h, src/sudo_intercept_common.c:
	Pass a secret value to sudo_intercept.so and verify after policy
	check. The goal is to make it harder for someone to have a fake
	policy checker. This will not stop a determined adversary since the
	secret is present in the address space of the running process.
	[eaf03a382]

2021-08-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, src/Makefile.in, src/exec.c, src/exec_intercept.c:
	Split off intercept code into exec_intercept.c.
	[c9d922546]

	* scripts/mkpkg:
	Add trivial support for FreeBSD packages. The actual FreeBSD port
	supports multiple options but this is sufficient for testing
	purposes.
	[3f30704ab]

	* scripts/pp:
	FreeBSD: Set default directory and file mode if not specified in
	%files Otherwise, a mode of 0 will be used, potentially rendering
	the system unusable.
	[374d49981]

	* plugins/sudoers/logging.c:
	Use same check for intercepted commands as log_server_accept().
	Previously, log_server_reject() and log_server_alert() just checked
	whether client_closure has been set.
	[f327a19f3]

	* logsrvd/logsrvd.c, logsrvd/logsrvd_relay.c, logsrvd/sendlog.c,
	plugins/sudoers/log_client.c:
	Call shutdown() on sockets before closing() if they are connected.
	This should ensure that the other side sees any queued data before
	the connection is dropped.
	[0e2094471]

	* logsrvd/logsrvd.c, logsrvd/logsrvd_relay.c, logsrvd/sendlog.c,
	plugins/sudoers/log_client.c:
	If SSL_shutdown() returns 0 it needs to be called one more time.
	[79129613e]

	* plugins/sudoers/editor.c:
	resolve_editor: sudoers_gc_remove(editor) before freeing it.
	[ffdd7920c]

2021-08-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/mksigname.h, lib/util/siglist.in:
	Sync siglist.in with the generated files. The change to prefer
	SIGSYS over SIGUNUSED wasn't made to siglist.in. Also, mksigname.c
	doesn't need to explicitly set sudo_sys_signame[0].
	[ef91b90ad]

	* plugins/sudoers/Makefile.in, plugins/sudoers/editor.c,
	plugins/sudoers/gc.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Add garbage collection to resolve_editor(). Fixes a leak when
	evaluating the policy multiple times if sudoedit is set.
	[9798fd86b]

2021-08-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_common.c:
	Fix compilation when configure option --disable-shared is specified.
	[abac06956]

	* NEWS, configure, configure.ac:
	Sudo 1.9.8
	[aa20eccad]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c:
	Avoid some double frees in the fuzzer Now that sudoers free old
	values of NewArgv and command_info the fuzzer needs to reset those
	values. Otherwise we end up with stashed values that have already
	been garbage collected.
	[462e8ab47]

	* plugins/sudoers/audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h:
	Use a separate uuid for intercepted commands. We use the uuid to
	match the command with its exit status.
	[dae370fb7]

	* plugins/sudoers/audit.c, plugins/sudoers/iolog.c,
	plugins/sudoers/log_client.c, plugins/sudoers/log_client.h,
	plugins/sudoers/logging.c:
	Fix logging intercepted commands to a log server in sudoers. Only
	available when the server supports the subcommands capability.
	[2e99450d4]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c:
	Plug some memory leaks when sudoers_policy_main is called multiple
	times. These would get cleaned up a policy close time but we don't
	want to bloat sudo's memory footprint when running a shell with
	multiple commands.
	[3a090dcdc]

	* configure, configure.ac, pathnames.h.in, src/Makefile.in,
	src/exec_preload.c:
	If building with address sanitizer make sure its DSO is first.
	Address sanitizer requires that it be preloaded before any other DSO
	in LD_PRELOAD. This should not be required for clang, which links in
	asan statically by default.
	[dfe26f8c3]

	* configure, configure.ac, src/exec_preload.c:
	Require that our dso be first in the list to make sure it takes
	effect. Otherwise, another dso could take precedence and ours would
	not be run.
	[8f8a9c37b]

	* config.h.in, configure, configure.ac, src/exec.c,
	src/sudo_intercept_common.c:
	If msg_control is not present in struct msghdr use msg_accrights
	instead. Fixes building on Solaris and probably others. It is
	possible to expose msg_control on Solaris but this requires a
	specific set of feature flag defines which can cause other
	complications.
	[0ea5efd8b]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/check.c,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Add intercept_authenticate sudoers option, defaults to false. By
	default, sudoers will not require authentication of commands run via
	an intercepted session. To require authenticaton of subsequent
	commands, enable intercept_authenticate in sudoers.
	[788708c9f]

	* src/exec.c, src/exec_nopty.c, src/exec_pty.c:
	Make the log_children option only log and not check policy.
	[13b89e910]

	* src/exec_preload.c, src/sudo_intercept_common.c:
	Add debug support to sudo_intercept.so
	[258fa9d4f]

	* MANIFEST, src/Makefile.in, src/exec_common.c, src/exec_preload.c,
	src/sudo_exec.h, src/sudo_intercept.c, src/sudo_intercept_common.c:
	Move preload_dso() to its own file and rename to sudo_preload_dso().
	It now takes an intercept fd as an optional argument instead of a
	list of extra variables to add. This lets us check whether it is
	already set to the expected value (and add it if not).
	sudo_intercept.so now uses sudo_preload_dso() to make sure that
	LD_PRELOAD and SUDO_INTERCEPT_FD are set properly before executing.
	[9c3df47da]

	* src/exec.c:
	Take control of the tty and save its settings before doing a policy
	check. Otherwise the policy plugin won't be able to read the
	password.
	[60e76e3e3]

	* src/exec.c, src/sudo.c, src/sudo.h:
	Call the approval plugin after the policy plugin accepts a command.
	Previously, for intercepted commands we only called the policy
	plugin.
	[42598735d]

	* src/sudo.c:
	Reduce the number of function args passed to plugin wrappers. This
	makes sudo_settings, user_info, submit_argv, submit_envp and
	submit_optind global. This will be required for calling the wrapper
	from outside of sudo.c where we may not have access to those
	variables.
	[4ff3f7604]

	* src/sudo.c, src/sudo.h:
	Add return values for most of the plugin function wrappers that
	returned void. Previously, they would just exit if there was an
	error. Now the error is passed back up the stack so we can use them
	in sudo_intercept.so.
	[840bf4b09]

	* MANIFEST, src/Makefile.in, src/exec.c, src/exec_common.c,
	src/sudo_exec.h, src/sudo_intercept.c, src/sudo_intercept_common.c:
	Implement sudo_intercept.so. Uses protobuf to talk to main sudo
	process over a socketpair.
	[4cf3d1c41]

	* src/exec.c, src/sudo.c, src/sudo.h:
	Implement the sudo side of the sudo_intercept.so communication.
	[d7380bb27]

	* MANIFEST, include/intercept.pb-c.h, src/Makefile.in,
	src/intercept.pb-c.c, src/intercept.proto:
	Define protocol for sudo <-> sudo_intercept.so communication. Uses
	google protocol buffers.
	[cede7dd92]

	* MANIFEST, Makefile.in, configure, configure.ac,
	lib/logsrv/Makefile.in, lib/protobuf-c/Makefile.in,
	lib/protobuf-c/protobuf-c.c:
	Add separate convenience lib for protobuf-c We need to use it for
	sudo <-> sudo_intercept.so communication.
	[5d4120fa5]

	* doc/sudo_logsrv.proto.man.in, doc/sudo_logsrv.proto.mdoc.in,
	include/log_server.pb-c.h, lib/logsrv/log_server.pb-c.c,
	lib/logsrv/log_server.proto, logsrvd/logsrvd.c:
	Allow multiple accept/reject messages during a logsrv conversation.
	The log server now advertises a subcommands flag if it supports
	logging subcommands (e.g. commands run from a sudo-spawned program
	like a shell). The client should only log additional commands during
	a session if this flag is set in the ServerHello message.
	[9d776b4e7]

	* plugins/sudoers/audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h:
	Use run_argv and run_envp passed into the audit plugin for event
	logging. Previously we used NewArgv[] and env_get() but now that
	logging is performed via an audit plugin we should use the values
	passed in.
	[1ae9954c6]

	* plugins/sudoers/set_perms.c:
	Allow set_perms(PERM_INITIAL) to be called more than once. If the
	perm stack depth is non-zero when set_perms(PERM_INITIAL) is called,
	rewind it first and re-initialize the stack depth to 0. Fixes a
	user-after-free bug if set_perms(PERM_INITIAL) is called multiple
	times.
	[5e3ce532f]

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/file.c, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_util.c, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_ldap.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Make it possible to call the sudoers policy check function multiple
	times. We need to reset the Defaults values to their original state.
	[132936f8f]

	* include/sudo_compat.h, src/exec.c, src/exec_common.c,
	src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c, src/selinux.c,
	src/sesh.c, src/sudo_exec.h:
	Allocate a socketpair to communicate with sudo_intercept.so over.
	This is used for the intercept and log_children options.
	[a556b373c]

	* INSTALL, configure, configure.ac, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, examples/sudo.conf.in, include/sudo_conf.h,
	lib/util/sudo_conf.c, lib/util/util.exp.in, pathnames.h.in,
	src/Makefile.in, src/exec.c, src/exec_common.c, src/selinux.c,
	src/sesh.c, src/sudo.c, src/sudo.h, src/sudo_exec.h:
	Add support for loading the sudo_intercept.so DSO.
	[6287e8ca7]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/policy.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Add "intercept" Defaults setting to allow interception of
	sub-commands. This causes "intercept" to be set to true in
	command_info[] which the sudo front-end will use to determine
	whether or not to intercept attempts to run further commands, such
	as from a shell. Also add "log_children" which will use the same
	mechanism but only log (audit) further commands.
	[786e5865c]

	* plugins/sudoers/prompt.c:
	expand_prompt: use correct strlcpy() size parameter The available
	size passed to strlcpy() was computed incorrectly. Switch to
	updating the length after writing to the new prompt instead of
	computing it each time. The actual buffer size is computed and
	allocated correctly so there is no real consequence to this bug.
	Found by Qualys.
	[b3e86c65b]

2021-08-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	examples/sudo_logsrvd.conf:
	The tls_verify setting only affects server behavior, not the client.
	Originally, there was a flag in the ServerHello message to indicate
	that the client should verify the server cert, but this was removed
	TLS was moved to a separate port. Client validation of the server
	certificate is now configured in the sudoers file instead.
	[14ffa00c0]

2021-08-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	On macOS, don't disable tty tickets and set password timeout to 0.
	This more closely matches the options used by the macOS version of
	sudo.
	[57cb62d7d]

	* plugins/sudoers/find_path.c:
	Add some debugging info to find_path()
	[d1c29fb00]

2021-07-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/iolog_mkdtemp.c:
	iolog_mkdtemp: umask must not be more restrictive than the file
	modes. We need this even though we will be calling mkdtemp() since
	the umask affects the mode of any parent directories.
	[e4568ceaf]

2021-07-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/visudo.c:
	Plug memory leak in error path when sudoers cannot be opened.
	[8b009f62e]

	* plugins/sudoers/defaults.c:
	Trying to use "+=" or "-=" operators on a non-list is an error.
	Previously, they were simply treated as "=" for non-lists.
	[1032fca5b]

	* src/regress/net_ifs/check_net_ifs.c:
	Plug a memory leak in check_net_ifs found by address sanitizer.
	[2ea773ed1]

	* configure, configure.ac:
	Prefix sanitizer and fuzzer options with -XCClinker in ASAN_LDFLAGS.
	Otherwise libtool may ignore the options when linking.
	[40496f510]

2021-07-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/tls_init.c:
	Display the correct error message if X509_verify_cert() fails. We
	must use X509_STORE_CTX_get_error() and
	X509_verify_cert_error_string() instead of the generic OpenSSL error
	functions.
	[aee82efe4]

	* lib/eventlog/eventlog.c:
	In new_logline check for NULL args->reason for EVLOG_RAW. This can't
	happen in practice since we never set EVLOG_RAW without passing in a
	reason. Coverity CID 237142 237143
	[d109cd61d]

	* lib/eventlog/eventlog.c:
	format_json: don't dereference evlog if it is NULL. Also silence a
	PVS Studio false positive.
	[e00ed390d]

2021-07-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_7p2 for changeset 590e06825ec4
	[1563e6c62]

	* configure, configure.ac:
	Bump version to 1.9.7p2
	[625ab9d29]

	* configure, configure.ac:
	Bump version to 1.9.7p2
	[1bea77585]

	* NEWS:
	Sudo 1.9.7p2
	[8d23e2611]

	* NEWS:
	Sudo 1.9.7p2
	[b09d5d8d1]

	* config.h.in, configure, configure.ac, include/sudo_compat.h,
	logsrvd/tls_client.c, logsrvd/tls_init.c,
	plugins/sudoers/log_client.c:
	Use TLS_method() instead of TLS_client_method() throughout. OpenSSL
	returns an error for SSL_accept() if TLS_client_method() was used to
	generate the context (LibreSSL doesn't care).

	Prior to sudo 1.9.7, TLS_client_method() and TLS_server_method()
	were used in the TLS client and server initialization code
	respectively. This was refactored in sudo 1.9.7 to allow the code to
	be shared. Bug #988
	[36fbb13c4]

	* config.h.in, configure, configure.ac, include/sudo_compat.h,
	logsrvd/tls_client.c, logsrvd/tls_init.c,
	plugins/sudoers/log_client.c:
	Use TLS_method() instead of TLS_client_method() throughout. OpenSSL
	returns an error for SSL_accept() if TLS_client_method() was used to
	generate the context (LibreSSL doesn't care).

	Prior to sudo 1.9.7, TLS_client_method() and TLS_server_method()
	were used in the TLS client and server initialization code
	respectively. This was refactored in sudo 1.9.7 to allow the code to
	be shared. Bug #988
	[4fab2867d]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Only replace getaddrinfo for
	FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION. This works around an issue
	on SCO which uses inline functions in the header files which call
	the actual, versioned, library function.
	[532e00aa2]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Only replace getaddrinfo for
	FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION. This works around an issue
	on SCO which uses inline functions in the header files which call
	the actual, versioned, library function.
	[ff6100781]

2021-07-26  MertsA  <andrewmerts@gmail.com>

	* src/utmp.c:
	Rewind utmp file pointer after searching for entry (#108)

	getutline() advances the file pointer until it matches or reaches
	EOF. pututline() starts from the current position in utmp. This
	rewinds the file pointer to the beginning to avoid allocating
	additional spurious utmp entries.
	[0a506b380]

	* src/utmp.c:
	Rewind utmp file pointer after searching for entry (#108)

	getutline() advances the file pointer until it matches or reaches
	EOF. pututline() starts from the current position in utmp. This
	rewinds the file pointer to the beginning to avoid allocating
	additional spurious utmp entries.
	[8480712a8]

2021-07-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, m4/sudo.m4:
	Use AC_CACHE_CHECK in place of AC_MSG_CHECKING + AC_CACHE_VAL where
	possible.
	[f8e05dd98]

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Add configure check for va_copy instead of using #ifdef This
	prevents the va_copy compat #define from being used if sudo_compat.h
	is somehow included before stdarg.h.
	[696c3f5aa]

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Add configure check for va_copy instead of using #ifdef This
	prevents the va_copy compat #define from being used if sudo_compat.h
	is somehow included before stdarg.h.
	[4a90deb2a]

2021-07-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/limits.c:
	Avoid using RLIM_INFINITY for the nofile soft limit to prevent
	closefrom_fallback() from closing too many file descriptors.
	[966e940ad]

	* src/limits.c:
	Avoid using RLIM_INFINITY for the nofile soft limit to prevent
	closefrom_fallback() from closing too many file descriptors.
	[b0ae7a566]

	* plugins/sudoers/logging.c:
	Include signal.h for SIG2STR_MAX and sig2str().
	[b48cd11a4]

2021-07-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	logsrvd/logsrvd_local.c, plugins/sudoers/logging.c:
	Remove unused info_cb and info arguments from eventlog_exit()
	[c234bab7b]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	logsrvd/iolog_writer.c, plugins/sudoers/logging.c,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.h:
	Create a UUID and log it in the JSON version of the event log.
	[fa7250ead]

2021-07-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	examples/sudo_logsrvd.conf, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c, logsrvd/logsrvd_local.c:
	Add log_exit setting in the sudo_logsrvd.conf eventlog stanza This
	causes sudo_logsrvd to log a record with the exit status or
	terminating signal in response to an ExitMessage.
	[0dd2b6442]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Add log_exit_status sudoers option to log when a command exits. This
	option defaults to off.
	[17a415ae7]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c:
	Add support for logging exit status events. For sudo-formatted logs,
	this is a record with "EXIT=number" and potentially "SIGNAL=name"
	after the command. For JSON-format logs, a new "exit" record is
	logged which contains an "exit_value" and potentially "signal" and
	"core_dumped". JSON-format logs now incude a UUID to associate the
	"exit" record with the "accept" record.
	[b54a16e17]

2021-07-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/python_plugin_common.c:
	Check that the python module we actually loaded is what we intended.
	This is intended to provide a more useful error message if the user
	defines a module which conflicts with a system python module. For
	example, a module called test.py would conflicts with the system
	python test module.
	[cfc9d217d]

	* plugins/python/python_plugin_common.c:
	Check that the python module we actually loaded is what we intended.
	This is intended to provide a more useful error message if the user
	defines a module which conflicts with a system python module. For
	example, a module called test.py would conflicts with the system
	python test module.
	[657897b8b]

2021-07-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/CONTRIBUTORS:
	Mention that xkcd inspired the sandwich logo.
	[16f78f59b]

	* doc/HISTORY:
	Mention log server and fuzzers under Quest contributions.
	[86680255b]

2021-06-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sesh.c, src/sudo.c, src/sudo_edit.c:
	Don't assume that the number of groups returned by getgroups() is
	static. On systems where getgroups() returns results based on more
	than just the per-process group vector in the kernel it is possible
	for the number of groups to change in between invocations. Based on
	GitHub PR #106 from Pierre-Olivier Martel.
	[20e1f3047]

	* src/sesh.c, src/sudo.c, src/sudo_edit.c:
	Don't assume that the number of groups returned by getgroups() is
	static. On systems where getgroups() returns results based on more
	than just the per-process group vector in the kernel it is possible
	for the number of groups to change in between invocations. Based on
	GitHub PR #106 from Pierre-Olivier Martel.
	[7a309d70b]

	* doc/Makefile.in:
	Use "mandoc -Tlint -Wwarning" instead of -Wstyle. The style checks
	now include "referenced manual not found" warnings which is not
	helpful.
	[555596e57]

2021-06-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/Makefile.in, src/Makefile.in:
	regen
	[0b809cdaf]

2021-06-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/fuzzstub/fuzzstub.c:
	Change ms from size_t to long. Avoids a spurious test failure on
	Solaris 9
	[1ae7bfac5]

	* lib/fuzzstub/fuzzstub.c:
	Change ms from size_t to long. Avoids a spurious test failure on
	Solaris 9
	[90b4f4c4f]

	* plugins/sudoers/interfaces.c, src/net_ifs.c:
	Move definition of INADDR_NONE from interfaces.c to net_ifs.c. Fixes
	compilation on Solaris 9.
	[653463da5]

	* plugins/sudoers/interfaces.c, src/net_ifs.c:
	Move definition of INADDR_NONE from interfaces.c to net_ifs.c. Fixes
	compilation on Solaris 9.
	[ae0e25cf2]

2021-06-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c:
	Fix dead store found by clang analyzer.
	[030746ce5]

	* logsrvd/logsrvd_conf.c:
	Fix prefix skipping when the prefix is embedded and not separate.
	This doesn't currently matter since the progname and the ": " are
	stored in separate messages. Found by clang analyzer.
	[442778aee]

	* logsrvd/logsrvd_relay.c:
	Remove dead store found by clang analyzer.
	[f3deb3737]

2021-06-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/audit_json/audit_json.c:
	Make sure we store an octal number (like umask) as a string. JSON
	doesn't (portably) support octal numbers with a leading zero.
	[40892a961]

	* plugins/audit_json/audit_json.c:
	Make sure we store an octal number (like umask) as a string. JSON
	doesn't (portably) support octal numbers with a leading zero.
	[b7e81c46b]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	Replace logsrvd_is_early() with logsrvd_warn_stderr(). This is now
	defined in logsrvd_conf.c which removes a dependency on another
	compilation unit for the fuzzer.
	[efaa173fb]

2021-06-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd_local.c:
	Silence a compiler warning on Solaris.
	[1d41937ca]

	* logsrvd/logsrvd.c:
	Reduce scope of errstr variable so it is only declared for OpenSSL.
	[74f034cbf]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[024f4475b]

	* logsrvd/iolog_writer.c, logsrvd/logsrv_util.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd_conf.c, logsrvd/logsrvd_journal.c,
	logsrvd/logsrvd_local.c, logsrvd/logsrvd_queue.c,
	logsrvd/logsrvd_relay.c, logsrvd/sendlog.c, logsrvd/tls_init.c:
	Use sudo_warnx?() instead of sudo_debug_printf for errors. We now
	hook the warn functions so the messages are logged. The messages
	still show up in the debug log too.
	[5a3bbba12]

2021-06-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/Makefile.in,
	lib/util/regress/vsyslog/vsyslog_test.c, lib/util/vsyslog.c,
	scripts/mkdep.pl:
	Remove vsyslog(3) emulation, it is no longer used.
	[cc3b4ffb0]

2021-06-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd_conf.c, logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	If logsrvd_config not set fall back to using stderr for warnings.
	Also fix fuzz_logsrvd_conf link error.
	[d311c7b2e]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	examples/sudo_logsrvd.conf, logsrvd/logsrvd.c, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c:
	Add support for logging server warning/error messages. We can use
	sudo_warn_set_conversation() to set a conversation function that
	either writes to a log file or calls syslog().
	[2c1988410]

2021-06-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_7p1 for changeset d936a99e842d
	[d91f14a49]

	* :
	Merge sudo 1.9.7p1 from tip
	[6342b8b53]

	* NEWS, configure, configure.ac:
	Sudo 1.9.7p1
	[df1895f66]

2021-06-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/audit_json/audit_json.c:
	Check arrays that are passed in for NULL before using them.
	[8f7cae69c]

	* configure, configure.ac:
	Disable nss_search()-based group lookups on HP-UX for now. There is
	a crash when "group: compat" is used in /etc/nsswitch.conf that I
	haven't been able to debug. Since HP-UX doesn't ship the appropriate
	headers it is likely that there is a mismatch between
	include/compat/nss_dbdefs.h and what HP actually uses.
	[f7f161782]

2021-06-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h:
	Remove logsrvd closure ERROR state and use a boolean flag instead.
	Fixes a bug where we would not insert a journal file that failed to
	relay into the queue because its state was changed from CONNECTING
	to ERROR after failing to connect.
	[7b33974f2]

	* include/compat/nss_dbdefs.h, lib/util/getgrouplist.c:
	Add NSS_TRYAGAIN and correct buflen in struct nss_XbyY_buf_t. Add
	some function argument names. Also use struct nss_db_state * instead
	of void * in nss_db_root_t. We don't define struct nss_db_state but
	since it is a pointer all we need is a forward declaration.
	[c5247845a]

2021-06-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/fuzzstub/fuzzstub.c, lib/iolog/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in:
	Make sure we link with libsudo_util *after* libfuzzstub. This only
	affects builds with a static libsudo_util. Also fix a warning on
	HP-UX about main not being public.
	[b913a832e]

	* MANIFEST, lib/util/Makefile.in,
	lib/util/regress/getgrouplist/getgids.c:
	Add getgids utility to simular "id -G" using sudo_getgrouplist2()
	[dfaa9b95f]

	* lib/util/getgrouplist.c:
	Make sure we don't read or write past the end of the group buffer.
	We need to leave room for the terminating NULL in gr_mem. It is
	possible for gbm->numgids > gbm->maxgids if we ran out of room.
	[3104d8ba0]

2021-06-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/getgrouplist.c:
	Add some debugging to sudo_getgrouplist2().
	[4b73c98c0]

2021-04-07  Radovan Sroka  <rsroka@redhat.com>

	* src/sudo_edit.c:
	Fixed bad condition for sesh args

	In selinux_edit_copy_tfiles() when there is only one file and the
	open() fails then number of arguments is lower than expected. Sudo
	should return error with or without "Defaults !sudoedit_checkdir"
	set.

	This was found with regression testing of CVE-2021-23240.

	Signed-off-by: Radovan Sroka <rsroka@redhat.com>
	[f44adcdf3]

2021-06-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/load_plugins.c:
	Fix some debug_decl typos and remove an unneeded cast.
	[97f6fc259]

	* plugins/sudoers/defaults.h:
	T_TIMEOUT is not a bitwise flag so doesn't need to be a power of 2.
	[82f5592d6]

2021-05-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/load_plugins.c:
	sudo_stat_plugin(): set errno but do not warn if plugin path too
	long. The caller will display the warning (using errno) so there is
	no need to do it twice.
	[b1d4a02ea]

2021-05-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in:
	sudoreplay does not parse sudoers to find the value of iolog_dir.
	The default value for the I/O log directory is set at build time.
	[5087f6885]

	* plugins/sudoers/policy.c:
	Fix group list ref leak in sudoers_policy_store_result() on error
	path.
	[cc647c32e]

2021-05-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c:
	Update comment to match reality.
	[958066edd]

2021-05-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, scripts/ltmain.sh, src/Makefile.in:
	Build sudo_noexec.so as a module on systems other then Darwin. On
	Darwin, shared modules and shared libraries are not interchangable
	and since we preload sudo_noexec.so via DYLD_INSERT_LIBRARIES it
	must be a library, not a module. We must relax the requirement that
	libraries begin with a "lib" prefix to work around this difference.
	This does mean you must use sudo's libtool on Darwin (macOS) but
	that is already a requirement on other systems (notably HP-UX and
	SCO) due to a number of libtool patches we require that haven't be
	accepted upstream. This is a different fix for PR #102.
	[2e492267e]

	* configure, configure.ac:
	Use -Wno-deprecated-declarations on macOS This quiets warnings about
	LDAP and audit libraries being deprecated. We will use them until
	they are removed in a future version of macOS.
	[31e613811]

2021-05-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	Use /usr/bin/cc on FreeBSD and macOS.
	[0645a2ade]

	* plugins/sudoers/log_client.c:
	Don't include errno in "unable to connect to log server" message.
	There should be a more specific message, usually with an error
	string, displayed earlier.
	[78849e672]

	* src/ttyname.c:
	Fix compiler warning on FreeBSD.
	[d9b831112]

	* lib/iolog/hostcheck.c:
	Explicitly include netinet/in.h for struct sockaddr_in and
	sockaddr+_in6. Fixes a compilation problem on FreeBSD.
	[96fb72e7c]

2021-05-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_7 for changeset f0ce54d4288c
	[6fdf774a2]

	* :
	Merge sudo 1.9.7 from tip
	[a430a955b]

2021-05-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po:
	Updated translations from translationproject.org
	[ec0dcab3c]

	* plugins/sudoers/log_client.c:
	Better warning when close function is passed a non-terminal signal.
	[f2155c704]

	* logsrvd/logsrvd_local.c:
	Remove line causing store_suspend_local() to return false on
	success. This is something that should have been removed as part of
	the local I/O logging refactor.
	[0f5c8fe12]

	* src/exec_pty.c:
	Don't set the command status in the closure when the command is
	suspended. This should only be set for signals that terminate the
	process. Fixes a bug where the sudo front-end could call the plugin
	close function with a non-terminal signal argument.
	[3147bbeb2]

2021-05-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/pyhelpers.c, plugins/python/python_plugin_policy.c:
	Quiet -Wshadow warnings from gcc.
	[6cdf49d33]

	* NEWS, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	The -g option may also be used with any group the target user
	belongs to. The description in the Runas_Spec section incorrectly
	stated that the -g option could not be used if no runas group was
	set. Bug #975.
	[7033f1c1d]

	* configure, configure.ac:
	Remove redundant "configuring Sudo version X.YY" line. We now
	display this along with the summary info at the end.
	[2efa90352]

	* configure, configure.ac:
	Don't check for -Wl,-z,relro twice.
	[841e1b33f]

2021-05-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt.mo, plugins/sudoers/po/pt.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po:
	Updated translations from translationproject.org
	[bfc17bc66]

	* scripts/mkpkg:
	Build python plugin for RHEL 6 as well.
	[3018c1cd2]

	* configure, configure.ac:
	Remove shell-style quotes in configure warning/error/notice
	messages. Square bracket quotes are used, no need for shell-style
	double quotes.
	[9b33594a4]

	* NEWS, configure, configure.ac:
	Summarize configure settings after all tests have run. This makes it
	a lot easier to see what features have been enabled.
	[96436787a]

2021-05-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL, configure, configure.ac:
	Remove --with-efence option, there are better options available.
	[d71731e50]

	* NEWS:
	Move misplaced changes into the 1.9.7 section where they belong.
	[f2081f902]

	* lib/util/regress/sudo_conf/conf_test.c:
	Awful hack to pass on macOS where group_source=dynamic by default.
	[468e9c7f4]

	* plugins/sudoers/po/ca.mo, plugins/sudoers/po/ca.po,
	plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po, po/ca.mo,
	po/ca.po, po/it.mo, po/it.po, po/sr.mo, po/sr.po:
	Updated translations from translationproject.org
	[0e9a5e4f9]

	* NEWS:
	Document late stage 1.9.7 changes.
	[e6f1adcb2]

	* doc/sudo_sendlog.man.in, doc/sudo_sendlog.mdoc.in,
	logsrvd/sendlog.c, logsrvd/sendlog.h:
	sudo_sendlog: rename -m (max-time) to -s (stop-after).
	[9d734d57e]

	* logsrvd/logsrv_util.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd_journal.c:
	Update closure->elapsed_time in journal_seek(). Otherwise the commit
	point messages won't be accurate when restarting.
	[caf096e1a]

	* doc/sudo_sendlog.man.in, doc/sudo_sendlog.mdoc.in,
	logsrvd/sendlog.c, logsrvd/sendlog.h:
	Add "-m elapsed" option to specify the max elapsed time of records
	to send. Useful for testing the ability of the server to handle
	restarted log transfers.
	[7376fa632]

2021-05-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c, logsrvd/logsrvd_relay.c:
	Disable reading from client or relay when sending error to client.
	We treat an error from the relay as fatal and must stop processing
	data from both client and relay to make sure we don't get out of
	sync.
	[5a3906634]

	* logsrvd/iolog_writer.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd_local.c:
	Fix I/O log restart of locally-store logs. This got broken a while
	ago when evlog in struct connection_closure was changed to a
	pointer.
	[c3534712d]

	* scripts/pp:
	Fix detection of the volatile flag when other flags are present.
	Otherwise flags fields like "volatile,ignore-other" will be ignored
	by the Debian and BSD back ends.
	[b5542f8b2]

	* src/limits.c:
	Fix debug message when prctl(PR_SET_DUMPABLE, 0, 0, 0, 0) fails.
	GitHub issue #101
	[51cbc626f]

	* logsrvd/logsrvd_relay.c, logsrvd/sendlog.c, logsrvd/tls_client.c,
	logsrvd/tls_common.h, plugins/sudoers/log_client.c:
	Don't hard-code the TLS connect timeout, use normal connect timeout.
	For sudo_logsrvd, this is the relay connect_timeout setting. For
	sudoers, this is the log_server_timeout setting.
	[109a0331a]

2021-05-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd_queue.c:
	Add missing closedir(3) in logsrvd_queue_scan(). Coverity CID 221591
	[06cb6459c]

2021-04-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot:
	regen
	[d883213f5]

2021-05-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention "log_server_verify" bug fix.
	[d204d4120]

	* configure, configure.ac, doc/sudo_logsrvd.conf.man.in,
	doc/sudo_logsrvd.conf.mdoc.in, examples/sudo_logsrvd.conf,
	m4/sudo.m4, pathnames.h.in:
	Rename logsrvd log dir to /var/log/sudo_logsrvd.
	[fda17ecfd]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	examples/sudo_logsrvd.conf, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c, logsrvd/logsrvd_queue.c:
	Make the failed relay retry interval configurable. This is the
	amount of time to wait before trying to resend a journal to the
	relay server after a connection error.
	[f49930c62]

2021-05-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, logsrvd/Makefile.in, logsrvd/logsrvd.c,
	logsrvd/logsrvd.h, logsrvd/logsrvd_journal.c,
	logsrvd/logsrvd_queue.c, logsrvd/logsrvd_relay.c:
	Send outgoing messages to the relay server on startup. Also attempt
	to retry messages that could not be relayed periodically.
	[177816b78]

	* lib/util/fatal.c:
	Avoid clobbering errno in warning().
	[9077daee9]

	* logsrvd/logsrvd_relay.c:
	Set relay name string to NULL after dropping the reference.
	Otherwise it is possible to decrement the reference more than once.
	[bc82430a6]

2021-04-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog.c:
	Fix cut & pasto that prevented the verify_server option from being
	set. The "log_server_verify" setting passed from the policy plugin
	was applied to the "keepalive" option instead of "verify_server".
	From Krisztian Kovacs.
	[af0345e23]

2021-04-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_logsrvd.man.in, doc/sudo_logsrvd.mdoc.in,
	logsrvd/logsrvd.c:
	Write client and server information to debug file on SIGUSR1 This
	can be used to debug client problems such as a connection not being
	closed as expected.
	[01bdfd3be]

	* doc/sudo_logsrvd.man.in, doc/sudo_logsrvd.mdoc.in:
	Document journal file directories in store_first mode.
	[cefa72c6a]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_journal.c:
	Create journal files in an incoming directory, move to outgoing when
	complete. This will make it possible to process completed journal
	files periodically if the relay server is down.
	[f92bb8840]

	* logsrvd/logsrvd_relay.c:
	Add missing connection_close() call for relay-only connections. For
	an immediate relay we will close the connection when the client
	disconnects (or there is a timeout). However, for store-and-forward
	mode the client has already disconnected at the time we are
	relaying.
	[5c593d5a4]

2021-04-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd_conf.c:
	Replace non-ascii characters in warning string.
	[d4bdc85d7]

	* lib/util/regress/getgrouplist/getgrouplist_test.c,
	lib/util/regress/tailq/hltq_test.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/editor/check_editor.c,
	plugins/sudoers/regress/exptilde/check_exptilde.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/parser/check_hexchar.c,
	plugins/sudoers/regress/starttime/check_starttime.c,
	plugins/sudoers/regress/unescape/check_unesc.c:
	Quiet clang analyzer false positive in regress tests.
	[ac878d3e2]

	* MANIFEST, logsrvd/Makefile.in, logsrvd/iolog_writer.c,
	logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_local.c:
	Move local iolog log functions to logsrvd_local.c
	[84a01d3a9]

	* logsrvd/logsrvd_relay.c:
	Better client error reporting on relay server connection error. More
	detailed error messages may be found in the debug log.
	[6d8942e82]

	* logsrvd/logsrvd.c:
	Update debug pid string when sudo_logsrvd becomes a daemon.
	[e55991f24]

2021-04-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c:
	Must call SSL_shutdown() before closing the underlying socket. This
	got broken by some code rearrangement when relay mode was added.
	[f25275ad5]

	* logsrvd/logsrvd.c, logsrvd/logsrvd_relay.c:
	Recover if the client or relay server closes the TLS connection
	uncleanly. The other end of the connection should perform a proper
	TLS shutdown but as long as we are in the correct state there is no
	need to treat this as a user-visible error.
	[67029f3cc]

	* NEWS, aclocal.m4, configure, configure.ac:
	Sudo 1.9.7
	[66c6edada]

	* MANIFEST, plugins/python/Makefile.in,
	plugins/python/lsan_suppr.txt:
	Add a suppression file for the libpython leaks. This is a big hammer
	but it seems like the best we can do for now. Allows "make check" to
	succeed when address sanitizer is used.
	[8a6589343]

2021-04-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/Makefile.in, plugins/sudoers/editor.c,
	plugins/sudoers/regress/editor/check_editor.c:
	When spliting EDITOR check for escaped quote characters. Also add
	check_editor to sudoers "make check".
	[6907376ae]

2021-04-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/editor.c,
	plugins/sudoers/regress/editor/check_editor.c:
	Treat a lone backslash at the end of a string as a literal
	backslash. GitHub issue #99
	[5e5131dec]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in:
	Fix typo.
	[d6d2e3488]

2021-04-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/pyhelpers.c:
	Avoid a potential NULL dereference when mutating args_str. Coverit
	CID 221401
	[a85c6b41a]

	* logsrvd/logsrvd_journal.c:
	Avoid calling fread() with a NUL buffer if msg_len is 0. Coverity
	CID 221399
	[65a55497e]

	* logsrvd/logsrvd.c:
	Set a restrictive umask so new files are only read/write by owner.
	Coverity CID 221402
	[d9f0eba1f]

	* logsrvd/logsrvd.c:
	In connection_closure_free() only close sock if it is not -1. When
	relaying from a journal there will be no socket. Coverity CID 221403
	[bfd5803bd]

	* logsrvd/logsrvd.c:
	Avoid potential NULL dereference in get_free_buf(). Coverity CID
	221400
	[57b8122cf]

	* logsrvd/logsrvd.c, logsrvd/logsrvd_relay.c:
	Remove some now-dead code in the error path. Coverity CID 221397 and
	221398
	[21641a27e]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_journal.c,
	logsrvd/logsrvd_relay.c:
	Use function pointers for each client message type instead of
	conditionals. This separats out the message handler from the
	functions that store or relay the message contents.
	[761b02d34]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_relay.c:
	Add enqueue_error_message() helper function. Formats and enqueues an
	error message and enables the write event.
	[64ac63918]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_journal.c,
	logsrvd/logsrvd_relay.c:
	Forward the journaled entry after it has been stored locally.
	[050e91f8d]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_journal.c:
	Stash the value of the store_first config setting in
	connection_closure. If the configuration changes it should not
	affect a connection that is already in progress.
	[280fabac3]

	* MANIFEST, logsrvd/Makefile.in, logsrvd/iolog_writer.c,
	logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/logsrvd_journal.c, logsrvd/logsrvd_relay.c:
	Journal messages to disk when store_first is set in the relay
	section. Instead of forwarding messages immediately, they are
	journaled locally in wire format. This will be used to implement
	relay store-and-forward mode.
	[c2d3070fa]

	* INSTALL, configure, configure.ac, doc/sudo_logsrvd.conf.man.in,
	doc/sudo_logsrvd.conf.mdoc.in, doc/sudo_logsrvd.mdoc.in,
	logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c, m4/sudo.m4,
	pathnames.h.in:
	Add configuration for sudo_logsrvd store-and-forward mode. Adds
	"relay_dir" and "store_first" settings to sudo_logsrvd.conf in the
	[relay] section. Also adds a --with-relaydir configure argument to
	change the default value (usually /var/log/logsrvd-relay.
	[6f5b353e8]

	* src/signal.c:
	Make sure SIGCHLD is not ignored when sudo is executed. If SIGCHLD
	is ignored there is a race condition between when the process is
	executed and when the SIGCHLD handler is installed. This fixes the
	bug described by GitHub PR #98
	[727056e0c]

2021-04-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac:
	Remove the HP-UX 11.0 pread64() hack, it causes problems on modern
	HP-UX.
	[b0a32fe73]

	* src/limits.c:
	Add minimum value to consider when overriding resource limits.
	Currently only used for RLIMIT_DATA and RLIMIT_AS.

	This works around a problem on HP-UX where setting RLIMIT_DATA
	changes the resource limits for both 32-bit and 64-bit processes.
	HP-UX processes start out with RLIMIT_DATA set based on the values
	of the maxdsiz and maxdsiz_64bit kernel tunables, depending on
	whether they are 32-bit or 64-bit. By default this limit is 1GB for
	32-bit processes and 4GB for 64-bit. However, once RLIMIT_DATA is
	changed, it does not appear to be possible to restore the old
	values. This can result in a 64-bit process that is executed by a
	32-bit shell getting the 32-bit RLIMIT_DATA instead of the 64-bit
	one. Bug #973
	[6717415e7]

2021-04-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd_relay.c:
	Don't use msg_len as a length after converting it to network byte
	order.
	[32f742389]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_relay.c:
	Use the packed message buffer when relaying if possible. There's no
	need to rebuild the message buffer for anything but RestartMessage
	and ClientHello.
	[110d9667e]

2021-04-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_relay.c:
	Allocate the data buffer in get_free_buf() too. We always know the
	size of the data buffer we need at allocation time.
	[935daf6b7]

2021-04-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_relay.c:
	Relay ChangeWindowSize and CommandSuspend events too.
	[3dce67ec1]

2021-04-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/pyhelpers.c,
	plugins/python/regress/testdata/check_example_debugging_c_calls@diag
	.log,
	plugins/python/regress/testdata/check_example_debugging_c_calls@info
	.log,
	plugins/python/regress/testdata/check_example_group_plugin_is_able_t
	o_debug.log:
	Regenerate test output with python 3.10a7 Also adjust debug tests so
	they pass on older python versions
	[7c2224584]

	* configure, m4/python.m4:
	determine Python (3.10) version number correctly. from upstream
	automake
	[5ffa915c9]

	* MANIFEST, aclocal.m4, m4/python.m4, m4/runlog.m4:
	Move python.m4 and runlog.m4 to the m4 directory. Previously they
	were inline in aclocal.m4.
	[fbbf60266]

2021-04-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Add hiuxmpp where we have hpux for special cases. Also move the
	HP-UX 11.00 pread(2) workaround into the section where pread(2) is
	tested for, not before it.
	[d76cc96af]

	* etc/sudo-logsrvd.pp, etc/sudo-python.pp:
	Only replace the last instance of "sudo" in example and doc dir.
	Otherwise we end up with weird paths for a prefix like /opt/sudo.
	[620b0dec8]

2021-04-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.ldap.mdoc.in:
	Fix lint warning.
	[a1323ba43]

	* doc/sudo_logsrvd.man.in, doc/sudo_logsrvd.mdoc.in:
	Mention relay mode and update TLS example.
	[556b8f62c]

	* etc/sudo-logsrvd.pp, etc/sudo.pp:
	If libssl_dep was not passed in, use ldd to determine its value.
	Normally, mkpkg will figure this out, but if the user does "make
	package" outside of the mkpkg script, libssl_dep will not be set.
	[d028410bf]

2021-04-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL, configure, configure.ac, doc/UPGRADE:
	Enable the use of OpenSSL if log client/server not disabled. This
	adds a dependency on OpenSSL unless it is explicitly disabled
	(--disable-openssl) or the sudo log client and server are disabled
	(--disable-log-client and --disable-log-server).
	[28d41ceca]

2021-04-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/codespell.skip:
	configure aux scripts moved to the scripts directory
	[b8fda5b0a]

	* logsrvd/Makefile.in, logsrvd/logsrvd_conf.c:
	Set logsrvd_config to NULL in logsrvd_conf_cleanup() after freeing
	it. Fixes a double free in fuzz_logsrvd_conf (but not sudo_logsrvd
	itself). Also fix linking fuzz_logsrvd_conf with OpenSSL.
	[4e9baba2b]

	* logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.1,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.2,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.3,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.4,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.5,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.6,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.dict:
	Update sudo_logsrvd.conf fuzzer to match configuration changes.
	[e4e0e734b]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	examples/sudo_logsrvd.conf:
	Document relay configuration changes.
	[ae77355ed]

2021-04-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/logsrvd_relay.c:
	Move relay configuration into its own section and add TLS options.
	TLS options in the relay section will be used if specified,
	otherwise the TLS options from the server section are used.
	[163a5f08b]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/logsrvd_relay.c:
	Add "server" and "relay" to getters/callbacks specific to server and
	relay.
	[25d4dd8e6]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/logsrvd_relay.c:
	Remove struct logsrvd_tls_config. Now that the SSL context is
	initialized in logsrvd_conf.c there's no need to export TLS
	configuration other than tls_check_peer.
	[90770794d]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/logsrvd_relay.c:
	No longer need struct logsrvd_tls_runtime, use SSL_CTX instead.
	[9779996c3]

	* logsrvd/logsrvd.c, logsrvd/logsrvd_conf.c:
	Move allocation of the TLS context to logsrvd_conf_apply(). This way
	we get certificate errors at configuration time, not after. It also
	means that a change to the config file that renders the TLS settings
	invalid will no longer cause the server to exit. The new config will
	just be ignored as if there was a syntax error.
	[990fa4f5a]

	* logsrvd/tls_init.c:
	Only initialize the SSL library once.
	[8f0c16f06]

2021-04-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/timestamp.c:
	Sanity check struct timespec in timestamp file. Coverity CID 220564
	[c2909e20e]

	* plugins/sudoers/timestamp.c:
	Check lseek(fd, 0, SEEK_CUR) for -1 return value. Not actually
	possible in practice. Coverity CID 220568.
	[394673cbf]

	* src/net_ifs.c:
	Check for NULL ifa->ifa_addr and ifa->ifa_netmask in both loops.
	[42865567d]

2021-04-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/net_ifs.c:
	Plug memory leak on overflow; Coverity CID 220556
	[52c29aa7a]

	* logsrvd/logsrvd.c:
	In schedule_commit_point() do not free the closure on error. It is
	the caller's responsibility to free resources on error. Coverity CID
	220557
	[37e8b5868]

	* plugins/sudoers/pwutil.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Cast NULL terminator argument to char * when calling sudo_mkgrent().
	Avoids a portability issue on systems where NULL is not a pointer.
	[a2e4f5364]

	* logsrvd/tls_init.c:
	Rename LOGSRVD_DEFAULT_CIPHER_LST13 to DEFAULT_CIPHER_LST13
	[d92610ee4]

	* logsrvd/tls_client.c:
	Include string.h for strerror(3) prototype.
	[5cb5a45ba]

	* logsrvd/logsrvd_relay.c:
	Move connect_relay_tls() so we don't need a prototype for it. Fixes
	a warning when sudo is not configured to use OpenSSL.
	[3f1a76cb8]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	examples/sudo_logsrvd.conf:
	Document relay and connect_timeout server settings.
	[3aec794b7]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c:
	Add logsrvd_conf_cleanup() to free the conf data structures on exit.
	There is no longer a need to do anything in shutdown_cb() other than
	break out of the event loop.
	[86c815fd6]

	* logsrvd/logsrvd_conf.c:
	Don't allow a wildcard address for the relay parameter.
	[ec52810c0]

	* logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/logsrvd_relay.c:
	Add sa_host to struct server_address as a ref counted string. Also
	convert sa_str to ref counted string.
	[30f57bcdc]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/rcstr.c, lib/util/util.exp.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/alias.c, plugins/sudoers/check_aliases.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_util.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/visudo.c:
	Move reference-counted string code from sudoers to libsudo_util. It
	will be used by sudo_logsrvd too.
	[2db9e6421]

	* logsrvd/Makefile.in, logsrvd/logsrvd.h, logsrvd/logsrvd_relay.c,
	logsrvd/sendlog.c, logsrvd/tls_common.h:
	Add support for relaying to another sudo_logsrvd via TLS.
	[b1c4de208]

	* MANIFEST, logsrvd/Makefile.in, logsrvd/logsrvd.c,
	logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c, logsrvd/logsrvd_relay.c:
	Add a relay mode to sudo_logsrvd where it forwards instead of
	stores. Relay hosts are be specified in the server section of
	sudo_logsrvd.conf.
	[d60b8a791]

	* logsrvd/logsrvd.c:
	Split most of server_commit_cb() out into schedule_commit_point().
	This allows it to be used by the relay code too.
	[343100307]

	* logsrvd/logsrvd.c:
	Try to send an error message to client for some client_msg_cb()
	failures.
	[533fcc3f0]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c:
	Rename listen_address -> server_address and add reference counting.
	This will be used by the upcoming relay mode.
	[8101b23e5]

	* MANIFEST, logsrvd/Makefile.in, logsrvd/logsrv_util.h,
	logsrvd/sendlog.c, logsrvd/sendlog.h, logsrvd/tls_client.c,
	logsrvd/tls_common.h:
	Move common TLS client code to tls_client.c and use it in sendlog.c.
	[72c40ae0e]

2021-03-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_6p1 for changeset 055f2a618604
	[4f66879b6]

	* :
	Merge sudo 1.9.6p1 from tip
	[21d16d366]

	* NEWS, configure, configure.ac:
	Sudo 1.9.6p1
	[85d77fb3d]

2021-03-15  Alexandru Ardelean  <aardelean@deviqon.com>

	* plugins/sudoers/policy.c:
	plugins: sudoers: policy: add MODE_IMPLIED_SHELL to RUN_VALID_FLAGS

	Since this flag isn't set, the sudo_mode variable gets invalidated
	and running the 'sudo' command seems to error out with message
	'sudoers_policy_check: invalid mode flags from sudo front end:
	0x80001"'
	[058fde925]

2021-03-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_6 for changeset e3e96490e48f
	[b716d0e43]

	* :
	Merge sudo 1.9.6 from tip
	[b0842bc55]

	* NEWS:
	fix typo
	[f57ab1a63]

2021-03-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Bug #968
	[bc32789af]

	* MANIFEST, logsrvd/Makefile.in, logsrvd/logsrvd.c,
	logsrvd/logsrvd.h, logsrvd/sendlog.c, logsrvd/sendlog.h,
	logsrvd/tls_common.h, logsrvd/tls_init.c:
	Move common TLS initialization code to tls_init.c.
	[71e5275a1]

2021-04-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrv_util.h, logsrvd/logsrvd.c, logsrvd/logsrvd.h:
	Use a tailq of write buffers instead of a single one per connection.
	This allows us to queue up multiple messages for writing like the
	sudoers client supports. Currently, each connection has its own free
	list. In the future we may want a single free list with low and high
	water marks.
	[7bb5eef9d]

	* src/tgetpass.c:
	Set user group list when executing the askpass helper. Under normal
	circumstances the existing group list will match the list fetched by
	sudo. However, if sudo is executed by a process that has changed the
	group list via setgroups(2) and "group_source" in sudo.conf is set
	to "dynamic" it is possible for them to be different.

	If group_source in sudo.conf is set to "dynamic" it is possible for
	the group list
	[e3ff4e663]

	* configure.ac:
	Increase autoconf minimum version to 2.70. Some of the macros
	deprecated in 2.70 are required by older versions. For example,
	AC_PROG_CC now does the work of AC_PROG_CC_STDC. Bug #972
	[f1f8515bd]

	* MANIFEST, Makefile.in, configure, configure.ac, doc/Makefile.in,
	examples/Makefile.in, include/Makefile.in, lib/util/Makefile.in,
	lib/zlib/Makefile.in, logsrvd/Makefile.in,
	plugins/audit_json/Makefile.in, plugins/group_file/Makefile.in,
	plugins/python/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_approval/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, scripts/config.guess,
	scripts/config.sub, scripts/install-sh, scripts/ltmain.sh,
	src/Makefile.in:
	Move autoconf auxiliary files to the scripts directory.
	[d4517e0a1]

2021-04-01  Radovan Sroka  <rsroka@redhat.com>

	* src/selinux.c:
	Removed depricated security_context_t

	Signed-off-by: Radovan Sroka <rsroka@redhat.com>
	[c2a63690c]

2021-04-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in:
	Document SUCCESS=return support in sudoers nsswitch.conf entries.
	Based on a patch from Dennis Filder. Bug #971.
	[28d65159e]

2021-04-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/audit.c:
	Move log_server_accept() out from under the #ifdef
	SUDOERS_LOG_CLIENT Fixes a link error when sudo is configured with
	--disable-log-client.
	[8fa897d3a]

2021-03-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/sendlog.c:
	Return NULL if init_tls_client_context() fails. Otherwise, we will
	call SSL_new with a freed SSL context. Bug #970
	[5a7984120]

2021-03-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, etc/sudo-python.pp, etc/sudo.pp:
	Do not include parent directories in rpm and deb files. Fixes a
	directory conflict with the AIX sudo rpm package. Other deb/rpm
	packages were not affected because parent dirs are omitted for a
	prefix of /usr.
	[4f9d2374c]

	* src/parse_args.c:
	Use separate getopt config for sudoedit. Avoids a problem where the
	user gets an exclusive usage error message when using a
	sudo-specific option. GitHub issue #95
	[a40e4b386]

	* src/parse_args.c, src/sudo_usage.h.in:
	Add -h and -V to sudoedit usage and customize help output for
	sudoedit. Also add missing -B option to usage strings.
	[a4c710ccf]

	* src/parse_args.c:
	Don't report a usage error for "sudo -V". GitHub issue #95
	[b9a0c72fd]

2021-03-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/net_ifs.c:
	SCO OpenServer uses SIOCGIFANUM, not SIOCGIFNUM. On OpenServer,
	SIOCGIFNUM is the number of network interfaces, not the number of
	ifreq structs.
	[ce1f0da84]

2021-03-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/net_ifs.c:
	Add support for HP-UX SIOCGLIFNUM and SIOCGLIFCONF ioctls. We need
	to use both SIOCGIFCONF and SIOCGLIFCONF since SIOCGLIFCONF only
	returns IPv6 addresses.
	[b269da75b]

2021-03-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/net_ifs.c:
	Move get_net_ifs stub to the top and remove unused INET_ADDRSTRLEN
	def.
	[00cdc83cb]

	* src/net_ifs.c:
	No longer need ifr_tmp variable, just reuse ifr. Now that we store
	the string version of the address before fetching the netmask we can
	just re-use ifr. This simplifies things and is safer since if there
	is space for the address there must also be space for the mask.
	[0e49dd238]

	* src/net_ifs.c:
	SCO OpenServer 5 returns a bogus value for SIOCGIFNUM. Gleaned from
	sendmail.
	[423e23122]

	* src/net_ifs.c:
	Use SIOCGSIZIFCONF or SIOCGIFNUM where available. Still falls back
	to a loop if not but now maxes out at 2048 interfaces instead of
	potentially looping forever.
	[45ca46d73]

	* configure, configure.ac, src/net_ifs.c:
	Remove support for obsolete ISC UNIX and MIPS RISC/OS systems. They
	were getting in the way of net_its.c simplification.
	[cf8feb287]

2021-03-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/net_ifs.c:
	Use SIOCGLIFCONF to get interface list where supported (Solaris).
	HP-UX has a SIOCGLIFCONF but it is incompatible (and appears to only
	return IPv6 addresses). Also add IPv6 support using SIOCGIFCONF
	(probably AIX only) and make sure ifr_tmpbuf[] is properly aligned.
	[9d6a37a49]

	* MANIFEST, src/Makefile.in, src/regress/net_ifs/check_net_ifs.c:
	Add simple regress check to display the network interfaces found.
	[06df3a1b4]

2021-03-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL:
	Suggest clang 11 or higher, some fuzzers may hang when used with
	clang 10.
	[009069115]

2021-03-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, logsrvd/Makefile.in,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.dict:
	Add dictionary file for fuzz_logsrvd_conf.
	[977f238d3]

	* Makefile.in, doc/Makefile.in, examples/Makefile.in,
	include/Makefile.in, lib/eventlog/Makefile.in,
	lib/fuzzstub/Makefile.in, lib/iolog/Makefile.in,
	lib/logsrv/Makefile.in, lib/util/Makefile.in, lib/zlib/Makefile.in,
	logsrvd/Makefile.in, plugins/audit_json/Makefile.in,
	plugins/group_file/Makefile.in, plugins/python/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_approval/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Add a new "fuzz" target that executes the fuzzers for 8192 runs
	each. To run indefinately, set FUZZ_RUNS=-1, e.g. "make FUZZ_RUNS=-1
	fuzz"
	[dfff13212]

	* MANIFEST, lib/iolog/Makefile.in,
	lib/iolog/regress/corpus/seed/log_json/id.json,
	lib/iolog/regress/corpus/seed/log_json/ls.json,
	lib/iolog/regress/corpus/seed/log_json/mailq.json,
	lib/iolog/regress/corpus/seed/log_json/make.json,
	lib/iolog/regress/corpus/seed/log_json/pkg_add.json,
	lib/iolog/regress/corpus/seed/log_json/pkg_delete.json,
	lib/iolog/regress/corpus/seed/log_json/printenv.json,
	lib/iolog/regress/corpus/seed/log_legacy/id.log,
	lib/iolog/regress/corpus/seed/log_legacy/ls.log,
	lib/iolog/regress/corpus/seed/log_legacy/mailq.log,
	lib/iolog/regress/corpus/seed/log_legacy/make.log,
	lib/iolog/regress/corpus/seed/log_legacy/pkg_add.log,
	lib/iolog/regress/corpus/seed/log_legacy/pkg_delete.log,
	lib/iolog/regress/corpus/seed/log_legacy/printenv.log,
	lib/iolog/regress/corpus/seed/timing/timing.1,
	lib/iolog/regress/corpus/seed/timing/timing.2,
	lib/iolog/regress/corpus/seed/timing/timing.3,
	lib/iolog/regress/corpus/seed/timing/timing.4, lib/util/Makefile.in,
	lib/util/regress/corpus/seed/sudo_conf/sudo.conf.1,
	lib/util/regress/corpus/seed/sudo_conf/sudo.conf.2,
	lib/util/regress/corpus/seed/sudo_conf/sudo.conf.3,
	logsrvd/Makefile.in,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.1,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.2,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.3,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.4,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.5,
	logsrvd/regress/corpus/seed/logsrvd_conf/logsrvd.conf.6,
	plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/corpus/seed/policy/policy.1,
	plugins/sudoers/regress/corpus/seed/policy/policy.2,
	plugins/sudoers/regress/corpus/seed/policy/policy.3,
	plugins/sudoers/regress/corpus/seed/policy/policy.4,
	plugins/sudoers/regress/corpus/seed/policy/policy.5:
	Move corpus files to a seed subdirectory.
	[6eff3b313]

	* lib/fuzzstub/fuzzstub.c:
	We can now rely on LLVMFuzzerTestOneInput to flush stdout.
	[5498c6a93]

	* plugins/sudoers/Makefile.in:
	Fix fuzz_sudoers output comparison when fuzzing is enabled.
	libFuzzer outputs additional info to stderr that our stub doesn't.
	[bac057913]

	* lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c,
	lib/util/regress/fuzz/fuzz_sudo_conf.c,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Flush stdout before successful return from LLVMFuzzerTestOneInput().
	Fixes a problem with diag lines from libFuzzer being interspersed
	with test output.
	[95bfd65fe]

	* configure, configure.ac:
	Use --allow-multiple-definition to work around an issue with ld.lld.
	For fuzz_policy we redefine getaddrinfo/freeaddrinfo to work around
	a DNS timeout problem with name resolution and CIfuzz. However, this
	causes a link failure when sanitizers are enabled on systems that
	use ld.lld as their linker. Use a big hammer to avoid the link
	error.
	[d03805c41]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/testsudoers.c, plugins/sudoers/testsudoers_pwutil.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/tsgetgrpw.h:
	Do not redefine system group and passwd functions for testsudoers.
	Instead, prefix the replacements with "testsudoers_" and use a
	custom pwutil backend so they get used.
	[3e5cf7baa]

	* Makefile.in, doc/Makefile.in, examples/Makefile.in,
	include/Makefile.in, lib/eventlog/Makefile.in,
	lib/fuzzstub/Makefile.in, lib/iolog/Makefile.in,
	lib/logsrv/Makefile.in, lib/util/Makefile.in, lib/zlib/Makefile.in,
	logsrvd/Makefile.in, plugins/audit_json/Makefile.in,
	plugins/group_file/Makefile.in, plugins/python/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_approval/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Rename "fuzz" makefile target to "check-fuzzer". It's purpose is to
	run the fuzzers are part of a normal "make check" to avoid bit rot,
	not to perform a fuzzer run. The fuzz_logsrvd_conf fuzzer was not
	wired up to "make check" previously.
	[4c182c90f]

2021-03-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po, po/tr.mo,
	po/tr.po:
	Updated translations from translationproject.org
	[843c4b632]

	* plugins/sudoers/Makefile.in, plugins/sudoers/gram.c:
	Use HAVE_STDINT_H instead of trying to guess based on
	__STDC_VERSION__. Fixes compilation with pre-C99 headers when the
	compiler supports C99.
	[d7d80e703]

	* include/sudo_compat.h, lib/util/secure_path.c:
	Remove compatibility defines for POSIX sys/stat.h macros. Modern
	systems have them and we no longer support pre-POSIX systems. This
	fixes potential redefinition of the macros if sys/stat.h is included
	after sudo_compat.h. Bug #968.
	[d9d450292]

	* lib/eventlog/logwrap.c,
	plugins/python/python_plugin_approval_multi.inc,
	plugins/python/python_plugin_audit_multi.inc,
	plugins/python/python_plugin_io_multi.inc, src/get_pty.c:
	Quiet a few Solaris Studio compiler warnings.
	[3f11e8d9a]

	* configure, configure.ac:
	Add -Wno-unknown-pragmas along with -Wall. We don't want warnings
	about unknown pragmas in system headers.
	[b8e588565]

	* scripts/pp:
	Solaris 11.4 removed /usr/bin/optisa, use /usr/bin/isainfo instead.
	[42fbc185a]

2021-03-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Compare OS name against freebsd* and netbsd* not freebsd and netbsd.
	Fixes an issue on NetBSD where host_os starts with netbsdelf.
	[0e2ba920e]

	* plugins/sudoers/Makefile.in:
	Add @SUDOERS_LIBS@ to FUZZ_LIBS for -lutil on FreeBSD and NetBSD
	[07af7caf7]

	* lib/util/Makefile.in, plugins/python/Makefile.in, src/Makefile.in:
	Set locale for all "make check" targets.
	[0cf7c3a95]

2021-03-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	AIX 6.1 may have a broken fmemopen(). We only use it for the fuzzers
	so ignore it for AIX < 7.1.
	[7bce330ff]

2021-03-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/pp:
	Only put specific directories in the ROOT section of the AIX
	package. Previously, /usr and /opt were placed in USR and everything
	else went in ROOT. Now, only /dev, /etc, /sbin and /var go in ROOT.
	[2b564cd7b]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt.mo, plugins/sudoers/po/pt.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/fi.mo,
	po/fi.po, po/fr.mo, po/fr.po, po/hr.mo, po/hr.po, po/ja.mo,
	po/ja.po, po/ko.mo, po/ko.po, po/pl.mo, po/pl.po, po/pt.mo,
	po/pt.po, po/pt_BR.mo, po/pt_BR.po, po/uk.mo, po/uk.po, po/zh_CN.mo,
	po/zh_CN.po, po/zh_TW.mo, po/zh_TW.po:
	Updated translations from translationproject.org
	[ce497bf30]

2021-03-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c, logsrvd/logsrvd_conf.c:
	Remove unused tls parameter, we now use a per-address tls flag.
	[1c6080f13]

2021-03-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document double escaping of backslashes. Bug #961.
	[2759920b8]

	* NEWS, configure, configure.ac:
	No longer need to define _DARWIN_UNLIMITED_GETGROUPS on macOS. We
	now define _DARWIN_C_SOURCE which accomplishes the same thing.
	[06beb6f06]

	* plugins/sudoers/auth/pam.c:
	Fix a potential use-after-free in conversation function. The prompt
	passed in to sudo_pam_verify() will be freed later by
	check_user_interactive() so we need to reset the stashed value. From
	Pavel Heimlich. Bug #967.
	[08b0b626f]

	* plugins/sudoers/pwutil.c:
	No need to update cp after storing gr->gr_name, it is not used,
	Coverity CID 219314
	[f0761a981]

2021-03-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention GitHub issue #56.
	[a31bbbfbb]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[428515327]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/logsrvd.h:
	Log peer address in sudo_logsrvd JSON-format logs. The peer that
	connected to us might not be the same host where the log entry
	originated.
	[d45267878]

	* NEWS, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	lib/util/sudo_conf.c:
	Make "group_source=dynamic" the default on macOS. Recent versions of
	macOS do not reliably return all of a user's non-local groups via
	getgroups(2), even when _DARWIN_UNLIMITED_GETGROUPS is defined. Bug
	#946.
	[5ffa0ce05]

	* lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/sudoers/Makefile.in:
	For regess/fuzz set LC_ALL to C.UTF-8 if possible, falling back on
	C. Works around a crash in leak sanitizer when the locale is set to
	C and TLS support is enabled.
	[9bbf120bd]

2021-03-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Initialize the lbuf used by sudoers_trace_print() in init_lexer().
	Free the old buffer if there is one, otherwise it would never be
	freed.
	[ac8f23ef9]

	* lib/util/lbuf.c:
	In sudo_lbuf_destroy(), reset error, len and size.
	[7f27b0461]

	* NEWS:
	Mention the integer overflow check in store_timespec().
	[c8a8afba7]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	In find_path() stub only make a copy in outfile if returning FOUND.
	Fixed a recently-introduced memory leak in the fuzzer.
	[4a28b5d58]

2021-02-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/sudo_debug.c:
	Disable debug code for FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION It
	will not be used and just confuses the coverage stats.
	[79dbf9f17]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Expand stub getaddrinfo() to resolve "localhost".
	[0c944576e]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Improve fuzz_policy coverage and set defaults in setdefs not parse.
	Now exercises session open/close and set additional defaults to
	exercise more code paths.
	[cfcbc42ec]

	* plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c:
	Improve SUDOERS_NAME_MATCH support. Now supports digests and
	performs better directory matching.
	[f34a3072e]

	* plugins/sudoers/policy.c:
	Add MODE_CHECK to LIST_VALID_FLAGS, fixes "sudo -l command".
	[f86c11c4a]

2021-02-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, include/sudo_iolog.h, lib/iolog/Makefile.in,
	lib/iolog/iolog_clearerr.c, lib/iolog/iolog_close.c,
	lib/iolog/iolog_eof.c, lib/iolog/iolog_fileio.c,
	lib/iolog/iolog_gets.c, lib/iolog/iolog_mkdirs.c,
	lib/iolog/iolog_mkdtemp.c, lib/iolog/iolog_mkpath.c,
	lib/iolog/iolog_nextid.c, lib/iolog/iolog_open.c,
	lib/iolog/iolog_openat.c, lib/iolog/iolog_read.c,
	lib/iolog/iolog_seek.c, lib/iolog/iolog_swapids.c,
	lib/iolog/iolog_util.c, lib/iolog/iolog_write.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c, logsrvd/iolog_writer.c,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	Split iolog_fileio.c into multiple files.
	[851247e58]

	* plugins/sudoers/regress/sudoers/test27.ldif2sudo.ok:
	Update file that was missed in test27 changes.
	[fc9170d80]

	* MANIFEST, include/sudo_iolog.h, lib/iolog/Makefile.in,
	lib/iolog/iolog_conf.c, lib/iolog/iolog_fileio.c,
	lib/iolog/iolog_loginfo.c:
	Break out I/O log config handling into iolog_conf.c.
	[d51d4af7a]

	* lib/fuzzstub/Makefile.in, lib/iolog/Makefile.in,
	logsrvd/Makefile.in, plugins/sudoers/Makefile.in:
	regen Makefile.in
	[7144955b0]

	* examples/Makefile.in, lib/eventlog/Makefile.in,
	plugins/sudoers/Makefile.in:
	Add some missing files to the clean target
	[bdfc07f33]

	* plugins/sudoers/defaults.c:
	Correct the integer overflow check in store_timespec(). Fixes
	oss-fuzz issue #31463
	[d1cc1c59e]

	* plugins/sudoers/regress/sudoers/test27.in,
	plugins/sudoers/regress/sudoers/test27.json.ok,
	plugins/sudoers/regress/sudoers/test27.ldif.ok,
	plugins/sudoers/regress/sudoers/test27.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test27.out.ok,
	plugins/sudoers/regress/sudoers/test27.toke.ok:
	Add netgroup check to sudoers test27
	[963ea4151]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.out.ok:
	Sync with fuzz_sudoers changes.
	[ddb1350b7]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Fuzz with runuser and rungroup specified too.
	[963475a9b]

	* MANIFEST, plugins/sudoers/regress/sudoers/test27.in,
	plugins/sudoers/regress/sudoers/test27.json.ok,
	plugins/sudoers/regress/sudoers/test27.ldif.ok,
	plugins/sudoers/regress/sudoers/test27.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test27.out.ok,
	plugins/sudoers/regress/sudoers/test27.toke.ok:
	Add test to exercise RunasSpec without a RunasUser.
	[d160dac35]

	* MANIFEST, plugins/sudoers/regress/sudoers/test22.sudo.ok,
	plugins/sudoers/regress/sudoers/test23.sudo.ok,
	plugins/sudoers/regress/sudoers/test24.sudo.ok,
	plugins/sudoers/regress/sudoers/test26.sudo.ok:
	Remove unused regress files.
	[2e0ca52b5]

	* logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	Don't try to run getters if we failed to parse the config file.
	[b3ef60312]

2021-02-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Add a stub getaddrinfo(3) to avoid a DNS timeout in CIfuzz.
	[3fc5932be]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Fix runchroot, runcwd, tty_tickets. Add timestampowner.
	[8b545e561]

	* plugins/sudoers/policy.c:
	Only add command_info to garbage collector on successful return.
	Otherwise it will be freed on failure.
	[65b598602]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Add user millert to group sudo, which is often the exempt group.
	[3595fd550]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Add some defaults settings in sudo_file_parse(). We don't have a
	real policy file but we still want to exercise callbacks in
	sudoers.c.
	[d75db837b]

	* plugins/sudoers/sudoers.c:
	Do not free sudo_user.iolog_{file,path} in sudo_user_free(). They
	are not dynamically allocated.
	[48669edd3]

	* lib/iolog/regress/fuzz/fuzz_iolog_timing.c:
	Remove unnecessary warnings, we want to fail silently.
	[80e223b6c]

	* logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	No longer need to stub out eventlog config functions.
	[df1b43111]

	* MANIFEST, logsrvd/Makefile.in,
	logsrvd/regress/corpus/logsrvd_conf/logsrvd.conf.4,
	logsrvd/regress/corpus/logsrvd_conf/logsrvd.conf.5,
	logsrvd/regress/corpus/logsrvd_conf/logsrvd.conf.6,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	Call public getters in logsrvd.conf fuzzer and add to corpus. Now
	exercises the syslog config erorr path.
	[f5d7db56e]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Add more passes to policy fuzzer Now execises list, list other user
	and show_version.
	[65df01dd7]

	* plugins/sudoers/defaults.c, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Implement sudoers_policy_deregister_hooks() Register/deregister
	hooks in fuzz_policy and also call show_version().
	[b3b80fe6d]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Add sudoers debug register/deregister.
	[e6dc13229]

	* plugins/sudoers/defaults.c:
	Remove unnecessary break statement.
	[7bafd52fa]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.out.ok,
	plugins/sudoers/regress/sudoers/test14.in,
	plugins/sudoers/regress/sudoers/test14.json.ok,
	plugins/sudoers/regress/sudoers/test14.ldif.ok,
	plugins/sudoers/regress/sudoers/test14.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test14.out.ok,
	plugins/sudoers/regress/sudoers/test14.toke.ok:
	Include a sha384 digest in the test corpus.
	[0d04bbdbe]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Parse sudoers file in the C locale.
	[ea341e2d3]

	* MANIFEST, plugins/sudoers/regress/sudoers/test26.in,
	plugins/sudoers/regress/sudoers/test26.json.ok,
	plugins/sudoers/regress/sudoers/test26.ldif.ok,
	plugins/sudoers/regress/sudoers/test26.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test26.out.ok,
	plugins/sudoers/regress/sudoers/test26.sudo.ok,
	plugins/sudoers/regress/sudoers/test26.toke.ok:
	Add regress test with all current Defaults settings. Currently skips
	SELinux and Solaris privilege settings.
	[24e1774ce]

2021-02-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/env.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers_hooks.c:
	Move env hooks into sudoers_hooks.c.
	[e7b414ce4]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	No need to call check_defaults() and check_aliases() in quiet mode.
	[f82890e5d]

	* plugins/sudoers/gc.c:
	sudoers_gc_init() is not currently used
	[b4e86a911]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/fmtsudoers_cvt.c:
	Split fmtsudoers.c into the parts used by sudoers plugin and
	cvtsudoers. Only testsudoers and cvtsudoers use the full set of
	formatting functions.
	[38c381a0c]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Check defaults settings too.
	[39e80e47b]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_stubs.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Add fuzzer-specific stubs source file.
	[05767145b]

	* Makefile.in:
	Do not overwrite existing ChangeLog file if there is no hg/git dir.
	We don't want "make install" from a source tarball to nuke the
	ChangeLog.
	[792407fbe]

	* lib/iolog/Makefile.in, lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/sudoers/Makefile.in:
	Remove fuzzer targets in "make clean"
	[1ae4c1bf6]

	* .gitignore, .hgignore:
	Ignore fuzzer targets
	[39774e238]

	* lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c,
	lib/util/regress/fuzz/fuzz_sudo_conf.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Set program name in fuzzers so we get consisten warnings.
	[a3f38fac0]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Use real eventlog config fuctions instead of stubs.
	[9d27880af]

	* include/sudo_iolog.h, lib/iolog/iolog_fileio.c,
	lib/iolog/iolog_loginfo.c:
	Move iolog info log writing to iolog_loginfo.c
	[b93aad4e9]

	* MANIFEST, lib/iolog/Makefile.in, lib/iolog/iolog_loginfo.c,
	lib/iolog/iolog_timing.c,
	lib/iolog/regress/iolog_timing/check_iolog_timing.c:
	Split iolog_util.c into iolog_loginfo.c and iolog_timing.c. Also
	rename check_iolog_util -> check_iolog_timing.
	[a56f7daee]

	* MANIFEST, lib/iolog/Makefile.in, lib/iolog/iolog_legacy.c,
	lib/iolog/iolog_util.c:
	Move legacy I/O log info file parsing to iolog_legacy.c
	[2a657e2a1]

	* MANIFEST, include/sudo_eventlog.h, lib/eventlog/Makefile.in,
	lib/eventlog/eventlog.c, lib/eventlog/eventlog_conf.c:
	Move eventlog config code into eventlog_conf.c
	[412858272]

	* MANIFEST, lib/eventlog/Makefile.in, lib/eventlog/eventlog.c,
	lib/eventlog/eventlog_free.c:
	Move eventlog_free() into its own file.
	[f399c449a]

	* logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	Stub out eventlog and iolog configuration setters.
	[dba37768b]

	* MANIFEST, plugins/sudoers/defaults.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.out.ok:
	Update Defaults settings after parsing sudoers. Also stub out
	dump_defaults when fuzzing as it is not used.
	[cbd11c44d]

	* plugins/sudoers/Makefile.in, plugins/sudoers/b64_decode.c,
	plugins/sudoers/b64_encode.c:
	Split base64 encode/decode functions into separate source files.
	They are independent functions.
	[33551acd1]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	fuzz_printf and fuzz_conversation can be stubs.
	[f35d9c8be]

2021-02-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Exercise tilde expansion if used in runcwd or runchroot.
	[9f5aed70a]

	* plugins/sudoers/check_aliases.c:
	Move alias checking code out of visudo.c and into check_aliases.c.
	[c70295787]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Check aliases in fuzz_sudoers if the policy parsed correctly.
	[2a0ba4008]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/parse.h,
	plugins/sudoers/visudo.c:
	Move alias checking code out of visudo.c and into check_aliases.c.
	[5a85543c1]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	We don't need to link fuzz_sudoers with file.c.
	[c71a39736]

	* lib/iolog/regress/fuzz/fuzz_iolog_json.dict,
	lib/util/regress/fuzz/fuzz_sudo_conf.dict,
	plugins/sudoers/regress/fuzz/fuzz_policy.dict,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.dict,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.dict:
	Strings in dictionary files need to be quoted.
	[03e610dab]

	* MANIFEST, lib/iolog/Makefile.in,
	lib/iolog/regress/fuzz/fuzz_iolog_json.dict, lib/util/Makefile.in,
	lib/util/regress/fuzz/fuzz_sudo_conf.dict,
	plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_policy.dict,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.dict,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.dict:
	Add dictionary files for fuzzers where possible.
	[081e219e2]

2021-02-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Also free safe_cmnd so it doesn't leak.
	[e0761b9e3]

	* plugins/sudoers/stubs.c, plugins/sudoers/testsudoers.c:
	Return NOT_FOUND from the set_cmnd_path() stub since we don't set
	user_cmnd. The purpose of set_cmnd_path() is to reset user_cmnd
	based on a new runchroot. For the stub version we don't modify
	user_cmnd and so must not return a status of FOUND. Fixes oss-fuzz
	issue #31250 which only affected the fuzzer and not sudo.
	[322e0b369]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.out.ok:
	Fix fuzz_sudoers output matching.
	[5fc6b8c17]

	* lib/fuzzstub/fuzzstub.c:
	Print "running" and "executed" lines to stderr like libfuzzer does.
	[4adc11e33]

	* plugins/sudoers/pwutil_impl.c:
	Support passing sudo_make_gidlist_item() an array of gids. The gids
	are formatted as strings, not gid_t.
	[39db44b04]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.out.ok:
	Prime user/group cached and set the interface list. Also match
	parsed policy against multiple users.
	[f92080be6]

	* plugins/sudoers/pwutil.c, plugins/sudoers/sudoers.h:
	Add sudo_mkgrent(), to be used to prime the group cache in
	tests/fuzzers.
	[7463a1989]

2021-02-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Perform matching in fuzz_sudoers for inputs that parse correctly.
	The fuzzer now exercised the normal match code as well as the
	pseudo-command (list, validate, etc) match code. Privileges are also
	listed for well-formed sudoers file.
	[df42c0c1d]

	* plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c,
	plugins/sudoers/parse.h:
	Add back SUDOERS_NAME_MATCH and enable it when fuzzing. This avoids
	the test environment from influencing sudoers matching.
	[921097cb6]

	* plugins/sudoers/match_command.c:
	Add missing globfree(3) in command_matches_glob() when matching a
	directory.
	[ecbe95589]

2021-02-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/sudo_dso.c:
	Add support on AIX for loading plugins that are .a (not .so) files.
	It is possible to specify the member name in parens after the path,
	e.g. sudoers.a(shr.o) for 32-bit or sudoers.a(shr_64.o) for 64-bit.
	If no member is specified in the path and dlopen() fails with
	ENOEXEC, try again with an explicit member, either shr.o or
	shr_64.o.
	[387169ac6]

	* Makefile.in, doc/Makefile.in, examples/Makefile.in,
	include/Makefile.in, lib/eventlog/Makefile.in,
	lib/fuzzstub/Makefile.in, lib/iolog/Makefile.in,
	lib/logsrv/Makefile.in, lib/util/Makefile.in, lib/zlib/Makefile.in,
	logsrvd/Makefile.in, plugins/audit_json/Makefile.in,
	plugins/group_file/Makefile.in, plugins/python/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_approval/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Add clean rules to .PHONY target.
	[14c71eaa8]

2021-02-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in, doc/Makefile.in, examples/Makefile.in,
	include/Makefile.in, lib/eventlog/Makefile.in,
	lib/fuzzstub/Makefile.in, lib/iolog/Makefile.in,
	lib/logsrv/Makefile.in, lib/util/Makefile.in, lib/zlib/Makefile.in,
	logsrvd/Makefile.in, plugins/audit_json/Makefile.in,
	plugins/group_file/Makefile.in, plugins/python/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_approval/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Add install-fuzz Makefile target to install the fuzzers and seed
	corpus. The FUZZ_DESTDIR make variable needs to be set in the
	environment or on the command line.
	[9f1e016cd]

	* plugins/sudoers/Makefile.in:
	Only display fuzz_policy output if the fuzzer exits with an error.
	[5ea2acc4c]

	* plugins/sudoers/regress/corpus/policy/policy.1,
	plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Call list, validate and invalidate entry points too. We need a
	separate open/close for each one.
	[d02cc9c3a]

	* INSTALL, configure, configure.ac:
	Add --disable-ssp configure option. This allows for disabling
	-fstack-protector without turning off the other hardening options.
	[90534b5b2]

	* lib/util/regress/getdelim/getdelim_test.c:
	Test the error case by closing the underlying fd. Note that we don't
	use ferror() here since our getdelim() has no way to set the error
	flag if there is a memory allocation error.
	[a7e2dd15e]

	* lib/util/regress/getdelim/getdelim_test.c:
	Test the case where getdelim() must reallocate the buffer.
	Reproduces Bug #960.
	[db70a70d0]

	* lib/eventlog/eventlog.c:
	When logging JSON to syslog, wrap the contents in a "sudo" object.
	This makes it easier for log parsers to identify what is a sudo log
	entry.
	[e5c1778e7]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Restore the check for sudoers_policy.close == NULL. The fuzzers run
	as part of "make check" too in which case NO_LEAKS won't be defined
	and the close function will be set to NULL.
	[f76c59fc8]

	* lib/iolog/iolog_json.c:
	Use %td when printing the difference of two pointers.
	[e047e9930]

	* plugins/sudoers/parse.c:
	Don't print a NULL as a string if role/type/privs/limitprivs is not
	set. We can't rely on printf("%s", NULL) not crashing.
	[5813358b2]

	* plugins/sudoers/sudoers.c:
	Fix compilation error on Solaris introduced with sudo_user_free().
	[aaf3d5643]

2021-02-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Bug #960.
	[ac45fba89]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Distinguish between EOF and error using feof(3), not ferror(3). Our
	getdelim(3) emulation won't set the error flag if the error is due
	to an allocation failure. This explains the premature EOF without
	error seen in Bug #960.
	[9937d0803]

	* lib/util/getdelim.c:
	Reset end pointer when reallocing the line buffer in getdelim().
	Fixes excessive memory allocations for long lines. Bug #960.
	[75004b705]

	* lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	plugins/sudoers/Makefile.in:
	Remove duplicated MALLOC_OPTIONS and MALLOC_CONF env variables.
	[abdef93f7]

	* lib/iolog/iolog_json.c:
	On parse error, display line and column instead of the offending
	line.
	[dc45ac5bc]

	* logsrvd/Makefile.in, plugins/sudoers/Makefile.in:
	regen
	[79a18cb41]

	* NEWS, configure, configure.ac:
	Sudo 1.9.6
	[b736804cf]

2021-02-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/iolog_json.c, lib/iolog/iolog_util.c:
	Pass I/O log memory allocation errors up to the caller.
	[4a279d576]

	* INSTALL, config.h.in, configure, configure.ac, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, pathnames.h.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/timestamp.c:
	Add admin_flag sudoers option and make --enable-admin-flag take a
	path. It is now possible to disable the Ubuntu admin flag in sudoers
	or change its location. GitHub issue #56
	[a5504148a]

	* plugins/sudoers/exptilde.c,
	plugins/sudoers/regress/exptilde/check_exptilde.c:
	Fix tilde expansion of paths with no user like ~/foo. The '/'
	separator was missing in the resulting path.
	[5ec59cddc]

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in, lib/util/sudo_conf.c,
	plugins/sudoers/policy.c:
	Limit max_groups in sudo.conf to 1024. The max_groups setting should
	no longer be needed anyway.
	[a18b2a9dd]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c:
	In sudoers_policy_close() call sudoers_cleanup() instead of
	sudo_user_free(). If we didn't call sudoers_policy_main() due to an
	early error there may be more things to clean up.
	[df91e15b8]

	* plugins/sudoers/policy.c:
	Check for invalid flag combinations from front-end for all cases.
	The checks are now performed in the check_policy, list, validate and
	invalidate functions instead of as part of the open function. We
	can't perform the checks in open because we don't yet know what
	operation is going to be performed.
	[ecdf732ad]

	* plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c:
	Always dynamically allocate user_cmnd, it is freed in
	sudo_user_free(). Instead of setting user_cmnd in the policy
	functions, always set argv. Calling sudoers_policy_main() with argc
	of 0 is no longer allowed.
	[ae3a098d2]

	* plugins/sudoers/policy.c:
	No need for sudoers_cleanup() in sudoers_policy_invalidate(). The
	sudoers close() function is now called even for "sudo -k". Also no
	need to set user_cmnd, it is not used in this code path.
	[c09169e81]

2021-02-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, logsrvd/Makefile.in, logsrvd/logsrvd_conf.c,
	logsrvd/regress/corpus/logsrvd_conf/logsrvd.conf.1,
	logsrvd/regress/corpus/logsrvd_conf/logsrvd.conf.2,
	logsrvd/regress/corpus/logsrvd_conf/logsrvd.conf.3,
	logsrvd/regress/fuzz/fuzz_logsrvd_conf.c:
	Add simple fuzzer for sudo_logsrvd.conf parser.
	[d23508334]

	* MANIFEST, lib/util/Makefile.in,
	lib/util/regress/corpus/sudo_conf/sudo.conf.1,
	lib/util/regress/corpus/sudo_conf/sudo.conf.2,
	lib/util/regress/corpus/sudo_conf/sudo.conf.3,
	lib/util/regress/fuzz/fuzz_sudo_conf.c:
	Add simple fuzzer for sudo.conf parser.
	[25f50e2f0]

	* lib/iolog/regress/fuzz/fuzz_iolog_timing.c:
	Fix unlinking of timing temp file.
	[d81d7e0cf]

	* lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	plugins/python/Makefile.in, plugins/sudoers/Makefile.in:
	Set MALLOC_OPTIONS and MALLOC_CONF for all regress targets.
	[de2a47f27]

	* plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Free struct sudo_user in sudoers_policy_close() and
	sudoers_cleanup(). Also, do not NULL out the close function if
	NO_LEAKS is defined.
	[52e3fcc79]

	* MANIFEST, lib/iolog/Makefile.in,
	lib/iolog/regress/corpus/log_legacy/id.log,
	lib/iolog/regress/corpus/log_legacy/ls.log,
	lib/iolog/regress/corpus/log_legacy/mailq.log,
	lib/iolog/regress/corpus/log_legacy/make.log,
	lib/iolog/regress/corpus/log_legacy/pkg_add.log,
	lib/iolog/regress/corpus/log_legacy/pkg_delete.log,
	lib/iolog/regress/corpus/log_legacy/printenv.log,
	plugins/sudoers/Makefile.in:
	For "make fuzz" only fuzz the seed corpus. This way we avoid files
	generated by the fuzzer itself.
	[ea7a70e85]

2021-02-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/env.c, plugins/sudoers/gc.c,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Fix sudoers garbage collection and run it in policy fuzzer.
	[7f3c670a1]

	* .github/workflows/main.yml:
	Rename master -> main
	[5ade1c253]

	* plugins/sudoers/policy.c:
	Do not include errno string for invalid params from front-end.
	[7f0b26923]

	* plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/regress/fuzz/fuzz_policy.c:
	Always dynamically allocate user_role, user_type, user_privs,
	user_limitprivs
	[561740cd5]

	* plugins/sudoers/policy.c:
	Remove dead code, front-end does not set runas_privs or
	runas_limitprivs
	[5c0454495]

	* plugins/sudoers/iolog.c:
	Plug memory leak if there are duplicate user_info or command_info
	entries.
	[d1969b4f0]

2021-02-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .github/workflows/main.yml:
	Add CIFuzz workflow to run fuzzers on push or PR.
	https://google.github.io/oss-fuzz/getting-started/continuous-integra
	tion/
	[96d1dc8ab]

	* plugins/sudoers/check.h,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/timestamp.c:
	Move create_admin_success_flag() to timestamp.c.
	[776c57a81]

	* configure, configure.ac:
	Error out if fuzzer/sanitizer enabled but not supported by the
	compiler.
	[440febff8]

	* plugins/sudoers/regress/fuzz/fuzz_policy.c:
	The push() function was not updating the size after reallocating.
	[651a225a4]

	* plugins/sudoers/pwutil_impl.c, src/sudo.c:
	If sudo_getgrouplist2() returns -1, clamp ngroups based on
	max_groups. The ngroups parameter is an out parameter that is filled
	in with the actual number of groups, which may be less than the
	static number allocated when max_groups is set in sudo.conf. Fixes a
	potential out of bounds read found by LLVM libFuzzer.
	[41eae9120]

2021-02-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c:
	Reset sudoers path, owner and mode before parsing plugin arguments.
	This is only needed when calling sudoers_policy_deserialize_info()
	more than once, which is true for the policy fuzzer.
	[e89a8133a]

	* plugins/sudoers/sudoers.c:
	Cleanup sudoers sources on denial and error too.
	[197d6600f]

	* plugins/sudoers/pwutil.c:
	Fix sudo_getgrgid reference count bug when gid doesn't exist. This
	one was missed when the other user/group lookup functions were
	fixed.
	[520db741b]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/corpus/policy/policy.1,
	plugins/sudoers/regress/corpus/policy/policy.2,
	plugins/sudoers/regress/corpus/policy/policy.3,
	plugins/sudoers/regress/corpus/policy/policy.4,
	plugins/sudoers/regress/corpus/policy/policy.5,
	plugins/sudoers/regress/fuzz/fuzz_policy.c,
	plugins/sudoers/sudoers.c:
	Fuzz sudoers policy module API. Includes a test case to reproduce
	CVE-2021-3156.
	[df2931588]

	* plugins/sudoers/policy.c:
	Plug memory leak if there are duplicate user_info entries.
	[ed7962769]

	* lib/iolog/Makefile.in, plugins/sudoers/Makefile.in:
	Make fuzz targets depend on fuzzer stub library. We really want a
	dependency on $(LIB_FUZZING_ENGINE) but that could be a flag like
	"-fsanitize=fuzzer" instead of a path.
	[eedc72d7b]

	* lib/util/Makefile.in:
	regen
	[a9f204aef]

	* MANIFEST, plugins/sudoers/Makefile.in:
	Move audit.c from libparsesudoers to the sudoers module itself. Now
	that audit.c contains the audit module it doesn't belong in
	libparsesudoers.
	[1f97ef92b]

	* configure, configure.ac:
	Do not pass AX_APPEND_FLAG more than a single flag. GitHub issue #92
	[942b11149]

2021-02-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	logsrvd/Makefile.in, plugins/sudoers/Makefile.in:
	Fix up some .la file library dependencies. libsudo_iolog.la already
	depends on libsudo_util.la and libsudo_eventlog.la so we don't need
	to list those explicitly when libsudo_iolog.la is listed.
	[53e3dca7a]

	* lib/eventlog/eventlog.c, lib/util/Makefile.in,
	lib/util/progname.c, lib/util/regress/progname/progname_test.c,
	lib/util/sudo_conf.c, lib/util/util.exp.in, plugins/sudoers/audit.c,
	plugins/sudoers/find_path.c, plugins/sudoers/iolog.c,
	plugins/sudoers/match_command.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/sudo_edit.c, src/sudo_noexec.c:
	Use sudo_basename() instead of doing the equivalent manually.
	[0663ffbc3]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/basename.c, lib/util/util.exp.in:
	Add a GNU-compatible version of basename(3). Unlike POSIX
	basename(3), the GNU variant does not modify its argument. Note that
	basename of a path ending in "/" returns an empty string.
	[41fa461fe]

2021-02-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/iolog_fileio.c:
	feof(3) returns non-zero at EOF, not necessarily 1. On Illumos at
	least it returns a value other than 1.
	[bbfd430cf]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Portable workaround for getdelim(3) implementations modify buf on
	EOF. We should assume that the contents of buf are undefined when
	getdelim(3) returns -1. We now peek ahead one char and skip the
	getdelim(3) call if EOF is detected. This will preserve the original
	value of the last line.
	[cbf73e19b]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Some getdelim(3) implementations write a NUL to the buffer on EOF.
	AIX and Illumos appear to have this behavior. We now preserve the
	first character of the buffer on EOF to work around this. Fixes
	reporting of syntax errors on the last line of a file.
	[cf1801146]

	* plugins/sudoers/Makefile.in:
	Fuzz the example sudoers file, not the default one. The default
	sudoers uses @includedir which can result in different output,
	depending on the permissions of /etc/sudoers.d.
	[1412695a4]

	* configure, configure.ac:
	illumos has a broken fmemopen(3), don't use it.
	[a527c583d]

2021-02-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Add configure check for SSIZE_MAX
	[e392646ed]

	* lib/iolog/iolog_json.c:
	Suppress PVS Studio false positives.
	[91351d57f]

	* src/sesh.c:
	Silence a clang analyzer false positive.
	[63d043fae]

	* plugins/sudoers/toke_util.c:
	Silence a clang analyzer false positive.
	[3d55bca8a]

	* lib/fuzzstub/fuzzstub.c:
	Fix CID 217123, size check always false on 64-bit systems.
	[722759d0b]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Make open_sudoers() always return NULL like fuzz_sudoers.c
	[aae168c48]

	* plugins/sudoers/regress/sudoers/test4.toke.ok,
	plugins/sudoers/regress/sudoers/test5.toke.ok,
	plugins/sudoers/regress/sudoers/test7.toke.ok,
	plugins/sudoers/regress/sudoers/test8.toke.ok:
	Update *.toke.ok now that lexer doesn't call sudoerserror() itself.
	[19d8d4a54]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/toke.c,
	plugins/sudoers/toke.h, plugins/sudoers/toke.l:
	The lexer now sets an error string before returning ERROR. The
	parser will use that when reporting on an ERROR state. This prevents
	the lexer from reporting errors about tokens that are not actually
	consumed by the parser and we don't have to worry about both the
	lexer and the parser reporting errors. It also means we only get one
	error per sudoers line.
	[04de04f54]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Go back to storing the last error file/line in sudoerserrorf(). This
	is still the best way to avoid displaying more than one error per
	line.
	[9325a342b]

	* configure, configure.ac:
	Add -fsanitize=fuzzer-no-link to ASAN_LDFLAGS too, not just
	ASAN_CFLAGS.
	[a046e3bbb]

	* MANIFEST, Makefile.in, doc/Makefile.in, examples/Makefile.in,
	include/Makefile.in, lib/eventlog/Makefile.in,
	lib/fuzzstub/Makefile.in, lib/iolog/Makefile.in,
	lib/logsrv/Makefile.in, lib/util/Makefile.in, lib/zlib/Makefile.in,
	logsrvd/Makefile.in, plugins/audit_json/Makefile.in,
	plugins/group_file/Makefile.in, plugins/python/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_approval/Makefile.in,
	plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.out.ok,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Add fuzz Makefile target and run fuzzer corpus in make check.
	[63a3f6254]

2021-02-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, Makefile.in, configure, configure.ac,
	lib/fuzzstub/Makefile.in, lib/fuzzstub/fuzzstub.c,
	lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Add stub library that just feeds files to the fuzzing target. This
	will allow the fuzzers to be run as part of "make check".
	[30d9497eb]

	* scripts/mkpkg:
	Append to CFLAGS and LDFLAGS instead of overriding them when adding
	-m64.
	[db4ee0a90]

	* config.h.in, configure, configure.ac,
	lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Fall back to a temp file if fmemopen() is not available().
	[a72d743ec]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Add missing return statement when NO_LEAKS is not defined.
	[c19cb388b]

	* lib/eventlog/Makefile.in:
	Remove remnants of liblogsrv.
	[c140b5942]

	* INSTALL, configure, configure.ac, lib/iolog/Makefile.in,
	plugins/sudoers/Makefile.in:
	Add --enable-fuzzer-linker and --enable-fuzzer-engine options. These
	will allow the fuzzers to be built as part of oss-fuzz.
	[55df5efdc]

2021-02-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .gitignore, .hgignore:
	Sync ignore files.
	[38f1e55cd]

	* plugins/sudoers/Makefile.in:
	Fix linking of sudoers fuzzers with static libsudo_util.
	[a3dae6f2c]

	* INSTALL, configure, configure.ac, lib/iolog/Makefile.in,
	plugins/sudoers/Makefile.in:
	Add --enable-fuzzer option to use when building fuzzers
	[6216fb3cc]

	* INSTALL, configure, configure.ac:
	Replace --enable-asan with --enable-sanitizer It is not possible to
	set the sanitizer flags at configure time.
	[7a2a211df]

	* lib/iolog/Makefile.in, lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c,
	lib/iolog/regress/fuzz/fuzz_iolog_timing.c,
	plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Build (but don't run) fuzzers as part of "make check". Uses a stub
	to make it possible to link w/o libfuzzer. The goal is to ensure the
	fuzzers are always buildable and avoid bit rot.
	[4480e2697]

	* lib/iolog/Makefile.in, plugins/sudoers/Makefile.in:
	Add libsudo_eventlog.la as a dependency of libsudo_iolog.la No
	longer need to link against libsudo_eventlog.la in sudoers.
	[ecaa9cd08]

2021-02-06  Anton Bershanskiy  <45960703+bershanskiy@users.noreply.github.com>

	* src/copy_file.c:
	Fix comment typo in src/copy_file.c
	[fecb68617]

2021-02-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, lib/iolog/regress/corpus/log_json/id.json,
	lib/iolog/regress/corpus/log_json/ls.json,
	lib/iolog/regress/corpus/log_json/mailq.json,
	lib/iolog/regress/corpus/log_json/make.json,
	lib/iolog/regress/corpus/log_json/pkg_add.json,
	lib/iolog/regress/corpus/log_json/pkg_delete.json,
	lib/iolog/regress/corpus/log_json/printenv.json,
	lib/iolog/regress/corpus/log_legacy/id,
	lib/iolog/regress/corpus/log_legacy/ls,
	lib/iolog/regress/corpus/log_legacy/mailq,
	lib/iolog/regress/corpus/log_legacy/make,
	lib/iolog/regress/corpus/log_legacy/pkg_add,
	lib/iolog/regress/corpus/log_legacy/pkg_delete,
	lib/iolog/regress/corpus/log_legacy/printenv,
	lib/iolog/regress/corpus/timing/timing.1,
	lib/iolog/regress/corpus/timing/timing.2,
	lib/iolog/regress/corpus/timing/timing.3,
	lib/iolog/regress/corpus/timing/timing.4:
	Add more test files for fuzzers.
	[1c02c14c3]

2021-02-05  Daniel Milnes  <thebeanogamer@gmail.com>

	* doc/sudo.mdoc.in:
	Fix the typo in the mdoc
	[d51c49789]

	* doc/sudo.man.in:
	Fix a tiny typo in the Sudo manpage
	[2b2e5d0c4]

2021-02-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, lib/iolog/regress/fuzz/fuzz_iolog_timing.c:
	fuzzer for I/O log timing files
	[5c2a21350]

	* lib/iolog/iolog_json.c:
	In JSON, name/value pairs must be separated by a comma. Previously
	we didn't require the comma to be there.
	[47f08e986]

	* lib/iolog/iolog_json.c:
	Detect integer overflow when converting JSON_ARRAY to string vector.
	Extremely unlikely to happen but better safe than sorry.
	[92cf172ed]

2021-02-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Only strip double quotes from an include path if len >= 2. Found
	locally using libfuzzer/oss-fuzz.
	[665f8d2e3]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Don't allow the sudoers fuzzer to open include files. If we allow
	the fuzzer to choose include paths it will include random files in
	the file system. This leads to bug reports that cannot be
	reproduced.
	[e675f4c07]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	If getdelim() returns a string with embedded NULs, truncate on first
	one. This should avoid some issues with the fuzzer.
	[f5fc5d641]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Reallocate the buffer correctly when appending a newline. Fixes a
	potential buffer overflow introduced in the last commit.
	[10e37223b]

	* plugins/sudoers/alias.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y:
	Don't free the alias name in alias_add() if the alias already
	exists. We need to be able to display it using alias_error(). Only
	free what we actually allocated in alias_add() on error and let the
	caller handle cleanup. Note that we cannot completely fill in the
	alias until it is inserted. Otherwise, we will have modified the
	file and members parameters even if there was an error. As a result,
	we have to remove those from the leak list after alias_add(), not
	before.
	[b4cabdb39]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix NUL termination when parsing a sudoers file with no ending
	newline. oss-fuzz issue #30252
	[884b2fb86]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	sudoersrestart() does not reset state to INITIAL, do it in
	init_lexer(). Fixes spurious errors from fuzz_sudoers, which calls
	the parser multiple times.
	[077c9b0c7]

	* plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c:
	Push lexer leak tracking down into check_fill.c. This lets us track
	things correctly when buffers are realloc()d. Rewrote fill() and
	append() to be more readable.
	[63a63680b]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/visudo.c:
	Use sudoersrestart() in fuzz_sudoers.c Since we run the parser
	multiple times we need to restart it each time.
	[3237a18ee]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Parser needs user_shost for the %h escape in @include expansion.
	Fixes oss-fuzz issue #30238
	[e66b132d7]

	* INSTALL:
	The --disable-leaks option is not recommended for production use.
	[bde441186]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Remove options from the leak list before freeing them. Should fix
	oss-fuzz issue #30236
	[bd4e8bc69]

	* MANIFEST, include/sudo_iolog.h, lib/iolog/iolog_util.c,
	lib/iolog/regress/fuzz/fuzz_iolog_legacy.c:
	Add fuzzer for legacy I/O log info file.
	[d2901f412]

	* doc/Makefile.in, plugins/sudoers/Makefile.in:
	Fix uninstall target; there were missing line continuation chars.
	GitHub issue #87
	[29f5f3c53]

2021-02-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/parse_ldif.c:
	Don't close fp in sudoers_parse_ldif() The caller should be the one
	to handle this.
	[aaa2e8dde]

	* .gitignore, .hgignore:
	Update ignore files.
	[68939adee]

	* plugins/sudoers/alias.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y:
	Got back to calling alias_free() on alias_add() failure. We now need
	to remove the name and members from the leak list *before* calling
	alias_add() since alias_add() will consume them for both success and
	failure.
	[bdb02b1ef]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	close sudoersin, not fp, and reset it to be safe
	[8f2254594]

	* lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Add missing fclose(3) of fmemopen(3) stream; it does not modify the
	data.
	[20b3904f4]

	* lib/iolog/iolog_json.c:
	Check for unexpected value after checking the name, not before.
	[2fd4a2ad7]

	* lib/iolog/iolog_json.c:
	Fix potential leak of evlog->runuser. Also warn if we find an
	unexpected JSON type.
	[71997da16]

	* lib/util/progname.c:
	Allow getprogname() to succeed as long as __progname is present.
	Also simplify the progname code so we only need a single
	implementation.
	[eec4f4236]

2021-02-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Parse into a local parse_tree and add missing cleanup. Since
	parsed_policy is for the sudoers parser we should declare our own.
	[0d34fa428]

	* plugins/sudoers/regress/fuzz/fuzz_sudoers.c:
	Call init_parser() after parsing to clean up completely.
	[d3735b98e]

	* MANIFEST, plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/regress/sudoers/test25.in,
	plugins/sudoers/regress/sudoers/test25.json.ok,
	plugins/sudoers/regress/sudoers/test25.ldif.ok,
	plugins/sudoers/regress/sudoers/test25.out.ok,
	plugins/sudoers/regress/sudoers/test25.toke.ok,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c:
	Plug a few more parser leaks.
	[f30670a42]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Make parser_leak_remove(type, NULL) a no-op.
	[f59a8f303]

	* MANIFEST, lib/iolog/regress/fuzz/fuzz_iolog_json.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers.c,
	plugins/sudoers/regress/fuzz/fuzz_sudoers_ldif.c:
	Add initial fuzzers to be used by oss-fuzz. These are not yet hooked
	up to the sudo build.
	[1e3cecc60]

2021-01-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/parse.h, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_ldap.h:
	Move new_member_all to ldap_util.c, it is only used by ldap/sssd.
	[568931035]

2021-02-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gc.c, plugins/sudoers/sudoers.h:
	Garbage collect unused gc_remove() function.
	[a74e8502c]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/testsudoers/test11.sh,
	plugins/sudoers/regress/testsudoers/test12.sh,
	plugins/sudoers/regress/testsudoers/test13.sh,
	plugins/sudoers/regress/testsudoers/test4.sh,
	plugins/sudoers/regress/testsudoers/test5.sh:
	The parser should be leak free, re-enable leak detection in ASAN.
	[66cd61a9b]

	* plugins/sudoers/alias.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c:
	Add garbage collection to the sudoers parser to clean up on error.
	This makes it possible to avoid memory leaks when there is a parse
	error.
	[9ed14870c]

2021-01-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/iolog_json.c:
	Fix crashes trying to parse invalid JSON. Found locally using
	libfuzzer/oss-fuzz.
	[4cd6350ca]

	* lib/iolog/iolog_json.c:
	Plug memory leak if a key is listed more than once in the log.json
	file.
	[de82d08e7]

	* lib/iolog/regress/iolog_json/check_iolog_json.c:
	Fix crash when file does not exist.
	[5dc297d30]

	* plugins/sudoers/gentime.c:
	Strict tz offset parsing. Fixes an out of bounds read found locally
	using libfuzzer/oss-fuzz.
	[439660c7f]

	* plugins/sudoers/ldap_util.c:
	Don't leak memory for duplicate command options. The last option
	wins but we also now warn about the duplicate. Found locally using
	libfuzzer/oss-fuzz.
	[9f81e8a10]

	* plugins/sudoers/ldap_util.c:
	Copy command options when converting a sudoRole with multiple
	sudoCommands. A sudoRole with multiple sudoCommands is converted to
	a privilege with multiple cmndspecs. However, we were not copying
	some of the command options to subsequent cmndspecs in the list.
	[4eb591c6f]

	* plugins/sudoers/parse_ldif.c:
	Fix memory leak if the last line is folded. Fixes issue 30080 by
	ClusterFuzz-External
	[75f76eba8]

	* INSTALL, configure, configure.ac:
	Add --disable-leaks configure option. This enables the extra freeing
	of memory before exit also enabled by --enable-asan. To be used by
	oss-fuzz.
	[bd10bb5cf]

	* plugins/sudoers/gentime.c:
	Stricter parsing of generalized time. Fixes potential out of bounds
	read found by libfuzzer/oss-fuzz.
	[995601c62]

2021-01-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse_ldif.c:
	Don't bother calling ldif_to_sudoers() if there are no roles to
	convert.
	[419c89524]

	* lib/iolog/iolog_json.c:
	In json_stack_push() treat stack exhaustion like memory allocation
	failure. Return NULL instead of treating as a fatal error. This
	should make life a little easier for oss-fuzz.
	[8781560e1]

	* plugins/sudoers/sudoers.c:
	Update comment about return values for resolve_host().
	[6c8242c35]

	* plugins/sudoers/logging.c, plugins/sudoers/policy.c:
	Fix NO_ROOT_MAILER, broken by the eventlog refactor in sudo 1.9.4.
	init_eventlog_config() is called immediately after initializing the
	Defaults settings, which is before struct sudo_user is setup. This
	adds a call to eventlog_set_mailuid() if NO_ROOT_MAILER is defined
	after the invoking user is determined. Reported by Roman Fiedler.
	[e5ad88488]

2021-01-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_5p2 for changeset 83685ffbc4df
	[91a99c2a8]

	* :
	Merge sudo 1.9.5p2 from tip
	[0ce657ca6]

	* NEWS, configure, configure.ac:
	Sudo 1.9.5p2
	[98d5cc2a8]

	* src/parse_args.c:
	Don't assume that argv is allocated as a single flat buffer. While
	this is how the kernel behaves it is not a portable assumption. The
	assumption may also be violated if getopt_long(3) permutes
	arguments. Found by Qualys.
	[c0eecf85c]

	* plugins/sudoers/timestamp.c:
	Fix the memset offset when converting a v1 timestamp to TS_LOCKEXCL.
	We want to zero the struct starting at flags, not type (which was
	just set). Found by Qualys.
	[0754533d2]

	* plugins/sudoers/sudoers.c:
	Fix potential buffer overflow when unescaping backslashes in
	user_args. Also, do not try to unescaping backslashes unless in run
	mode *and* we are running the command via a shell. Found by Qualys,
	this fixes CVE-2021-3156.
	[1f8638577]

	* plugins/sudoers/policy.c:
	Add sudoedit flag checks in plugin that are consistent with
	front-end. Don't assume the sudo front-end is sending reasonable
	mode flags. These checks need to be kept consistent between the sudo
	front-end and the sudoers plugin.
	[c4d384082]

	* src/parse_args.c:
	Reset valid_flags to MODE_NONINTERACTIVE for sudoedit. This is
	consistent with how the -e option is handled. Also reject -H and -P
	flags for sudoedit as was done in sudo 1.7. Found by Qualys, this is
	part of the fix for CVE-2021-3156.
	[b301b46b7]

2021-01-18  Pavel Březina  <pbrezina@redhat.com>

	* plugins/sudoers/auth/pam.c:
	pam: pass KRB5CCNAME to pam_authenticate environment if available

	If a PAM module wants to authenticate user using GSSAPI, the
	authentication is broken if non-default ccache name is used in
	KRB5CCNAME environment variable.

	One way to mitigate this would be to add this to env_keep, but this
	also makes the variable available in the executed command which may
	not be always desirable.

	This patch sets KRB5CCNAME for pam_authenticate only, if it is
	available and not yet set.
	[3b7977a42]

2021-01-22  Fabrice Fontaine  <fontaine.fabrice@gmail.com>

	* lib/eventlog/Makefile.in:
	lib/eventlog/Makefile.in: fix static build without closefrom

	Since version 1.9.4 and
	https://github.com/sudo-project/sudo/commit/bd1ca79cca827a92e904f022
	e49df121931d4ff5, when closefrom is not available,
	libsudo_eventlog.a depends on libsudo_util.a. So reflect this
	dependency in the libtool file to avoid the following static build
	failure of logsrvd:

	/bin/bash ../libtool --tag=disable-static --mode=link
	/home/buildroot/autobuild/instance-1/output-1/host/bin/powerpc-linux
	-gcc -o sudo_logsrvd logsrv_util.o iolog_writer.o logsrvd.o
	logsrvd_conf.o -static -Wl,--enable-new-dtags -Wl,-z,relro
	../lib/iolog/libsudo_iolog.la ../lib/eventlog/libsudo_eventlog.la
	../lib/logsrv/liblogsrv.la /bin/bash ../libtool --tag=disable-static
	--mode=link
	/home/buildroot/autobuild/instance-1/output-1/host/bin/powerpc-linux
	-gcc -o sudo_sendlog logsrv_util.o sendlog.o -static
	-Wl,--enable-new-dtags -Wl,-z,relro ../lib/iolog/libsudo_iolog.la
	../lib/eventlog/libsudo_eventlog.la ../lib/logsrv/liblogsrv.la
	libtool: link:
	/home/buildroot/autobuild/instance-1/output-1/host/bin/powerpc-linux
	-gcc -o sudo_logsrvd logsrv_util.o iolog_writer.o logsrvd.o
	logsrvd_conf.o -static -Wl,--enable-new-dtags -Wl,-z -Wl,relro
	../lib/iolog/.libs/libsudo_iolog.a
	/home/buildroot/autobuild/instance-1/output-1/build/sudo-1.9.5p1/lib
	/util/.libs/libsudo_util.a -lpthread -lz
	../lib/eventlog/.libs/libsudo_eventlog.a
	../lib/logsrv/.libs/liblogsrv.a
	/home/buildroot/autobuild/instance-1/output-1/host/opt/ext-toolchain
	/bin/../lib/gcc/powerpc-buildroot-linux-uclibc/8.3.0/../../../../pow
	erpc-buildroot-linux-uclibc/bin/ld:
	../lib/eventlog/.libs/libsudo_eventlog.a(eventlog.o): in function
	`send_mail.constprop.1': eventlog.c:(.text+0x149c): undefined
	reference to `sudo_closefrom' collect2: error: ld returned 1 exit
	status

	Fixes: -
	http://autobuild.buildroot.org/results/515b45f876fa9de03c9235f86017f
	4dc10eb3b54

	Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
	[c05fe9366]

2021-01-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/log_client.c:
	Do not add an unfinished write buffer to the queue if it is already
	present. In client_msg_cb() we only remove a buffer from the queue
	when it is finished. Inserting the buf again can cause a cycle in
	the queue.
	[376ad5e6b]

2021-01-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/log_client.c:
	Fix problem when SSL_read() returns SSL_ERROR_WANT_WRITE. This can
	happen when the socket cannot be written to immediately. We need to
	set the read_instead_of_write flag in that case, _not_
	write_instead_of_read. Also sync comments with sendlog.c. Bug #954
	[eb536d8b7]

2021-01-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/progname.c:
	Fix setprogname() emulation on systems without it. For
	fully-qualified paths, store the string starting after the last
	slash, not at the slash itself.
	[d98dd5f98]

2021-01-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_5p1 for changeset 3a873a732416
	[0aea45e09]

	* :
	Merge sudo 1.9.5p1 from tip
	[8a0373679]

	* NEWS, configure, configure.ac:
	Sudo 1.9.5p1
	[e60ff9058]

	* src/sudo_edit.c:
	Run the editor with the user's real and effective uid and gid. Fixes
	a bug introduced in sudo 1.9.5 where the editor was run setuid root
	unless SELinux RBAC was in use.
	[3a13f1bf0]

	* NEWS:
	fix typo
	[ea150d591]

	* src/copy_file.c, src/edit_open.c:
	Add casts to quiet two warnings on Solaris.
	[01d0bbfb8]

2021-01-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_5 for changeset 4059f5520d9d
	[4d57a7541]

	* :
	Merge sudo 1.9.5 from tip
	[10d072a32]

2021-01-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac, doc/LICENSE, etc/sudo-logsrvd.pp,
	etc/sudo-python.pp, etc/sudo.pp:
	Sudo 1.9.5
	[9e111eae5]

2021-01-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update .pot files for 1.9.5.
	[250cccfe4]

2021-01-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.man.in.sed, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/policy.c:
	Allow SELinux support to be disabled via the sudoers file. Defaults
	to true if sudo is built with SELinux support and SELinux is not
	disabled on the system.
	[1b72d6a5c]

2021-01-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/python_importblocker.c:
	Add a comment to verify_import() to clarify its purpose.
	[4603da02a]

	* lib/eventlog/eventlog.c, lib/util/arc4random.c,
	lib/util/sudo_debug.c, plugins/audit_json/audit_json.c,
	plugins/python/python_convmessage.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/rcstr.c, plugins/sudoers/redblack.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/visudo.c,
	src/exec_common.c, src/sesh.c, src/sudo.c, src/sudo_edit.c:
	Suppress PVS Studio false positives.
	[4e11bc0e2]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Plug a memory leak in sudoerserrorf().
	[108e29446]

	* plugins/sudoers/editor.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/ldap_util.c, plugins/sudoers/parse.h,
	plugins/sudoers/starttime.c, plugins/sudoers/tsgetgrpw.c,
	src/ttyname.c:
	Quiet a few harmless cppcheck warnings.
	[92c88d410]

	* Makefile.in, lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	lib/logsrv/Makefile.in, lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/audit_json/Makefile.in, plugins/group_file/Makefile.in,
	plugins/python/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_approval/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Remove the --force option from the cppcheck args, it causes errors.
	[84b3a1dae]

	* src/sesh.c, src/sudo_edit.c:
	Split up sesh_sudoedit() so it is organized more like sudo_edit.c.
	The new sesh_edit_create_tfiles() and sesh_edit_copy_tfiles()
	functions are analogous to sudo_edit_create_tfiles() and
	sudo_edit_copy_tfiles(). Also use "sudoedit" in the warning/error
	messages from sesh_sudoedit(). Otherwise, the user gets a mix of
	messages from sudoedit and sesh.
	[83ff16469]

	* configure, configure.ac, include/sudo_compat.h,
	lib/util/progname.c:
	Add setprogname(3) for those without it.
	[9e068c15e]

	* src/edit_open.c, src/sesh.c, src/sudo_edit.c, src/sudo_edit.h:
	Rename run_cred -> cur_cred and stash existing creds in
	set_tmpdir(). For sudo_edit_open() et al what we need is a copy of
	the current cred to restore after dir_is_writable() changes to the
	user cred.
	[778858147]

	* src/edit_open.c, src/exec.c, src/exec_pty.c, src/sesh.c,
	src/sudo.c, src/sudo.h, src/sudo_edit.c, src/sudo_edit.h,
	src/tgetpass.c:
	Add struct sudo_cred to hold the invoking or runas user credentials.
	We can use this when we need to pass around credential info instead
	of the user_details and command_details structs.
	[ece5adc66]

	* src/Makefile.in, src/edit_open.c, src/sesh.c, src/sudo_edit.c,
	src/sudo_edit.h:
	Add directory writability checks for SELinux RBAC sudoedit. These
	were never added to the SELinux RBAC path.
	[46e2d7290]

	* MANIFEST, src/Makefile.in, src/edit_open.c, src/sesh.c,
	src/sudo_edit.c, src/sudo_edit.h, src/sudo_exec.h:
	Move safe open code out of sudo_edit.c and into edit_open.c.
	[a5be62c68]

	* src/copy_file.c, src/sudo_edit.c:
	In sudoedit, use sudo_check_temp_file() for non-SELinux too.
	[397a07e86]

	* src/copy_file.c, src/sesh.c, src/sudo_edit.c, src/sudo_exec.h:
	Add security checks before using temp files for SELinux RBAC
	sudoedit. Otherwise, it may be possible for the user running
	sudoedit to replace the newly-created temporary files with a
	symbolic link and have sudoedit set the owner of an arbitrary file.
	Problem reported by Matthias Gerstner of SUSE.
	[7cd36222e]

	* src/sudo_edit.c:
	Fix potential directory existing info leak in sudoedit. When
	creating a new file, sudoedit checks to make sure the parent
	directory exists so it can provide the user with a sensible error
	message. However, this could be used to test for the existence of
	directories not normally accessible to the user by pointing to them
	with a symbolic link when the parent directory is controlled by the
	user. Problem reported by Matthias Gerstner of SUSE.
	[db1f27c03]

	* lib/iolog/iolog_fileio.c, lib/util/sudo_debug.c,
	plugins/group_file/getgrent.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/tsgetgrpw.c:
	Check the return value of fcntl() when setting FD_CLOEXEC. This
	should never fail unless the fd is invalid. Problem reported by
	Matthias Gerstner of SUSE.
	[71339c574]

	* include/sudo_util.h, lib/util/progname.c, lib/util/util.exp.in,
	src/sudo.c:
	For sudo, only allow "sudo" or "sudoedit" as the program name. The
	program name is also used when matching Debug lines in sudo.conf. We
	don't want the user to be able to influence sudo.conf Debug
	matching. The string "sudoedit" is treated the same as "sudo" in
	sudo.conf. Problem reported by Matthias Gerstner of SUSE.
	[b132def0b]

2020-12-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/net_ifs.c:
	Fix the buffer size parameter when serializing the interface list.
	Problem reported by Matthias Gerstner of SUSE.
	[a29cac8bd]

2021-01-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po, po/ko.mo,
	po/ko.po, po/sr.mo, po/sr.po, po/sv.mo, po/sv.po:
	Updated translations from translationproject.org
	[295f099cf]

2021-01-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Use debug_return_int() not debug_return_bool() to return -1. Found
	by PVS Studio.
	[741cf082a]

	* plugins/sudoers/logging.c:
	Fix a crash introduced in 1.9.4 when running "sudo -i" as an unknown
	user.
	[4ea6f7306]

2021-01-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/check.c:
	Make sure lecture file is a regular file before reading it.
	[7f34b8bbb]

2021-01-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/iolog_fileio.c, plugins/sudoers/match_command.c,
	plugins/sudoers/timestamp.c:
	Remove #ifdefs around code using pread(3) and pwrite(3).
	[6e1986e91]

	* MANIFEST, configure, configure.ac, include/sudo_compat.h,
	lib/util/Makefile.in, lib/util/pread.c, lib/util/pwrite.c,
	scripts/mkdep.pl:
	Add emulation of pread(3) and pwrite(3) for systems without them.
	This makes it possible to remove some ugly #ifdefs and only affects
	very old systems.
	[06bfbecd6]

	* src/exec.c:
	Cannot do direct exec of a command when SELinux RBAC is enabled.
	[267b9a8a2]

	* logsrvd/logsrvd.c:
	Avoid potential use after free with eventlog-only connections.
	Coverity CID 215884.
	[f6452c7ca]

	* Makefile.in, lib/eventlog/Makefile.in, lib/iolog/Makefile.in,
	lib/logsrv/Makefile.in, lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/audit_json/Makefile.in, plugins/group_file/Makefile.in,
	plugins/group_file/plugin_test.c, plugins/python/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_approval/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/parse.h,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Minor fixes pointed out by cppcheck. Also add
	compareBoolExpressionWithInt to suppression list.
	[861783338]

	* plugins/sudoers/Makefile.in:
	Regen now that ldap.c and sssd.c no longer need gram.h
	[8ea19e294]

2020-12-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/fatal.c:
	Fix deregistration of a callback that is not at the head of the
	list. The SLIST_FOREACH_PREVPTR macro doesn't work the way I thought
	it did. Just store our own prev pointer and use that instead.
	[9547755c3]

2020-12-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_4p2 for changeset 8aed5221ede9
	[a84662393]

	* :
	merge sudo 1.9.4p2 from tip
	[be7da005f]

	* NEWS, configure, configure.ac:
	Sudo 1.9.4p2
	[4151d8fc8]

	* plugins/sudoers/sudoers.c:
	The runas user must be set before applying runas-based Defaults.
	This effectively backs out changeset f738f5ac5350, which made it
	possible to log the command when an invalid user was specified. The
	policy plugin API doesn't supply the command until the check
	function, at which point we've already denied the command due to the
	invalid user. Bug #951.
	[b3173fded]

2020-12-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/uncrustify-small.cfg, etc/uncrustify.cfg:
	Don't enable mod_remove_empty_return We like to use an empty return
	for stub functions.
	[4c00a4e5b]

2020-12-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_4p1 for changeset 8f65fd9f0f57
	[9dddd4fec]

	* :
	merge sudo 1.9.4p1 from tip
	[821d31cdf]

2020-12-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac:
	Sudo 1.9.4p1
	[4949fd291]

2020-12-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c:
	The lower bounds for the "closefrom" option is 3, not 4. This is a
	regression introduced in sudo 1.8.9 with the strtonum() conversion.
	Bug #950.
	[4551b19f6]

2020-12-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Direct execution of a command is incompatible with using a log
	server.
	[f41b2c1f5]

	* plugins/sudoers/audit.c:
	Set sudoers_audit.close to NULL if not using a log server.
	[5c66e9532]

2020-12-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.guess, config.h.in, config.sub, configure, configure.ac:
	Regenerate configure script with autoconf 2.71. Also fix some
	warnings from the new version.
	[da5c6c6c4]

2021-01-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST:
	Add plugins/sudoers/strvec_join.c
	[8f114c2aa]

	* plugins/sudoers/strvec_join.c, plugins/sudoers/sudoers.c:
	Fix compilation on systems without a native strlcpy() function.
	[8ca47cc99]

	* logsrvd/logsrvd.c, logsrvd/sendlog.c:
	Break up the long help string into multiple printf() statements. AIX
	xlc compiler doesn't like cpp directives in between strings. Also
	fixes a complaint from cppcheck and makes translation easier.
	[dceab7d75]

	* plugins/sudoers/regress/unescape/check_unesc.c,
	plugins/sudoers/strvec_join.c, plugins/sudoers/sudoers.h:
	strvec_join: free result on error and actually use separator char
	[c9eff9385]

2021-01-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/unescape/check_unesc.c:
	Test strvec_join() using strlcpy_unesc(). Emulates an overflow like:
	sudoedit -s '\' `perl -e 'print "A" x 65536'`
	[888f63a9c]

	* plugins/sudoers/Makefile.in, plugins/sudoers/strvec_join.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Refactor code to flatten an argument vector into a string. This is
	used when building up the user_args string.
	[29acc6419]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/unescape/check_unesc.c,
	plugins/sudoers/strlcpy_unesc.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Add strlcpy_unescape() function to undo escaping from front-end.
	Includes unit test.
	[2804c2c78]

	* plugins/sudoers/parse_ldif.c:
	Add missing check for reallocarray() failure. Found by OSS-Fuzz.
	[aa50aaf8d]

2021-01-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/pyhelpers.c, plugins/python/pyhelpers.h,
	plugins/python/python_convmessage.c,
	plugins/python/sudo_python_module.c:
	Remove Py_SSIZE2SIZE to quiet cppcheck warnings. Tuple size cannot
	be negative and we already handle the case where it is zero.
	[bca213959]

	* src/parse_args.c:
	The program name may now only be "sudo" or "sudoedit". We no longer
	need to check for any string that ends in "edit".
	[19d5845f8]

2020-12-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, src/sudo.c:
	Define _DARWIN_UNLIMITED_GETGROUPS on macOS to suport > 16 groups.
	On macOS 10.6 and above, getgroups(2) can return more than
	NGROUPS_MAX if _DARWIN_UNLIMITED_GETGROUPS or _DARWIN_C_SOURCE is
	defined. Bug #946
	[0e3e13d87]

2020-12-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	examples/sudo.conf.in:
	Comment out the default plugin lines in the example sudo.conf. Fixes
	a problem when there are multiple versions of sudo installed and not
	all suport the audit plugin, such as on macOS. GitHub issue #75
	[1cdc4716c]

	* plugins/sudoers/logging.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Store the user-provided runas user and group name in struct
	sudo_user. This makes it available for event logging in case the
	name doesn't resolve.
	[63739dd32]

	* plugins/sudoers/logging.c:
	Log submit group to event log.
	[bac76512f]

	* plugins/sudoers/logging.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Store iolog_path in struct sudo_user for use in the event log.
	[008a0e8dc]

2020-12-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c, plugins/sudoers/sudoers.c:
	Defer lookup of runas user until sudoers_main() for better logging.
	The log message now includes user info and the command attempted.
	[fd39e2d7d]

	* lib/eventlog/eventlog.c:
	Don't assume that just because command is non-NULL, argv is
	non-NULL.
	[567e5167d]

	* plugins/sudoers/logging.c:
	Fix a crash introduced in 1.9.4 when running command as an unknown
	user. Bug #948
	[a7d670ee3]

2020-12-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c:
	When shutting down the server, close non-I/O log connections
	immediately. Avoids a timeout during server shutdown while the
	server waits for active connections to close.
	[c5a7f0eb4]

	* src/sudo.c:
	Audit errors from policy_init_session(), audit_accept(), and
	audit_reject().
	[cbb7b4afa]

	* src/sudo.c:
	Do not run the command if the audit accept function fails. Also add
	warnings if the audit reject or error functions fail.
	[02ebdfd7f]

	* plugins/sudoers/log_client.c:
	Reduce the number of error messages when we can't connect to the
	audit server. Add the error string to "unable to connect to log
	server" instead of using an extra error message for the connect(2)
	failure.
	[67e6e2085]

	* plugins/sudoers/log_client.c:
	Use correct error message when the TLS connection is dropped. Was:
	"recv: Unknown error 0", now: "lost connection to log server".
	[a19f24279]

2020-12-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/alias.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h:
	Change alias_add() to return bool and set errno on failure. This
	fixes a localization problem where the error message could have been
	reported in the wrong locale.
	[d98374753]

2020-11-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog.c:
	Fix build when configured using --without-sendmail Bug #947
	[e22817e3a]

2020-11-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_4 for changeset 74705fb3b956
	[4159f7cbe]

	* :
	merge sudo 1.9.4 from tip
	[de029fc2a]

	* plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/hr.mo,
	po/hr.po:
	Updated translations from translationproject.org
	[833e273ad]

2020-11-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	sudo_logsrvd.conf pid_file change.
	[7ac951bb6]

	* logsrvd/logsrvd.c:
	Don't try to unlink a NULL pointer.
	[293911eed]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	logsrvd/logsrvd.c, logsrvd/logsrvd_conf.c:
	If pid_file is set to an empty value, disable the use of a pid file.
	[0f6d581ab]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	logsrvd/logsrvd.c:
	Don't overwrite sudo_logsrvd.pid if it is a symbolic link.
	[d0042eda9]

	* INSTALL, configure, configure.ac, etc/codespell.exclude,
	plugins/sudoers/env.c:
	Fix typo detected by codespell 2.0.0 Also avoid some new false
	positives
	[94c5052eb]

2020-11-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/uncrustify-small.cfg, etc/uncrustify.cfg,
	plugins/python/regress/testhelpers.h, plugins/sudoers/env.c,
	plugins/sudoers/sudo_ldap_conf.h:
	Set pp_ignore_define_body=false in uncrustify config. Need to work
	around a bug that produces closed brace errors, see
	https://github.com/uncrustify/uncrustify/issues/2569
	[bdf553001]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt.mo, plugins/sudoers/po/pt.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/hr.mo,
	po/hr.po, po/it.mo, po/it.po:
	Updated translations from translationproject.org
	[7bbd7c8e0]

2020-11-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/sudo_conf.c:
	Fix calling sudo_conf_read() multiple times with different
	conf_types. The change to reinitialize the configuration data when
	sudo_conf_read() is called again didn't take into account that sudo
	calls sudo_conf_read() twice--once for the debug info and once for
	everything else.
	[4a6ca4ba2]

2020-11-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c:
	Don't free the private copy of the environment until the close
	function. We may need to use it when logging from the audit reject
	function.
	[7d0b19d2a]

	* plugins/sudoers/log_client.c:
	It is possible for evlog->argv or evlog->envp to be NULL.
	[cb87253d1]

	* src/exec_pty.c, src/sudo.c, src/sudo.h:
	Pass command_info[] to audit plugin on I/O log plugin reject or
	error. The audit plugin should cope with a NULL command_info but
	there's no reason not to pass the info when we have it.
	[24d812d03]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	plugins/sudoers/audit.c:
	For the audit plugin, command_info may be NULL. Fixes a NULL
	dereference in sudoers_audit when an I/O logging plugin rejects
	input/output or returns an error.
	[27615b558]

	* plugins/sudoers/defaults.c:
	Add missing initialization of def_log_format to sudo.
	[e4a2765cc]

2020-11-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac:
	Newer LibreSSL has SSL_CTX_set_ciphersuites but it is not enabled.
	Add a check for the function declaration in openssl/ssl.h.
	[a96b9a137]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Event log data is sent to sudo_logsrvd even when not I/O logging.
	[38dd0f63b]

2020-11-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot:
	Regenerate sudoers.pot for 1.9.4
	[061b53e33]

	* NEWS, configure, configure.ac:
	Update for sudo 1.9.4.
	[1aa76e9b7]

	* plugins/sudoers/audit.c:
	Update struct eventlog based on command_info[] from front-end. The
	I/O log path is not known until the I/O log plugins have run and
	other plugins may alter the execution environment.
	[2b71b6104]

	* plugins/sudoers/alias.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/logging.h,
	plugins/sudoers/regress/testsudoers/test13.out.ok,
	plugins/sudoers/toke.h:
	Add sudoerserrorf(), a printf-style yyerror() function. Use this to
	display a better error message when using a reserved work in an
	alias definition.
	[95fb8eb72]

2020-11-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	Build universal binaries on macOS 11.0 and higher. The resulting
	package should work on Macs based on Apple Silicon.
	[d28b4291c]

2020-11-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/editor.c:
	Support EDITOR environment variable that includes quotes. Quote
	support is limited to the beginning of a word. Also handles
	characters escaped with a backslash.
	[aeef6db85]

2020-11-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/Makefile.in, plugins/python/pyhelpers.c,
	plugins/python/python_plugin_common.c,
	plugins/python/regress/iohelpers.h,
	plugins/python/regress/testdata/check_example_debugging_c_calls@diag
	.log,
	plugins/python/regress/testdata/check_example_debugging_c_calls@info
	.log,
	plugins/python/regress/testdata/check_example_debugging_plugin@info.
	log,
	plugins/python/regress/testdata/check_example_debugging_py_calls@dia
	g.log,
	plugins/python/regress/testdata/check_example_debugging_py_calls@inf
	o.log,
	plugins/python/regress/testdata/check_example_group_plugin_is_able_t
	o_debug.log,
	plugins/python/regress/testdata/check_example_io_plugin_command_log.
	stored,
	plugins/python/regress/testdata/check_example_io_plugin_command_log_
	multiple1.stored,
	plugins/python/regress/testdata/check_example_io_plugin_command_log_
	multiple2.stored,
	plugins/python/regress/testdata/check_example_io_plugin_failed_to_st
	art_command.stored,
	plugins/python/regress/testdata/check_example_io_plugin_fails_with_p
	ython_backtrace.stderr,
	plugins/python/regress/testdata/check_example_policy_plugin_validate
	_invalidate.log,
	plugins/python/regress/testdata/check_loading_fails_not_owned_by_roo
	t.stderr,
	plugins/python/regress/testdata/check_loading_fails_wrong_classname.
	stderr,
	plugins/python/regress/testdata/check_loading_fails_wrong_path.stder
	r,
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout,
	plugins/python/regress/testdata/check_python_plugins_do_not_affect_e
	ach_other.stdout, plugins/python/regress/testhelpers.c,
	plugins/python/regress/testhelpers.h:
	Back out regex use in python tests, filter the output instead. This
	makes it possible to regenerate the test output again. Also adds an
	update_test_data target to the Makefile.
	[d688f4d34]

	* src/sudo.c:
	Stay setuid until just before executing the command. Fixes a problem
	with pam_xauth which checks effective and real uids to get the real
	identity of the user.
	[b2ccbb3a9]

	* plugins/sudoers/ldap.c:
	Ignore sudoNotBefore and sudoNotAfter unless ldap.conf contains
	SUDOERS_TIMED This is consistent with the pre-1.8.24 behavior. Bug
	#945
	[6439b4cc0]

2020-11-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/parse.h, plugins/sudoers/sssd.c:
	Introduce new_member_all() for code that doesn't include gram.h. The
	ldap and sssd back-ends no longer require gram.h which fixes a
	compilation issue with IBM LDAP.
	[55c4f3bdd]

	* lib/util/sudo_conf.c, lib/util/sudo_debug.c, logsrvd/logsrvd.c:
	On SIGHUP, deregister the old debug instance before registering a
	new one. Otherwise, if debugging is enabled we will get an extra log
	instance each time sudo_logsrvd reeives SIGHUP which results in
	duplicate lines in the debug log.
	[deb217adf]

2020-11-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/log_client.c, plugins/sudoers/log_client.h:
	Refactor code to format the client message after the hello.
	[72df19088]

	* plugins/sudoers/audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h:
	Use sudoers_to_eventlog() and init_log_details() in
	sudoers_audit_accept(). log_deserialize_info() can be private to
	iolog.c again.
	[56fb16d3e]

	* doc/sudo_logsrv.proto.man.in, doc/sudo_logsrv.proto.mdoc.in,
	include/log_server.pb-c.h, lib/eventlog/eventlog.c,
	lib/logsrv/log_server.pb-c.c, lib/logsrv/log_server.proto,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.c,
	plugins/sudoers/log_client.c:
	Add info_msgs to AlertMessage and populate it. This lets us log
	eventlog info along with the alert if it is available.
	[9779009fa]

	* plugins/sudoers/Makefile.in, plugins/sudoers/audit.c,
	plugins/sudoers/iolog.c, plugins/sudoers/log_client.c,
	plugins/sudoers/log_client.h, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h:
	Log reject and alert messages to the log server if one is defined.
	[62525dcc9]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/audit.c,
	plugins/sudoers/iolog.c, plugins/sudoers/log_client.c,
	plugins/sudoers/log_client.h:
	Rename iolog_plugin.h to log_client.h. It is no longer I/O log
	specific and is used by sudoers_audit too.
	[e56c3b342]

	* MANIFEST, config.h.in, configure, configure.ac,
	plugins/sudoers/Makefile.in, plugins/sudoers/audit.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_plugin.h,
	plugins/sudoers/log_client.c, plugins/sudoers/sudoers.c:
	Rename iolog_client -> log_client. The logsrvd client code is now
	used for more than just I/O logging.
	[62547746d]

2020-11-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/Makefile.in, plugins/sudoers/audit.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_plugin.h:
	Log accept messages in sudoers_audit if not I/O logging.
	[2112d9beb]

	* plugins/sudoers/iolog_client.c:
	Refactor code to format InfoMesage array into fmt_info_messages().
	Add free_info_messages() to free the array.
	[8f5290b19]

	* plugins/sudoers/iolog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_plugin.h:
	Refactor sudoers_io_open_remote() into log_server_open(). Also
	rename client_close() to log_server_close(). This keeps more of the
	client code details out of iolog.c and will be used when logging
	accept messages from the audit plugin.
	[e264767ea]

	* plugins/sudoers/iolog.c:
	Move argv and envp setting into iolog_deserialize_info().
	[2d888380a]

	* logsrvd/logsrvd.c:
	Avoid early return in handle_accept() if expect_iobufs not set.
	[f1ded289e]

2020-11-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	include/sudo_plugin.h,
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout, src/exec.c, src/load_plugins.c:
	Add event_alloc to the audit plugin API. The sudoers audit plugin
	will use this to communicate with sudo_logsrvd.
	[fe9e65754]

2020-11-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	Treat an authentication failure as a reject, not an alert. This
	matters when logging via sudo_logsrvd. It also lets us remove a
	special case in vlog_warning().
	[ad4024170]

2020-11-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog.c:
	For logsrvd AlertMessages, evlog will be NULL.
	[0dd4c5797]

	* lib/eventlog/eventlog.c:
	Append errstr to reason for alert and reject events if specified.
	Previously, we logged the error string separately but this is not
	consistent with how it is logged in other formats.
	[444ca3789]

2020-11-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h:
	Regenerate with bison 3.7.3
	[f8a708dae]

	* configure, configure.ac:
	Remove hack to define YYTOKENTYPE, it breaks newer bison.
	[08d236293]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c:
	Use struct eventlog *evlog, not struct eventlog *details.
	[a9cad13b1]

2020-11-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	Fix cut & pasto in debug subsystem.
	[282a7e80f]

2020-11-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/sendlog.c, plugins/sudoers/iolog_client.c:
	Set server_name before initiating TLS connection so verify function
	works. Fixes a crash in the SSL_VERIFY_PEER callback. Also call
	inet_ntop(3) with addr pointer, not sockaddr pointer so we get the
	correct IP address.
	[de58c11db]

	* plugins/sudoers/alias.c, plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h,
	plugins/sudoers/regress/sudoers/test18.toke.ok,
	plugins/sudoers/regress/sudoers/test2.ldif.ok,
	plugins/sudoers/regress/sudoers/test3.ldif.ok,
	plugins/sudoers/regress/sudoers/test6.ldif.ok,
	plugins/sudoers/regress/visudo/test2.err.ok,
	plugins/sudoers/regress/visudo/test3.err.ok,
	plugins/sudoers/visudo.c:
	Store column number for aliases, defaults and userspecs too. This is
	used to provided the column number along with the line number in
	error messages. For aliases we store the column of the alias name,
	not the value since that is what visudo generally needs.
	[6286ce1d1]

2020-11-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/regress/testsudoers/test11.out.ok,
	plugins/sudoers/regress/testsudoers/test12.out.ok,
	plugins/sudoers/regress/testsudoers/test13.out.ok:
	Display column number in parse error messages too. Bug #841
	[982012dbb]

	* plugins/sudoers/iolog_client.c, plugins/sudoers/iolog_plugin.h:
	Move tls initialized flag into client_closure. We may call
	tls_init() from multiple places in the future so a static
	initialized flag will cause problems.
	[6f7e5b104]

	* plugins/sudoers/cvtsudoers_json.c:
	Fix -Wshadow warnings caused by json enum member.
	[10b09e4d8]

2020-10-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* ABOUT-NLS, INSTALL, NEWS, configure.ac, doc/UPGRADE,
	doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	doc/sudoers_timestamp.man.in, doc/sudoers_timestamp.mdoc.in,
	doc/visudo.man.in, doc/visudo.mdoc.in, examples/sudo.conf.in,
	include/compat/getaddrinfo.h, install-sh, lib/util/getaddrinfo.c,
	lib/util/getentropy.c, lib/util/regress/sudo_conf/test1.in,
	lib/util/regress/sudo_parseln/test1.in,
	lib/util/regress/vsyslog/vsyslog_test.c, lib/util/strtoid.c,
	logsrvd/logsrvd.c, logsrvd/logsrvd_conf.c, logsrvd/sendlog.c,
	m4/sudo.m4, plugins/group_file/group_file.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.in,
	plugins/sudoers/editor.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/gram.y,
	plugins/sudoers/group_plugin.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/stubs.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/timestamp.c,
	plugins/sudoers/visudo.c, src/load_plugins.c, src/sudo.c,
	src/sudo_noexec.c, src/tgetpass.c:
	Apply Google inclusive language guidelines. Also replace backwards
	with backward.
	[e0c2635fb]

2020-10-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in:
	Refernce IBM LDAP libs, not Tivoli since that is how it is packaged.
	We still use Tivoli when talking about the server itself but refer
	to it as the "IBM Tivoli Directory Server".
	[973da9a59]

	* doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in:
	Add a newline before "This option is ..."
	[f4c5f34ab]

	* doc/sudoers.man.in:
	regen
	[8dee1b1ec]

2020-10-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/regress/logwrap/check_wrap.c,
	lib/eventlog/regress/logwrap/check_wrap.in,
	lib/eventlog/regress/logwrap/check_wrap.out.ok:
	Test eventlog_writeln() when word wrap is disabled.
	[1910b1924]

	* configure, configure.ac:
	Bison generates an extra enum containing the parser tokens. This
	conflicts with the IBM ldap.h at least. Prevent it from being
	exposed by defining YYTOKENTYPE.
	[3078d67c1]

	* config.h.in, configure, configure.ac, plugins/sudoers/ldap.c:
	Use ssl_err2string() in message on ldap_ssl_client_init() failure.
	Displaying SSL reason code directly is not user-friendly.
	[c8c7e1f60]

	* configure, configure.ac:
	IBM LDAP packages use a lib64 directory for 64-bit libraries. We
	need to add this to LDFLAGS so the linker is able to find the
	correct libs when building 64-bit binaries.
	[488aeff53]

2020-10-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog.c:
	For JSON logs, write the most important log elements first. This is
	important for syslog where the record could be truncated.
	[8c43eeb29]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers.c:
	Add log_format sudoers setting to select sudo or json format logs.
	Defaults to sudo-format logs.
	[28d6771d2]

	* include/sudo_json.h, lib/eventlog/eventlog.c, lib/util/json.c:
	Support "minimal" JSON which skips all non-essention whitespace.
	This replaces the old "compact" mode which is only used for syslog.
	[6bc729aa3]

	* plugins/sudoers/logging.c:
	Don't warn about log failure more than once.
	[4fc39cfb0]

2020-10-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/eventlog/eventlog.c:
	Check for fdopen(3) failure in send_mail().
	[34c165151]

	* MANIFEST, include/sudo_eventlog.h, lib/eventlog/Makefile.in,
	lib/eventlog/eventlog.c, lib/eventlog/logwrap.c,
	lib/eventlog/regress/logwrap/check_wrap.c,
	lib/eventlog/regress/logwrap/check_wrap.in,
	lib/eventlog/regress/logwrap/check_wrap.out.ok,
	plugins/sudoers/Makefile.in, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/sudoers.c:
	Add support for file log line wrapping in libeventlog.
	[fdae4bdbb]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	logsrvd/logsrvd_conf.c, plugins/sudoers/defaults.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/stubs.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c:
	Use real setters for the eventlog config. This makes it possible to
	have a base config that the callers can modify instead of replacing
	the config wholesale.
	[d899fe593]

	* lib/eventlog/eventlog.c, plugins/sudoers/logging.c:
	Log the short version of the tty in sudoers-format logs. This is
	consistent with historical practice.
	[39b540ff3]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	plugins/sudoers/Makefile.in, plugins/sudoers/audit.c,
	plugins/sudoers/defaults.c, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/policy.c, plugins/sudoers/stubs.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c:
	Use libeventlog in sudoers instead of doing our own logging.
	[4416bd597]

	* lib/eventlog/eventlog.c:
	Add default values in eventlog_setconf().
	[541252beb]

	* include/sudo_eventlog.h, lib/eventlog/Makefile.in,
	lib/eventlog/eventlog.c, logsrvd/logsrvd.c,
	plugins/sudoers/Makefile.in, plugins/sudoers/defaults.c,
	plugins/sudoers/logging.h:
	Add support for mailing eventlog entries and for logging raw
	messages. These will be used by the sudoers plugin.
	[bd1ca79cc]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	lib/iolog/iolog_fileio.c:
	If no JSON callback is provided, store the contents of struct
	eventlog. This moves the JSON formatting of struct eventlog out of
	libsudo_iolog and into libsudo_eventlog where it belongs.
	[fe6e0fb21]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	logsrvd/logsrvd.c:
	struct eventlog contains submit_time, no need to pass it in
	directly.
	[4652698f8]

	* include/sudo_eventlog.h, lib/eventlog/eventlog.c,
	logsrvd/logsrvd.c:
	Add an errstr argument to eventlog_alert().
	[c0e91d758]

	* plugins/sudoers/Makefile.in, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_client.c, plugins/sudoers/iolog_plugin.h:
	Make a copy of the strings stored in iolog_details and struct
	eventlog. Previously, we just made the strings const and relied on
	the front-end not changing them. Now the sudoers I/O log plugin
	behavior is consistent with the policy plugin.
	[3ca3bfaab]

	* plugins/sudoers/Makefile.in, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_client.c, plugins/sudoers/iolog_plugin.h:
	Use struct eventlog in iolog_details.
	[2d45becd4]

	* include/sudo_eventlog.h, include/sudo_iolog.h,
	lib/eventlog/eventlog.c, lib/iolog/Makefile.in,
	lib/iolog/iolog_fileio.c, lib/iolog/iolog_json.c,
	lib/iolog/iolog_util.c, logsrvd/Makefile.in, logsrvd/iolog_writer.c,
	logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/sendlog.c,
	logsrvd/sendlog.h, plugins/sudoers/Makefile.in,
	plugins/sudoers/iolog.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoreplay.c:
	Use struct eventlog in place of struct iolog_info.
	[db7249825]

	* logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c:
	No longer need eventlog-related getters in logsrvd.c
	[b9aff696f]

	* MANIFEST, logsrvd/Makefile.in, logsrvd/eventlog.c,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c:
	Use libeventlog in sudo_logsrvd.
	[8c4334047]

	* MANIFEST, Makefile.in, configure, configure.ac,
	include/sudo_eventlog.h, lib/eventlog/Makefile.in,
	lib/eventlog/eventlog.c, logsrvd/logsrvd.h:
	Refactor eventlog code into a library
	[707437f6c]

2020-10-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/Makefile.in, lib/logsrv/Makefile.in,
	lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/python/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	regen Makefiles
	[79921387a]

	* scripts/mkpkg:
	Build 64-bit binaries on HP-UX ia64
	[866b0b77f]

2020-10-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/Makefile.in:
	Explicitly set umask when running tests. Some tests create files
	that must not be world-writable.
	[5c7c94b83]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	sudoers_policy_store() -> sudoers_policy_store_result()
	[a5a5cc7f8]

2020-10-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Rename sudoers_policy_exec_setup() -> sudoers_policy_store(). It is
	called even when there is no command to execute. Also pass in status
	of whether or not the command was accepted.
	[bf9d20866]

2020-10-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/cvtsudoers/test1.sh,
	plugins/sudoers/regress/cvtsudoers/test10.sh,
	plugins/sudoers/regress/cvtsudoers/test11.sh,
	plugins/sudoers/regress/cvtsudoers/test12.sh,
	plugins/sudoers/regress/cvtsudoers/test13.sh,
	plugins/sudoers/regress/cvtsudoers/test14.sh,
	plugins/sudoers/regress/cvtsudoers/test15.sh,
	plugins/sudoers/regress/cvtsudoers/test16.sh,
	plugins/sudoers/regress/cvtsudoers/test17.sh,
	plugins/sudoers/regress/cvtsudoers/test18.sh,
	plugins/sudoers/regress/cvtsudoers/test19.sh,
	plugins/sudoers/regress/cvtsudoers/test2.sh,
	plugins/sudoers/regress/cvtsudoers/test20.sh,
	plugins/sudoers/regress/cvtsudoers/test21.sh,
	plugins/sudoers/regress/cvtsudoers/test22.sh,
	plugins/sudoers/regress/cvtsudoers/test23.sh,
	plugins/sudoers/regress/cvtsudoers/test24.sh,
	plugins/sudoers/regress/cvtsudoers/test25.sh,
	plugins/sudoers/regress/cvtsudoers/test26.sh,
	plugins/sudoers/regress/cvtsudoers/test27.sh,
	plugins/sudoers/regress/cvtsudoers/test28.sh,
	plugins/sudoers/regress/cvtsudoers/test29.sh,
	plugins/sudoers/regress/cvtsudoers/test3.sh,
	plugins/sudoers/regress/cvtsudoers/test30.sh,
	plugins/sudoers/regress/cvtsudoers/test31.sh,
	plugins/sudoers/regress/cvtsudoers/test32.sh,
	plugins/sudoers/regress/cvtsudoers/test33.sh,
	plugins/sudoers/regress/cvtsudoers/test4.sh,
	plugins/sudoers/regress/cvtsudoers/test5.sh,
	plugins/sudoers/regress/cvtsudoers/test6.sh,
	plugins/sudoers/regress/cvtsudoers/test7.sh,
	plugins/sudoers/regress/cvtsudoers/test8.sh,
	plugins/sudoers/regress/cvtsudoers/test9.sh,
	plugins/sudoers/regress/testsudoers/test1.sh,
	plugins/sudoers/regress/testsudoers/test10.sh,
	plugins/sudoers/regress/testsudoers/test11.sh,
	plugins/sudoers/regress/testsudoers/test12.sh,
	plugins/sudoers/regress/testsudoers/test13.sh,
	plugins/sudoers/regress/testsudoers/test14.sh,
	plugins/sudoers/regress/testsudoers/test15.sh,
	plugins/sudoers/regress/testsudoers/test2.sh,
	plugins/sudoers/regress/testsudoers/test3.sh,
	plugins/sudoers/regress/testsudoers/test4.sh,
	plugins/sudoers/regress/testsudoers/test5.sh,
	plugins/sudoers/regress/testsudoers/test6.sh,
	plugins/sudoers/regress/testsudoers/test7.sh,
	plugins/sudoers/regress/testsudoers/test8.sh,
	plugins/sudoers/regress/testsudoers/test9.sh,
	plugins/sudoers/regress/visudo/test1.sh,
	plugins/sudoers/regress/visudo/test10.sh,
	plugins/sudoers/regress/visudo/test2.sh,
	plugins/sudoers/regress/visudo/test3.sh,
	plugins/sudoers/regress/visudo/test4.sh,
	plugins/sudoers/regress/visudo/test5.sh,
	plugins/sudoers/regress/visudo/test6.sh,
	plugins/sudoers/regress/visudo/test7.sh,
	plugins/sudoers/regress/visudo/test8.sh,
	plugins/sudoers/regress/visudo/test9.sh:
	Pass path to testsudoers, visudo or cvtsudoers in the environment.
	Falls back on the unqualified command if the environment variable is
	not set.
	[b0a6e1c1e]

2020-10-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sssd.c:
	Init cmnds to NULL in rule_to_priv() so we don't free a bogus
	pointer. In the sssd backend, the rule_to_priv() cleanup code
	assumes cmnds can be passed to fn_free_values(), which was not the
	case if we receive an error getting values for "sudoCommand". This
	is a regression introduced in sudo 1.9.1. Fix from Ron Bowes. GitHub
	issue #67.
	[807857a2c]

2020-10-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c,
	plugins/sudoers/parse.h:
	Pass runchroot to match_digest() too. We use the open fd for the
	actual I/O but having runchroot makes it possible to report the
	correct file name in error messages.
	[607076d8a]

2020-10-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	GitHub issue #61 was fixed in sudo 1.9.3.
	[645eda55a]

2020-09-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/def_data.h, plugins/sudoers/mkdefaults:
	Fix indentation of enum def_tuple.
	[ea57249e2]

2020-09-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Remove special case EOF handling; lines now always end in a newline.
	Previously we needed to emulate some of the state transitions that
	happen at end-of-line at end-of-file as well. Those are no longer
	needed now that we are guaranteed to always have a newline at the
	end.
	[772619b7e]

2020-09-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Increment sudolinebuf.size after realloc().
	[f984f49c3]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y,
	plugins/sudoers/regress/sudoers/test13.toke.ok,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add a newline at end of line if one is missing. This is simpler than
	having to support entries that end at EOF too.
	[e8747a33f]

	* MANIFEST, plugins/sudoers/regress/testsudoers/test14.out.ok,
	plugins/sudoers/regress/testsudoers/test14.sh,
	plugins/sudoers/regress/testsudoers/test15.out.ok,
	plugins/sudoers/regress/testsudoers/test15.sh:
	Add tests for entries without a newline.
	[32db52868]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix handling of a command spec without a newline at the end. For
	include files, we may need to inject a newline token now that the
	grammar requires lines to end with a newline or EOF. There is no END
	(EOF) token processed after popping off an include file since
	everything is just treated as one big file.
	[9bb91cb64]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Mark sudoerserror() messages for translation.
	[0276a565e]

	* plugins/sudoers/regress/sudoers/test8.toke.ok,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix line number accounting when a string contains a newline. Strings
	are not allowed to span multiple lines without a continuation
	character. Also provide a better error message if we are in the
	middle of a string and hit EOF.
	[ddc138383]

2020-09-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/sudoers.h, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Use sudoerschar (yychar) instead of last_token. The parser already
	provides a way to examing the last token processed, we don't need to
	add our own.
	[7d2090061]

2020-09-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/closefrom.c, lib/util/getentropy.c, lib/util/pipe2.c,
	lib/util/term.c, lib/util/ttyname_dev.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/env.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/gmtoff.c, plugins/sudoers/locale.c,
	plugins/sudoers/logging.h, plugins/sudoers/policy.c,
	plugins/sudoers/starttime.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	plugins/system_group/system_group.c, src/load_plugins.c, src/sudo.c,
	src/sudo_plugin_int.h, src/tgetpass.c, src/ttyname.c:
	Fix -Wshadow warnings.
	[88dcdcd11]

	* configure, configure.ac:
	Add -Wshadow to warning flags if the compiler supports it.
	[7eda22c72]

	* MANIFEST, plugins/sudoers/regress/testsudoers/test13.out.ok,
	plugins/sudoers/regress/testsudoers/test13.sh:
	Add test for syntax error when defining an alias using a reserved
	word.
	[7a36d70fc]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Fix pasto, TIMEOUT not CMND_TIMEOUT.
	[e826705b6]

	* NEWS, doc/UPGRADE, doc/sudoers.man.in, doc/sudoers.man.in.sed,
	doc/sudoers.mdoc.in:
	Document reserved words that cannot be used as alias names. Bug #941
	[b1a59accf]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/sudoers_version.h:
	Detect when a reserved word is used when declaring an alias. Now
	instead of "syntax error, unexpected CHROOT, expecting ALIAS" the
	message is "syntax error, reserved word used as an alias name" Bug
	#941
	[70ada21c5]

2020-09-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_3p1 for changeset 02c47b39359e
	[365b41257]

	* :
	merge sudo 1.9.3p1 from tip
	[cfa5b9992]

	* NEWS, configure, configure.ac:
	Update for sudo 1.9.3p1
	[b2593b22b]

	* plugins/sudoers/audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/sudoers.c:
	Add SLOG_AUDIT flag for log_warningx() to also audit the message.
	This lets us combine audit_failure() and log_warningx() calls with
	the same message.
	[f1d19f1d6]

	* plugins/sudoers/sudoers.c:
	Log when user-specified command line options are rejected by
	sudoers. We already audit those but in some cases they were not
	logged as well.
	[6ee731caf]

	* plugins/sudoers/sudoers.c:
	Fix potential NULL deref in debug code.
	[6f8e1b974]

	* plugins/sudoers/getspwuid.c:
	Close the passwd db before calling getpwnam_shadow(3). Otherwise, we
	will get the non-shadow passwd entry ("*") since we called
	setpassent(3) earlier to keep the passwd db open.
	[09835b719]

	* configure, configure.ac:
	Fix configure test for crypt(3) when it is present in libc. Fixes a
	regression introduced in sudo 1.9.3.
	[75d53ee54]

2020-09-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_3 for changeset bdd40c087bec
	[e0f41945b]

	* :
	merge sudo 1.9.3 from tip
	[2c102c6cc]

2020-09-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt.mo, plugins/sudoers/po/pt.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/eo.mo,
	po/eo.po, po/fi.mo, po/fi.po, po/fr.mo, po/fr.po:
	Updated translations from translationproject.org
	[d4428133b]

2020-09-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Move warning about plaintext password to the end of configure. It is
	unlikely to be noticed at the beginning of the output.
	[e2c72300c]

2020-09-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac,
	plugins/sudoers/auth/passwd.c:
	Use a simple string compare on systems without crypt(3). This is
	only used on systems without PAM, BSD authentication or AIX
	authentication. Bug #940.
	[874c2b27c]

	* src/utmp.c:
	Fix typo in last commit.
	[44a1058aa]

2020-09-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo_edit.c:
	Only use faccessat(3) if AT_EACCESS is defined. Apparently Android
	(bionic) has faccessat() but not AT_EACCESS. Bug #940.
	[90bcae798]

	* src/utmp.c:
	Guard use of ttyslot() with HAVE_TTYSLOT, fix guard for
	utmp_setid(). This should make it easier to compile sudo on Android
	which doesn't provide a way to write to the utmp file. Bug #940.
	[4f1fff953]

2020-09-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* po/zh_CN.mo, po/zh_CN.po:
	Updated translations from translationproject.org
	[a00130328]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt.mo, plugins/sudoers/po/pt.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/fi.mo,
	po/fi.po, po/fr.mo, po/fr.po, po/hr.mo, po/hr.po, po/it.mo,
	po/it.po, po/ja.mo, po/ja.po, po/pl.mo, po/pl.po, po/pt.mo,
	po/pt.po, po/pt_BR.mo, po/pt_BR.po, po/sr.mo, po/sr.po, po/tr.mo,
	po/tr.po, po/uk.mo, po/uk.po, po/zh_TW.mo, po/zh_TW.po:
	Updated translations from translationproject.org
	[9f6a3d35c]

	* configure, configure.ac, plugins/sudoers/po/sudoers.pot:
	Back out sudo 1.9.3b1 version change.
	[1154e1d60]

2020-09-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac, plugins/sudoers/defaults.c,
	plugins/sudoers/po/sudoers.pot:
	Fix typo in warning for T_CHPATH, list '~' not '*' twice. Bug #938
	[def99ffd7]

2020-09-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update .pot files for 1.9.3.
	[86df234e1]

2020-09-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_client.c:
	Add missing check for strdup() failure. Coverity CID 214243
	[3fc3b62d7]

	* examples/sudoers:
	Sync example sudoers with manual page.
	[4239a45b6]

2020-09-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Add simple runchroot and runcwd examples. Also document the
	limitation of command-based Defaults settings.
	[5ca6056a3]

	* plugins/sudoers/sudoers.c:
	Add callback for runchroot Defaults and require password -D/-R
	checks. Using a command-based Default for runchroot will still only
	work for paths that exist both in and outside the chroot.
	[c200e7163]

	* plugins/sudoers/defaults.c, plugins/sudoers/match.c,
	plugins/sudoers/match_command.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c:
	Pass a struct to the match functions to track the resolved command.
	This makes it possible to update user_cmnd and cmnd_status modified
	by per-rule CHROOT settings.
	[10d3d69aa]

	* plugins/sudoers/defaults.c, plugins/sudoers/editor.c,
	plugins/sudoers/find_path.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/match.c, plugins/sudoers/match_command.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/stubs.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c:
	Take the chroot into account when search for the command. This could
	a a user-specific chroot via the -R option, a runchroot Defaults
	value, or a per-command CHROOT spec in the sudoers rule.
	[b6dbfe509]

2020-09-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Remove closefrom_fallback() from lib/util/util.exp. It is a static
	function and should not be exported.
	[e9997c8ec]

2020-09-06  Evan Anderson  <evan@eaanderson.com>

	* configure, m4/sudo.m4:
	configure: Fix runstatedir handling for distros that do not support
	it

	runstatedir was added in yet-to-be released autoconf 2.70. Some
	distros are shipping this addition in their autoconf packages, but
	others, such as Fedora, are not. This causes the rundir variable to
	be set incorrectly if the configure script is regenerated with an
	unpatched autoconf since the runstatedir variable set is deleted
	after regeneration. This change works around that problem by
	checking that runstatedir is non-empty before potentially using it
	to set the rundir variable
	[92e5d8194]

2020-09-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/Makefile.in:
	We need to link with NET_LIBS for gai_strerror() on some systems.
	From Tim Rice
	[3d9154cd4]

	* ltmain.sh:
	Fix sco library versioning; fallout from frebsd-elf reorg. From Tim
	Rice
	[d6ed38e7e]

	* configure, configure.ac:
	SVR4/5 fixes and long password support for OpenServer 6 & 5. From
	Tim Rice
	[72b28bbc3]

	* lib/logsrv/protobuf-c.c:
	Use config.h to handle systems without inline function support.
	[0f8802676]

	* configure, configure.ac:
	Prefer dlopen() over shl_load() on HP-UX 11.11 and higher.
	[f6cb5c72b]

	* include/sudo_fatal.h, lib/util/fatal.c:
	Define sudo_warn_setlocale_t and use sudo_conv_t in sudo_fatal.h.
	Works around a bug in older versions of the HP ANSI C compiler and
	results in more readable code.
	[d56347b98]

	* configure, configure.ac:
	HP-UX cc may not allow __declspec(dllexport) to be used in
	conjunction with "#pragma HP_DEFINED_EXTERNAL" when redefining
	standard libc functions.
	[a7033f33a]

2020-09-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Fix check for hiding unexported symbols on HP-UX. We need to pass
	the -b option to the compiler, not just the linker, so it will
	choose the PIC C runtime.
	[88c7a35dd]

	* src/regress/ttyname/check_ttyname.c:
	Check that the files are character devices before comparing st_rdev.
	[cc8e6c601]

	* src/regress/ttyname/check_ttyname.c:
	Fix regress when ttyname(3) returns the same device under a
	different name. On systems that have both new and old pty names we
	can end up with a name mismatch even though the underlying device is
	the same.
	[a0092ce31]

	* plugins/sudoers/regress/testsudoers/test3.sh:
	Use the same pattern of redefining TESTDIR as test10.sh. Adapted
	from a diff from Tim Rice.
	[e561f5b85]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c:
	Rename sa_len -> sa_size to avoid a conflict on UnixWare and others.
	On some systems, sa_len is a #define for 4.4BSD compatibility.
	[e92d10011]

	* plugins/sudoers/pwutil.c:
	Include strings.h for strcasecmp(3). From Tim Rice
	[f6a14c941]

	* lib/util/getentropy.c:
	Add missing #ifdef HAVE_CLOCK_GETTIME in getentropy_fallback() From
	Tim Rice
	[c4b9f6136]

	* plugins/sudoers/Makefile.in:
	Regen for check_exptilde.o
	[f6d477692]

	* lib/util/Makefile.in, scripts/mkdep.pl:
	Add missing dependency info for cfmakeraw.lo in lib/util/Makefile.in
	From Tim Rice
	[dad149f78]

	* plugins/sudoers/auth/pam.c:
	Be consistent and use __hpux not __hpux__ like the rest of sudo.
	[fb64210f7]

	* lib/logsrv/protobuf-c.c:
	Replace "static inline" with "static __inline" for older compilers.
	[0576eb010]

	* MANIFEST, include/log_server.pb-c.h, lib/logsrv/Makefile.in,
	lib/logsrv/log_server.pb-c.c, logsrvd/eventlog.c,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/sendlog.c,
	plugins/sudoers/iolog_client.c, scripts/unanon:
	Post-process protoc-c files to avoid depending on anonymous unions.
	Based on a patch from Michael Osipov. GitHub issue #60
	[eaa95acb3]

	* src/preload.c:
	Add sudoers_audit to sudo_sudoers_plugin_symbols[] array. Fixes
	loading of sudoers_audit when configured with
	--enable-static-sudoers. GitHub issue #61
	[24b35393e]

2020-09-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Fix copy and paste error; Coverity CID 214191
	[8a8a24560]

	* plugins/sudoers/visudo.c:
	Fix memory leak on error found by the clang 10.01 analyzer.
	[24d5ee589]

	* src/limits.c:
	Use correct size for curlim and maxlim.
	[010634303]

	* configure, configure.ac, doc/Makefile.in:
	Only install man pages for logsrvd and python plugin if we build
	them. GitHub issue #58
	[049430ee5]

	* Makefile.in, configure, configure.ac, doc/Makefile.in:
	Remove obsolete mansrcdir variable, add _SRC suffix to LOGSRV and
	LOGSRVD
	[21a2dce50]

2020-09-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/eventlog.c, plugins/sudoers/logging.c:
	If the command was run in a chroot, add it to the log.
	[fd06e588e]

	* logsrvd/eventlog.c, logsrvd/iolog_writer.c,
	plugins/sudoers/logging.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Log the runcwd not submitcwd in the sudo-style log file. The log
	entry should reflect the working directory the command actually ran
	in.
	[226307591]

	* MANIFEST, plugins/sudoers/regress/testsudoers/test12.out.ok,
	plugins/sudoers/regress/testsudoers/test12.sh:
	Add test of multiple syntax errors. Where possible, the portion of
	the line before the error should be still be interpreted.
	[a51d194a7]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Fix error recovery in a privilege after a ':' separator.
	[578789c56]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Initialize runchroot and runcwd in init_options()
	[fc563286f]

	* MANIFEST:
	Fix path to check_exptilde.c
	[2adde428c]

	* include/log_server.pb-c.h, include/protobuf-c/protobuf-c.h,
	lib/logsrv/protobuf-c.c:
	Update to protobuf-c 1.3.3
	[965ad7448]

2020-09-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h:
	Regenerate the parser with "bison -y" for verbose syntax error
	messages.
	[e3b85171f]

	* NEWS:
	Add chroot/chdir changes.
	[b7130775f]

	* doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/parse_args.c, src/sudo_usage.h.in:
	Support "*" for CWD/CHROOT to allow user to specify cwd or chroot.
	Adds two new command line options, -D (--chdir) and -R (--chroot)
	that can only be used when sudoers sets runcwd or runchroot to "*".
	[1676f0cee]

	* include/sudo_iolog.h, lib/iolog/iolog_fileio.c,
	lib/iolog/iolog_json.c, lib/iolog/iolog_util.c,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.h, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_client.c, plugins/sudoers/iolog_plugin.h:
	Read/write runchroot and runcwd entries in the JSON event log.
	[bd254e104]

	* MANIFEST, plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/ldap_util.c, plugins/sudoers/parse.c,
	plugins/sudoers/regress/sudoers/test24.in,
	plugins/sudoers/regress/sudoers/test24.json.ok,
	plugins/sudoers/regress/sudoers/test24.ldif.ok,
	plugins/sudoers/regress/sudoers/test24.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test24.out.ok,
	plugins/sudoers/regress/sudoers/test24.sudo.ok,
	plugins/sudoers/regress/sudoers/test24.toke.ok:
	Add support for runchroot and runcwd to "sudo -l" and cvtsudoers.
	[9ff960457]

	* MANIFEST, lib/util/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/exptilde.c,
	plugins/sudoers/regress/exptilde/check_exptilde.c:
	Unit test for exptilde
	[86513c78b]

	* MANIFEST, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/exptilde.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/sudoers/test1.toke.ok,
	plugins/sudoers/regress/sudoers/test11.toke.ok,
	plugins/sudoers/regress/sudoers/test12.toke.ok,
	plugins/sudoers/regress/sudoers/test13.toke.ok,
	plugins/sudoers/regress/sudoers/test14.toke.ok,
	plugins/sudoers/regress/sudoers/test15.toke.ok,
	plugins/sudoers/regress/sudoers/test16.toke.ok,
	plugins/sudoers/regress/sudoers/test17.toke.ok,
	plugins/sudoers/regress/sudoers/test18.toke.ok,
	plugins/sudoers/regress/sudoers/test19.toke.ok,
	plugins/sudoers/regress/sudoers/test22.toke.ok,
	plugins/sudoers/regress/sudoers/test3.toke.ok,
	plugins/sudoers/regress/sudoers/test4.toke.ok,
	plugins/sudoers/regress/sudoers/test6.toke.ok,
	plugins/sudoers/regress/sudoers/test8.toke.ok,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers_version.h,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add CHROOT and CWD sudoers options. Also matching runchroot and
	runcwd Defaults settings.
	[6bdfd010d]

2020-08-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	include/sudo_plugin.h,
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout, src/exec.c, src/limits.c, src/sudo.c, src/sudo.h:
	Pass resource limits values to the plugin in user_info[] Sudo resets
	the resource limits early in its execution so the plugin cannot tell
	what the original limits were itself.
	[c4a579cf8]

	* doc/Makefile.in, doc/sudo_logsrvd.man.in,
	doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in,
	lib/logsrv/Makefile.in, lib/util/cfmakeraw.c, lib/util/fchmodat.c,
	lib/util/fstatat.c, lib/util/getdelim.c, lib/util/getusershell.c,
	lib/util/openat.c, lib/util/regress/getdelim/getdelim_test.c,
	lib/util/regress/strsig/strsig_test.c,
	lib/util/regress/strtofoo/strtobool_test.c,
	lib/util/regress/strtofoo/strtoid_test.c,
	lib/util/regress/strtofoo/strtomode_test.c,
	lib/util/regress/strtofoo/strtonum_test.c,
	lib/util/regress/vsyslog/vsyslog_test.c, lib/util/roundup.c,
	lib/util/strtoid.c, lib/util/strtonum.c, lib/util/term.c,
	lib/util/unlinkat.c, logsrvd/Makefile.in, logsrvd/eventlog.c,
	logsrvd/iolog_writer.c, logsrvd/logsrv_util.c,
	plugins/python/Makefile.in, plugins/python/pyhelpers.c,
	plugins/python/pyhelpers.h, plugins/python/python_baseplugin.c,
	plugins/python/python_convmessage.c,
	plugins/python/python_importblocker.c,
	plugins/python/python_loghandler.c,
	plugins/python/python_plugin_approval.c,
	plugins/python/python_plugin_audit.c,
	plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_common.h,
	plugins/python/python_plugin_group.c,
	plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_policy.c,
	plugins/python/sudo_python_debug.c,
	plugins/python/sudo_python_module.c,
	plugins/python/sudo_python_module.h, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/group_plugin.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse_ldif.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/starttime.c,
	plugins/sudoers/tsdump.c, src/exec_monitor.c, src/exec_nopty.c,
	src/limits.c, src/ttyname.c:
	Update copyright year on some files where it was out of date.
	[84e6e6ccf]

2020-08-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in, doc/visudo.man.in,
	doc/visudo.mdoc.in:
	Refer to "syntax error" instead of "parse error". This is the term
	the parser uses when there is an actual error.
	[47ed1721b]

	* plugins/sudoers/visudo.c:
	Remove superfluous "parse error in sudoers near line N" message. The
	sudoers parser now produces better syntax error messages so we don't
	need visudo to print its own.
	[1b300f78d]

	* plugins/sudoers/visudo.c:
	Don't override errorfile and errorlineno set by check_aliases(). Now
	that alias parsing stores the file and line number, visudo can use
	that information to go to the line with an error when re-editing.
	[03eb3d6db]

2020-08-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, lib/util/sig2str.c,
	lib/util/str2sig.c:
	Use sigabbrev_np(3) to access signal abbreviations if supported.
	glibc-2.32 has removed sys_sigabbrev[], we can use sigabbrev_np(3)
	instead.
	[019f1f6b9]

2020-08-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Briefly describe how to restore historical parse error behavior.
	[3235687d9]

	* NEWS, doc/UPGRADE:
	Mention eof-of-line terminator and plugin argument changes.
	[da5afe11b]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in, src/load_plugins.c:
	Fix sudoers_policy plugin options when sudoers_audit is not listed.
	As of sudo 1.9.1 the sudoers file is opened by the audit plugin, not
	the policy plugin. As a result, plugin options set for
	sudoers_policy have no effect. If sudoers_policy has plugin options
	in sudo.conf and sudoers_audit is not listed, move the options to
	sudoers_audit so they will have an effect.
	[a3364c1e9]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/file.c,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.h:
	sudoers error recovery can be configured via an "error_recovery"
	setting. This setting is an argument to the sudoers plugin, similar
	to how sudoers_file, sudoers_mode, sudoers_uid, etc. are
	implemented. The default value is true.
	[609910cc2]

	* plugins/sudoers/regress/testsudoers/test11.sh:
	Make this test pass with bison's verbose error messages.
	[360c26476]

2020-08-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Recover from a syntax error after the ':' in a privilege spec. For
	compound privilege specs, don't throw away the entire thing if we
	have a syntax error, only the part after the error is encountered.
	[c7bc24d40]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/regress/sudoers/test5.toke.ok:
	Add explicit end-of-line matching in the parser for better error
	messages. A valid line in sudoers must end in a newline or EOF.
	Previously, it was possible (though not documented) to have multiple
	user specs on a single line. Now, each must be on its own line.
	[11803027c]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Add NOMATCH token and use it in the lexer for an unmatched pattern.
	The ERROR token is now only used for errors detected by the lexer
	and for which we've already printed an error. This lets us remove
	the hack in sudoerserror() and just check last_token to determine
	whether or not to display the error.
	[d72a48dc7]

2020-08-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Enable error recovery for syntax erorrs that don't end with a
	newline. A syntax error on the last line of a sudoers file with no
	trailing newline is now recoverable.
	[de9c77ba7]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/regress/testsudoers/test11.out.ok:
	Add error recovery for unexpected tokens after include/includedir.
	[94eb14c21]

	* NEWS:
	Sudo 1.9.3 changes so far.
	[9c258de89]

	* configure, configure.ac:
	sudo 1.9.3
	[31d41853b]

2020-08-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/pp:
	Format the macOS minor version number with two digits. This way we
	get consistent 4-digit version numbers even for macOS verions like
	10.3 or 11.0 where the minor number is a single digit. For example.
	10.3 will be formatted as 1003 and 11.0 will be 1100.
	[086aaeb44]

2020-08-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/zlib/infback.c, lib/zlib/inflate.c:
	Add missing ZFALLTHROUGH and use spaces not tabs.
	[cb2eb8ea9]

	* scripts/pp:
	Fix probe for macOS Big Sur "sw_vers -productName" now returns
	"macOS", not "Mac OS X"
	[d12f7ccf2]

2020-08-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/pyhelpers.c, plugins/python/python_plugin_common.h,
	plugins/python/sudo_python_module.c, src/parse_args.c,
	src/selinux.c:
	Fix some warnings from pvs-studio
	[a940a2c78]

	* Makefile.in, lib/iolog/iolog_fileio.c, lib/iolog/iolog_json.c,
	lib/util/aix.c, lib/util/sudo_debug.c, logsrvd/logsrvd.c,
	logsrvd/sendlog.c, plugins/audit_json/audit_json.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/env.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/copy_file.c, src/exec.c, src/exec_common.c, src/exec_monitor.c,
	src/exec_nopty.c, src/exec_pty.c, src/load_plugins.c,
	src/parse_args.c, src/selinux.c, src/sesh.c, src/solaris.c,
	src/sudo.c, src/sudo_edit.c, src/tgetpass.c, src/utmp.c:
	Fix some warnings from pvs-studio
	[961a4afe6]

	* plugins/sudoers/ldap.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sssd.c:
	Use angle quotes when including gram.h and def_data.c. Otherwise, we
	can include the wrong file when doing an out-of-source build when
	configured using --with-devel.
	[fb8ed8ba6]

	* lib/util/fatal.c, lib/util/regress/fnmatch/fnm_test.c,
	logsrvd/logsrvd.c, logsrvd/logsrvd_conf.c, logsrvd/sendlog.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/logging.c, plugins/sudoers/match.c,
	plugins/sudoers/match_command.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/visudo.c,
	src/parse_args.c:
	Move inclusion of compat headers up with the system headers. Now
	that sudo_dso_public is defined in config.h we don't need
	sudo_compat.h before including the compat headers.
	[cbad17a99]

	* config.h.in, configure.ac, include/compat/fnmatch.h,
	include/compat/getaddrinfo.h, include/compat/getopt.h,
	include/compat/glob.h, include/compat/sha2.h, include/sudo_compat.h,
	include/sudo_conf.h, include/sudo_debug.h, include/sudo_digest.h,
	include/sudo_dso.h, include/sudo_event.h, include/sudo_fatal.h,
	include/sudo_json.h, include/sudo_lbuf.h, include/sudo_rand.h,
	include/sudo_util.h, lib/iolog/regress/host_port/host_port_test.c,
	lib/iolog/regress/iolog_json/check_iolog_json.c,
	lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/iolog/regress/iolog_util/check_iolog_util.c,
	lib/util/mksiglist.c, lib/util/mksigname.c,
	lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/getdelim/getdelim_test.c,
	lib/util/regress/getgrouplist/getgrouplist_test.c,
	lib/util/regress/glob/globtest.c,
	lib/util/regress/mktemp/mktemp_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsig/strsig_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/strtofoo/strtobool_test.c,
	lib/util/regress/strtofoo/strtoid_test.c,
	lib/util/regress/strtofoo/strtomode_test.c,
	lib/util/regress/strtofoo/strtonum_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c,
	lib/util/regress/vsyslog/vsyslog_test.c, lib/util/term.c,
	logsrvd/logsrvd.c, logsrvd/sendlog.c,
	plugins/audit_json/audit_json.c, plugins/group_file/group_file.c,
	plugins/group_file/plugin_test.c,
	plugins/python/python_plugin_approval.c,
	plugins/python/python_plugin_audit.c,
	plugins/python/python_plugin_group.c,
	plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_policy.c,
	plugins/sample/sample_plugin.c,
	plugins/sample_approval/sample_approval.c, plugins/sudoers/audit.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/iolog.c,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/parser/check_hexchar.c,
	plugins/sudoers/regress/starttime/check_starttime.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/tsdump.c,
	plugins/sudoers/visudo.c, plugins/system_group/system_group.c,
	src/env_hooks.c, src/regress/noexec/check_noexec.c,
	src/regress/ttyname/check_ttyname.c, src/sesh.c, src/sudo.c,
	src/sudo_noexec.c:
	Rename __dso_public -> sudo_dso_public and move to config.h.
	[985af422d]

	* lib/iolog/host_port.c, lib/iolog/iolog_fileio.c,
	lib/iolog/iolog_json.c, lib/iolog/iolog_path.c,
	lib/iolog/iolog_util.c, lib/util/ttyname_dev.c, logsrvd/eventlog.c,
	logsrvd/iolog_writer.c, logsrvd/logsrv_util.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd_conf.c, logsrvd/sendlog.c,
	plugins/audit_json/audit_json.c, plugins/sample/sample_plugin.c,
	plugins/sample_approval/sample_approval.c, plugins/sudoers/locale.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoreplay.c,
	src/net_ifs.c, src/sesh.c, src/sudo.h:
	We no longer need to include sudo_gettext.h before sudo_compat.h
	[076d0376d]

	* .gitignore, .hgignore:
	Add *.map to the ignore file.
	[4b0783b0b]

2020-08-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/uncrustify.cfg:
	Update to uncrustify 0.71.0
	[4193f5482]

	* doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudoers.man.in,
	doc/sudoers.mdoc.in:
	Mention visudo in sudo(8) and document sudoers error recovery.
	[71a879d90]

2020-08-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/Makefile.in, lib/util/freezero.c,
	lib/util/getentropy.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	scripts/mkdep.pl, src/conversation.c:
	Use OpenBSD-compatible freezero() in place of explicit_bzero() +
	free()
	[ce97ca28d]

	* MANIFEST, config.h.in, configure, configure.ac,
	doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	include/sudo_compat.h, include/sudo_plugin.h, lib/util/Makefile.in,
	lib/util/arc4random.c, lib/util/explicit_bzero.c,
	lib/util/getentropy.c, lib/util/memset_s.c, lib/util/sha2.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, scripts/mkdep.pl,
	src/conversation.c:
	Switch from memset_s() -> explicit_bzero(). memset_s() (and all of
	Annex K) is likely to be removed from the a future version of the
	standard.
	[cef6e3687]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Define YYERROR_VERBOSE for bison and rename COMMENT -> '\n' This
	results in better error messages when there is a parse error
	[8a97150f5]

	* plugins/sudoers/mkdefaults:
	Some minor cleanup. Use ntuples instead of tuple_last Strip leading
	and trailing double quotes using a single gsub() ntuples will never
	be zero so don't bother checking No need to explicitly close files
	in END
	[6702f4ac4]

2020-08-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/event.c, plugins/sudoers/cvtsudoers_pwutil.c,
	plugins/sudoers/defaults.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/logging.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil_impl.c, src/selinux.c:
	Quiet some clang 10 analyzer warnings.
	[fa5d44b8b]

	* logsrvd/sendlog.c:
	Refactor freeing of InfoMessage list into free_info_messages(). Also
	fixes a false positive from the clang analyzer.
	[63dadad9d]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y,
	plugins/sudoers/regress/testsudoers/test11.out.ok,
	plugins/sudoers/regress/testsudoers/test11.sh:
	Require that a @include line end with a newline or EOF. We now parse
	the entire line before reading the include file. This is less
	surprising behavior and results in better error messages.
	[5f5f28ac7]

	* plugins/sudoers/defaults.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/parse.c,
	plugins/sudoers/regress/sudoers/test1.out.ok,
	plugins/sudoers/regress/sudoers/test10.out.ok,
	plugins/sudoers/regress/sudoers/test11.out.ok,
	plugins/sudoers/regress/sudoers/test12.out.ok,
	plugins/sudoers/regress/sudoers/test13.out.ok,
	plugins/sudoers/regress/sudoers/test14.out.ok,
	plugins/sudoers/regress/sudoers/test15.out.ok,
	plugins/sudoers/regress/sudoers/test16.out.ok,
	plugins/sudoers/regress/sudoers/test17.out.ok,
	plugins/sudoers/regress/sudoers/test18.out.ok,
	plugins/sudoers/regress/sudoers/test18.toke.ok,
	plugins/sudoers/regress/sudoers/test19.out.ok,
	plugins/sudoers/regress/sudoers/test2.out.ok,
	plugins/sudoers/regress/sudoers/test20.out.ok,
	plugins/sudoers/regress/sudoers/test21.out.ok,
	plugins/sudoers/regress/sudoers/test22.out.ok,
	plugins/sudoers/regress/sudoers/test23.out.ok,
	plugins/sudoers/regress/sudoers/test3.out.ok,
	plugins/sudoers/regress/sudoers/test4.out.ok,
	plugins/sudoers/regress/sudoers/test4.toke.ok,
	plugins/sudoers/regress/sudoers/test5.out.ok,
	plugins/sudoers/regress/sudoers/test5.toke.ok,
	plugins/sudoers/regress/sudoers/test6.out.ok,
	plugins/sudoers/regress/sudoers/test7.out.ok,
	plugins/sudoers/regress/sudoers/test7.toke.ok,
	plugins/sudoers/regress/sudoers/test8.out.ok,
	plugins/sudoers/regress/sudoers/test8.toke.ok,
	plugins/sudoers/regress/sudoers/test9.out.ok,
	plugins/sudoers/regress/testsudoers/test1.out.ok,
	plugins/sudoers/regress/testsudoers/test10.out.ok,
	plugins/sudoers/regress/testsudoers/test11.out.ok,
	plugins/sudoers/regress/testsudoers/test2.out.ok,
	plugins/sudoers/regress/testsudoers/test3.out.ok,
	plugins/sudoers/regress/testsudoers/test4.out.ok,
	plugins/sudoers/regress/testsudoers/test5.out.ok,
	plugins/sudoers/regress/testsudoers/test6.out.ok,
	plugins/sudoers/regress/testsudoers/test7.out.ok,
	plugins/sudoers/regress/testsudoers/test8.out.ok,
	plugins/sudoers/regress/testsudoers/test9.out.ok,
	plugins/sudoers/regress/visudo/test2.err.ok,
	plugins/sudoers/regress/visudo/test3.err.ok,
	plugins/sudoers/regress/visudo/test8.err.ok,
	plugins/sudoers/regress/visudo/test8.sh,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/visudo.c:
	Display more specific parser error messages when possible.
	[3235e4353]

	* plugins/sudoers/file.c:
	Let the sudoers parser recover after a parse error. We currently
	just discard the line with the error.
	[7c342e586]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/regress/testsudoers/test11.out.ok,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l:
	Keep track of the position of the current token for error messages.
	[91cc68d7f]

2020-08-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/regress/testsudoers/test11.out.ok,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l:
	Store the current line in our own buffer for better error messages.
	[99f43f8a0]

	* plugins/sample_approval/sample_approval.exp:
	Sync sample_approval.exp with sample_approval.c
	[03816d020]

	* plugins/sudoers/Makefile.in:
	regen
	[a8bfeba58]

2020-08-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, etc/sudo.pp, scripts/mkpkg:
	Fix libssl dependency on Debian-based systems. Older systems may
	still have libssl1.0.0, not libssl1.1.
	[c90539015]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add workaround for yyless() not resetting yy_at_bol.
	[2a58b19f9]

2020-08-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Always use a linker script to hide symbols if it is supported. We
	use this even if the compiler has symbol visibility support so we
	will notice mismatches between the exports file and __dso_public
	annotations in the source code.
	[4bc70c02c]

	* MANIFEST, configure, configure.ac,
	plugins/python/python_plugin.exp:
	Rename python_plugin.exp.in -> python_plugin.exp There is nothing
	dynamic in this file.
	[38e28dcbf]

	* MANIFEST, configure, configure.ac,
	plugins/python/python_plugin.exp.in,
	plugins/python/python_plugin_approval_multi.inc,
	plugins/python/python_plugin_audit_multi.inc:
	Add missing python_plugin.exp.in file and remove unneeded
	__dso_public This fixes building the python plugin on systems where
	the compiler doesn't support symbol hiding (but wherethe linker
	does).
	[3b4d4ab8d]

2020-08-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/mkdefaults:
	Use "foo in bar" syntax for testing existence of a key.
	[974f833e1]

	* plugins/sudoers/Makefile.in, plugins/sudoers/toke.c:
	Replace /*FALLTHROUGH*/ in generated code.
	[838255bb8]

2020-08-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/zlib/infback.c, lib/zlib/inflate.c, lib/zlib/zconf.h.in:
	Add ZFALLTHROUGH macro to use instead of /* FALLTHROUGH */ comments.
	[c87a47735]

	* config.h.in, configure, configure.ac, include/sudo_compat.h,
	lib/util/arc4random_buf.c, lib/util/glob.c, lib/util/snprintf.c,
	lib/util/strtonum.c, logsrvd/sendlog.c, plugins/python/pyhelpers.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/check.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/defaults.c,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/match.c, plugins/sudoers/parse_ldif.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudo_printf.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/visudo.c, src/conversation.c, src/exec_monitor.c,
	src/exec_pty.c, src/parse_args.c, src/regress/noexec/check_noexec.c,
	src/tgetpass.c:
	Use the fallthrough attribute instead of /* FALLTHROUGH */ comments.
	[03ad96e44]

2020-07-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/Makefile.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/mkdefaults:
	Rewrite mkdefaults in awk.
	[20fd3b636]

2020-07-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/CONTRIBUTORS:
	Update translators.
	[feebbd6d2]

	* doc/sudo.man.in, doc/sudo.mdoc.in, src/copy_file.c:
	Prompt user before truncating a file to zero bytes. Bug #922.
	[6ee98cf45]

2020-07-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_2 for changeset a411d532a5f4
	[fce3c02d9]

	* :
	merge sudo 1.9.2 from tip
	[1c5fddc04]

2020-07-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt.mo, plugins/sudoers/po/pt.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/ro.mo, plugins/sudoers/po/ro.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/ja.mo,
	po/ja.po, po/ko.mo, po/ko.po, po/pl.mo, po/pl.po, po/pt.mo,
	po/pt.po, po/pt_BR.mo, po/pt_BR.po, po/ro.mo, po/ro.po, po/tr.mo,
	po/tr.po, po/uk.mo, po/uk.po, po/zh_CN.mo, po/zh_CN.po, po/zh_TW.mo,
	po/zh_TW.po:
	Updated translations from translationproject.org
	[bcf96c153]

2020-07-21  kuberlog  <collinalexbell@gmail.com>

	* config.h.in, configure.ac:
	configure.ac: fix documentation about lecture
	[054939c1e]

2020-07-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Handle openssl where there is no separate libcrypto pkgconfig file.
	In this case, just use the full openssl libs to get the sha2
	functions.
	[bd24a322c]

	* INSTALL, configure, configure.ac:
	Ignore --enable-gcrypt if --enable-openssl is also specified.
	[10f8bb639]

2020-07-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac:
	Sudo 1.9.2
	[6a9ed1998]

	* config.h.in, configure, configure.ac:
	Fix some warnings displayed by autoconf 2.69b This fixes the missing
	HAVE_GSSAPI_GSSAPI_H define in config.h.in. TODO: replace
	shadow_funcs variable in function checks with literals
	[be89bdcf7]

2020-07-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/audit.c:
	Initialize sudo_conv and sudo_printf in sudoers_audit_open(). We
	will need them if there is an error parsing sudoers and leaving them
	unset can result in NULL deref. Also set the text domain to
	"sudoers" like we do for the policy and I/O logging open functions.
	Bug #934.
	[ac00a0701]

2020-07-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/ro.mo, plugins/sudoers/po/ro.po, po/it.mo,
	po/it.po, po/ko.mo, po/ko.po, po/ro.mo, po/ro.po:
	Updated translations from translationproject.org
	[1e4ce8525]

2020-07-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.exp:
	Export sudoers_audit symbol for compilers without symbol visibility.
	[b9ad3704d]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document the contents of the log.json file.
	[d6bc75e1e]

	* lib/iolog/iolog_fileio.c:
	Fix typo, runas_uid should be runas_gid.
	[3175049e4]

	* examples/sudo.conf.in:
	Add sudoers_audit line for completeness, matching the documentation.
	When sudoers is loaded as a policy plugin, it will be loaded
	automatically as an audit plugin. Listing it explicitly in the
	default sudo.conf file helps bring attention to the fact that
	sudoers now supports the audit plugin type.
	[90dbdf8f3]

	* plugins/sudoers/defaults.c:
	Add some debugging statements around Defaults lookup.
	[e9a39c149]

	* plugins/sudoers/sudoers.in:
	Replace #includedir with @includedir in default sudoers file.
	[660738139]

2020-06-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, m4/libtool.m4:
	Allow HP-UX share libs and modules to link against static libs.
	hppa64 and ia64 use PIC by default
	[9ef09595f]

2020-06-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Use pkg-config to find the openssl cflags and libs if possible. We
	support linking against static openssl libs too.
	[4cadd5495]

2020-06-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/pp:
	Fix parsing of /etc/redhat-release on RHEL 8. RedHat dropped the
	word "server" from the release name in redhat-release which results
	in the awk script printing the wrong field. Instead of using awk,
	just use sed to pull out the version number immediately following
	the word "release".
	[d04805eec]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen without `scare quotes'
	[820d6ae20]

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.in,
	src/parse_args.c, src/sudo.c:
	Replace or remove use of `scare quotes' These don't translate well
	and look odd in many fonts.
	[df49897bd]

2020-06-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/zlib/infback.c, lib/zlib/inflate.c:
	Add FALLTHROUGH comments to quiet -Wimplicit-fallthrough
	[95ba6645d]

	* src/solaris.c:
	Fix implicit fallthrough warning and add break to default cases.
	[1cec928d1]

	* configure, configure.ac:
	Add -Wimplicit-fallthrough to --enable-warnings if available. Note
	that clang 10 has support for -Wimplicit-fallthrough in C code but
	doesn't recognize lint-style FALLTHROUGH comments like gcc does so
	we can't use it.
	[5e9346d4e]

	* configure, configure.ac, m4/ax_func_snprintf.m4, m4/sudo.m4:
	Fix some warnings from configure test programs.
	[23b1ee2f4]

	* configure, configure.ac:
	Drop old test for -lcposix for ISC Unix.
	[f2dce25ac]

2020-06-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* README:
	Mention sudo-blog announce list.
	[802058b36]

	* NEWS:
	Bugs #860 and #917 were fixed in 1.9.0.
	[e6d6e9ba0]

2020-06-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_1 for changeset 06b47089122a
	[30f37bb12]

	* :
	merge sudo 1.9.1 from tip
	[7ada70e14]

	* plugins/sudoers/po/sudoers.pot:
	regen to fix a typo
	[65edf6344]

	* MANIFEST, lib/iolog/Makefile.in,
	lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c:
	Add regress test to catch swapids() bug when called by
	iolog_mkdtemp()
	[d4739533f]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po, po/ro.mo,
	po/ro.po:
	Updated translations from translationproject.org
	[88393fc96]

2020-06-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in:
	Document the order in which the plugin open/close functions are
	called.
	[ce76c9fe8]

	* NEWS, lib/iolog/iolog_fileio.c:
	Fix a typo that prevented swapids() from restoring the original gid.
	This led to a regression when the iolog_file setting ends in six or
	more X's or when the I/O logs are stored on NFS.
	[bc6e36e94]

2020-06-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_monitor.c, src/exec_pty.c, src/get_pty.c, src/sudo.h,
	src/sudo_exec.h:
	Replace master/slave in code with leader/follower.
	[8bb5aedac]

	* NEWS, doc/sudoers.man.in, doc/sudoers.mdoc.in, examples/sudoers,
	plugins/sudoers/regress/cvtsudoers/sudoers,
	plugins/sudoers/regress/cvtsudoers/sudoers.defs,
	plugins/sudoers/regress/cvtsudoers/test13.out.ok,
	plugins/sudoers/regress/cvtsudoers/test19.out.ok,
	plugins/sudoers/regress/visudo/test6.sh:
	Replace terms master and blacklist in docs and examples.
	[f093cb2e5]

	* NEWS:
	Bug #929
	[4a3aff156]

2020-06-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo_edit.c:
	Clean up temporary sudoedit files on success; Bug #929 This is a
	regression introduced in sudo 1.9.0.
	[bee995059]

2020-06-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	New Romanian translation
	[ddd3b0ece]

2020-06-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Add missing entry for the LDAP/SSSD sudoHost regression. Also add
	new Romanian translation
	[47b2df64c]

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt.mo, plugins/sudoers/po/pt.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/fi.mo,
	po/fi.po, po/fr.mo, po/fr.po, po/hr.mo, po/hr.po, po/pl.mo,
	po/pl.po, po/pt.mo, po/pt.po, po/pt_BR.mo, po/pt_BR.po, po/sv.mo,
	po/sv.po, po/tr.mo, po/tr.po, po/uk.mo, po/uk.po, po/zh_CN.mo,
	po/zh_CN.po, po/zh_TW.mo, po/zh_TW.po:
	Updated translations from translationproject.org
	[7f96e4537]

	* MANIFEST, doc/CONTRIBUTORS, plugins/sudoers/po/ro.mo,
	plugins/sudoers/po/ro.po, po/ro.mo, po/ro.po:
	Romanian translation from translationproject.org.
	[d003da33d]

2020-06-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Fix a typo in the audit string when "sudo -E" is not allowed.
	[852d8c795]

2020-06-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/regress/testhelpers.c:
	Check asprintf() return value.
	[3e12b99ee]

	* scripts/mkpkg:
	Prefer the python3 in /usr/bin on Solaris. The /opt/csw version, if
	it exists, may be a 32-bit version which we can't link with. Also
	handle the case where the /usr/bin/python3 link is missing.
	[a33994584]

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Declare getdelim(3) if it exists in libc but is not prototyped in
	stdio.h. This can happen on systems with a gcc packages that was
	built on and older versions of the OS where getdelim(3) was not
	present.
	[48c2bd000]

	* aclocal.m4, configure, configure.ac:
	For python3-config, only use -I and -L/-l from --cflags and
	--ldflags output. Otherwise we may get other flags used to build
	python that conflict with what sudo uses.
	[17b3f90f7]

	* scripts/mkpkg:
	Build 64-bit binaries and the python package on Solaris 11 and
	above. No longer prefer the Solaris Studio C compiler over gcc, it
	causes issues with the Python plugin.
	[6c881477b]

	* logsrvd/sendlog.c:
	Fix memory leak on error in fmt_info_messages().
	[8da1f3195]

	* NEWS:
	Update for 1.9.1b1
	[3f4de6949]

2020-06-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen for sudo 1.9.1
	[d4e92164f]

2020-06-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h:
	Add basic support for reject and error audit events to sudoers. This
	is only used when logging events from plugins other than sudoers,
	such as an approval plugin. With this change, if an approval plugin
	rejects the command the denial will be logged in the sudoers log
	file using the message from the approval plugin.
	[f047377a0]

	* plugins/sudoers/bsm_audit.c, plugins/sudoers/solaris_audit.c,
	scripts/mkpkg:
	Fix Solaris and BSM audit warnings. Use BSM audit on Illumos, which
	lacks Solaris audit.
	[15d93a1ca]

	* plugins/sudoers/policy.c:
	Track whether the session was opened in sudoers. In
	sudoers_policy_close() only warn about being unable to run the
	command if we actually opened the session (and thus passed all
	approval plugins).
	[a5a721593]

	* src/sudo.c:
	Only display an error in the built-in policy close if command is
	set. If a policy or approval plugin denies the command,
	command_details will not have been filled out.
	[1198dfc93]

	* plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/sssd.c:
	Avoid passing NULL to printf in match debug code for LDAP/SSSD. The
	file name in struct userspec was not set for the LDAP and SSSD
	backends. There is no actual file in this case so set the name to
	LDAP/SSSD. Also add a guard to make sure we don't try to print NULL
	in sudoers_lookup_check() if name is left unset.
	[49e43f580]

2020-06-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/linux_audit.c, plugins/sudoers/linux_audit.h:
	Add missing const to linux_audit_command()'s argv function argument.
	[b40551dc3]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	When converting LDAP to sudoers, ignore entries with no sudoHost
	attribute. Otherwise, sudo_ldap_role_to_priv() will treat a NULL
	host list as as the "ALL" wildcard. This regression was introduced
	in sudo 1.8.23, which was the first version to convert LDAP sudoRole
	objects to sudoers internal data structures. Thanks to Andreas
	Mueller for reporting and debugging this problem.
	[73c1b0430]

2020-06-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in, src/load_plugins.c:
	Load the sudoers module as an audit plugin if loaded as a policy
	plugin. Now that logging of successful commands is performed by
	sudoers as an audit plugin we need to load sudoers_audit if
	sudoers_policy is also loaded. Otherwise, accpted commands will not
	be logged.
	[253e041d3]

	* plugins/sudoers/audit.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/bsm_audit.h,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/policy.c, plugins/sudoers/solaris_audit.c,
	plugins/sudoers/solaris_audit.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Defer logging of the successful command until approval plugins have
	run. This adds audit plugin support to the sudoers module, currently
	only used for accept events. As a result, the sudoers file is now
	initially parsed as an audit plugin.
	[b51948191]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in,
	include/sudo_plugin.h, plugins/audit_json/audit_json.c,
	plugins/python/sudo_python_module.c, src/sudo.c:
	Add support for "accept" audit events sent by the sudo front-end.
	With this change, the sudo front-end will send an "accept" audit
	event to the audit plugins after all the I/O logging plugins have
	been initialized. This can be used by an audit plugin that does not
	care about the result of the individual policy and approval plugins
	and only wants to receive a single "accept" event if all policy and
	approval plugins have succeeded. The plugin_type argument for events
	sent by the front-end is SUDO_FRONT_END (0).
	[f0dc48548]

	* src/exec_pty.c:
	If event loop fails due to ENXIO, remove /dev/tty events and
	recover. This fixes an issue on Solaris 11.4 (and probably others)
	with "sudo reboot" when I/O logging is enabled. Previously, sudo
	would kill the command if it was still running after the event loop
	terminated, leaving the system in a half-dead state.
	[a38070921]

2020-06-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	Don't try to suspend sudo if the user's tty has gone away. Fixes a
	problem on Solaris 11.4 (and possibly others) where sudo continually
	tries to put itself in the background after the user's terminal has
	been revoked.
	[592eb7ab4]

	* src/exec_pty.c:
	Back out WIP code that was mistakenly committed.
	[de31e6d53]

	* scripts/mkpkg:
	Don't enable BSM audit on Solaris 10, it is missing AUE_sudo
	[a0aaae554]

	* src/exec_pty.c, src/get_pty.c:
	On Solaris 11.4 the openpty(3) prototype lives in termios.h.
	[ad70fb4f1]

	* plugins/sudoers/solaris_audit.c:
	Add missing stdlib.h include and fix solaris_audit_failure() error
	return.
	[51dc8ad83]

	* scripts/mkpkg:
	Use Solaris audit for Solaris 11, not BSM audit. BSM audit is no
	longer supported in Solaris 11.4.
	[e1aa76de1]

2020-05-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec.c:
	Check audit plugins for a close function too before execing command
	directly. We cannot exec the command directly if any of the policy
	or audit plugins use a close function.
	[2dd1e1907]

2020-05-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention Bug #927.
	[d9cbb7beb]

2020-05-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, m4/sudo.m4:
	Add basic support for --runstatedir If the user specifies
	--runstatedir but not --with-rundir, use runstatdir as the parent
	directory of the sudo rundir.

	In the future we may deprecate --with-rundir in favor of
	--runstatedir but that will require changes for systems with no
	/var/run directory.
	[026caf008]

	* MANIFEST, NEWS, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y,
	plugins/sudoers/regress/testsudoers/test10.out.ok,
	plugins/sudoers/regress/testsudoers/test10.sh,
	plugins/sudoers/regress/testsudoers/test11.out.ok,
	plugins/sudoers/regress/testsudoers/test11.sh,
	plugins/sudoers/regress/testsudoers/test2.out.ok,
	plugins/sudoers/regress/testsudoers/test2.sh,
	plugins/sudoers/regress/testsudoers/test3.out.ok,
	plugins/sudoers/regress/testsudoers/test3.sh,
	plugins/sudoers/regress/testsudoers/test4.sh,
	plugins/sudoers/regress/testsudoers/test5.sh,
	plugins/sudoers/regress/testsudoers/test8.out.ok,
	plugins/sudoers/regress/testsudoers/test8.sh,
	plugins/sudoers/regress/testsudoers/test9.out.ok,
	plugins/sudoers/regress/testsudoers/test9.sh,
	plugins/sudoers/sudoers_version.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l:
	Add support for @include and @includedir These are less confusing
	than #include and #includedir when the hash character is also the
	comment character.

	This commit also adds real parsing of include directives as opposed
	to the pure lexer approach used previously. As a result, it is now
	possible to include files with spaces by either using a
	double-quoted string or escaping the space characters with a
	backslash.
	[741c6f274]

2020-05-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/iolog_fileio.c:
	In iolog_openat() enable the write bit on pre-existing files if
	needed. This prevents problems caused by the change to strip the
	write bit from the timing file when it is finished.
	[c63ba01e0]

	* plugins/sudoers/visudo.c:
	In visudo check that an include file is regular file before using
	it. Avoids a generic "input in flex scanner failed" error message.
	[7febc3913]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix a memory leak on error when including a file or directory.
	[a41d7b545]

2020-05-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac:
	Sudo 1.9.1
	[5a69831dd]

	* doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	plugins/sudoers/sudoreplay.c:
	Add a follow option (-F) to support replaying a live session. By
	default, sudoreplay will exit when it reaches the end of the timing
	file. With the -F option, it will keep going until the timing file
	is finished and its write bit is cleared.
	[452be1a4c]

	* include/sudo_iolog.h, lib/iolog/iolog_fileio.c:
	Add iolog_clearerr() that acts like clearerr(3). Works for both
	compressed and uncompressed I/O logs.
	[0312292e9]

	* plugins/sudoers/iolog.c:
	Clear the write bit from the I/O log timing file when it is
	complete. This matches the behavior of sudo_logsrvd.
	[2a29daee1]

	* logsrvd/logsrvd.c, logsrvd/sendlog.c:
	Use PACKAGE_VERSION instead of 0.1 as the client and server version.
	[84f0ae0cb]

	* lib/util/Makefile.in, lib/util/aix.c, lib/util/fatal.c,
	lib/util/getusershell.c, lib/util/gidlist.c, lib/util/json.c,
	lib/util/mkdir_parents.c, lib/util/strsignal.c, lib/util/strtoid.c,
	lib/util/strtomode.c, lib/util/strtonum.c, lib/util/sudo_conf.c,
	lib/util/sudo_debug.c:
	Set DEFAULT_TEXT_DOMAIN in lib/util's Makefile not individual .c
	files. We no longer need to include sudo_gettext.h before
	sudo_compat.h
	[8ef5c4cf9]

	* lib/iolog/iolog_fileio.c, lib/iolog/iolog_json.c,
	lib/iolog/iolog_path.c, lib/iolog/iolog_util.c,
	lib/iolog/regress/host_port/host_port_test.c,
	lib/iolog/regress/iolog_json/check_iolog_json.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/iolog/regress/iolog_util/check_iolog_util.c,
	lib/util/digest_gcrypt.c, lib/util/event.c, lib/util/event_select.c,
	lib/util/fnmatch.c, lib/util/getaddrinfo.c, lib/util/getcwd.c,
	lib/util/getdelim.c, lib/util/getgrouplist.c,
	lib/util/getopt_long.c, lib/util/glob.c, lib/util/inet_pton.c,
	lib/util/json.c, lib/util/key_val.c, lib/util/lbuf.c,
	lib/util/locking.c, lib/util/mkdir_parents.c, lib/util/mktemp.c,
	lib/util/parseln.c, lib/util/progname.c, lib/util/pw_dup.c,
	lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/getdelim/getdelim_test.c,
	lib/util/regress/getgrouplist/getgrouplist_test.c,
	lib/util/regress/glob/globtest.c,
	lib/util/regress/mktemp/mktemp_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c,
	lib/util/regress/vsyslog/vsyslog_test.c, lib/util/secure_path.c,
	lib/util/sha2.c, lib/util/sig2str.c, lib/util/snprintf.c,
	lib/util/str2sig.c, lib/util/strndup.c, lib/util/strtobool.c,
	lib/util/sudo_conf.c, lib/util/sudo_debug.c, lib/util/sudo_dso.c,
	lib/util/term.c, lib/util/ttyname_dev.c, lib/util/vsyslog.c,
	plugins/audit_json/audit_json.c, plugins/group_file/getgrent.c,
	plugins/group_file/group_file.c, plugins/python/sudo_python_debug.c,
	plugins/sample/sample_plugin.c,
	plugins/sample_approval/sample_approval.c, plugins/sudoers/alias.c,
	plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/boottime.c,
	plugins/sudoers/check.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/defaults.c,
	plugins/sudoers/editor.c, plugins/sudoers/env.c,
	plugins/sudoers/env_pattern.c, plugins/sudoers/filedigest.c,
	plugins/sudoers/find_path.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gentime.c, plugins/sudoers/getdate.c,
	plugins/sudoers/getdate.y, plugins/sudoers/getspwuid.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/interfaces.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_path_escapes.c, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_conf.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/locale.c, plugins/sudoers/logging.c,
	plugins/sudoers/logwrap.c, plugins/sudoers/match.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/match_command.c,
	plugins/sudoers/match_digest.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse_ldif.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/rcstr.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/parser/check_hexchar.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/starttime.c, plugins/sudoers/strlist.c,
	plugins/sudoers/stubs.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timeout.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/tsdump.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c,
	plugins/system_group/system_group.c, src/conversation.c,
	src/env_hooks.c, src/exec.c, src/exec_common.c, src/exec_monitor.c,
	src/exec_nopty.c, src/exec_pty.c, src/get_pty.c, src/hooks.c,
	src/limits.c, src/load_plugins.c, src/net_ifs.c, src/parse_args.c,
	src/preserve_fds.c, src/regress/noexec/check_noexec.c,
	src/regress/ttyname/check_ttyname.c, src/signal.c, src/sudo.c,
	src/sudo_edit.c, src/sudo_noexec.c, src/tcsetpgrp_nobg.c,
	src/tgetpass.c, src/ttyname.c, src/utmp.c:
	Include string.h unconditionally and only use strings.h for
	strn?casecmp() In the pre-POSIX days BSD had strings.h, not
	string.h. Now strings.h is only used for non-ANSI string functions.
	[446ae3f50]

	* lib/iolog/host_port.c, lib/iolog/iolog_fileio.c,
	lib/iolog/iolog_json.c, lib/iolog/iolog_path.c,
	lib/iolog/iolog_util.c,
	lib/iolog/regress/host_port/host_port_test.c,
	lib/iolog/regress/iolog_json/check_iolog_json.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/iolog/regress/iolog_util/check_iolog_util.c, lib/util/aix.c,
	lib/util/arc4random.c, lib/util/arc4random_buf.c,
	lib/util/arc4random_uniform.c, lib/util/cfmakeraw.c,
	lib/util/closefrom.c, lib/util/digest.c, lib/util/digest_gcrypt.c,
	lib/util/digest_openssl.c, lib/util/dup3.c, lib/util/event_poll.c,
	lib/util/event_select.c, lib/util/fatal.c, lib/util/fchmodat.c,
	lib/util/fnmatch.c, lib/util/fstatat.c, lib/util/getaddrinfo.c,
	lib/util/getcwd.c, lib/util/getdelim.c, lib/util/getgrouplist.c,
	lib/util/gethostname.c, lib/util/getopt_long.c, lib/util/gettime.c,
	lib/util/getusershell.c, lib/util/gidlist.c, lib/util/glob.c,
	lib/util/isblank.c, lib/util/json.c, lib/util/key_val.c,
	lib/util/lbuf.c, lib/util/locking.c, lib/util/logfac.c,
	lib/util/logpri.c, lib/util/memset_s.c, lib/util/mkdir_parents.c,
	lib/util/mksiglist.c, lib/util/mksigname.c, lib/util/mktemp.c,
	lib/util/openat.c, lib/util/parseln.c, lib/util/pipe2.c,
	lib/util/progname.c, lib/util/pw_dup.c, lib/util/reallocarray.c,
	lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/getgrouplist/getgrouplist_test.c,
	lib/util/regress/glob/globtest.c,
	lib/util/regress/mktemp/mktemp_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsig/strsig_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/strtofoo/strtobool_test.c,
	lib/util/regress/strtofoo/strtoid_test.c,
	lib/util/regress/strtofoo/strtomode_test.c,
	lib/util/regress/strtofoo/strtonum_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c,
	lib/util/regress/vsyslog/vsyslog_test.c, lib/util/roundup.c,
	lib/util/secure_path.c, lib/util/setgroups.c, lib/util/sha2.c,
	lib/util/sig2str.c, lib/util/snprintf.c, lib/util/str2sig.c,
	lib/util/strlcat.c, lib/util/strlcpy.c, lib/util/strndup.c,
	lib/util/strsignal.c, lib/util/strsplit.c, lib/util/strtobool.c,
	lib/util/strtoid.c, lib/util/strtomode.c, lib/util/strtonum.c,
	lib/util/sudo_conf.c, lib/util/sudo_debug.c, lib/util/sudo_dso.c,
	lib/util/term.c, lib/util/ttysize.c, lib/util/unlinkat.c,
	lib/util/utimens.c, lib/util/uuid.c,
	plugins/audit_json/audit_json.c, plugins/group_file/getgrent.c,
	plugins/group_file/group_file.c, plugins/group_file/plugin_test.c,
	plugins/python/regress/testhelpers.h,
	plugins/python/sudo_python_debug.h, plugins/sample/sample_plugin.c,
	plugins/sample_approval/sample_approval.c, plugins/sudoers/alias.c,
	plugins/sudoers/audit.c, plugins/sudoers/base64.c,
	plugins/sudoers/boottime.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/check.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/defaults.c,
	plugins/sudoers/digestname.c, plugins/sudoers/editor.c,
	plugins/sudoers/env.c, plugins/sudoers/env_pattern.c,
	plugins/sudoers/file.c, plugins/sudoers/filedigest.c,
	plugins/sudoers/find_path.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gc.c, plugins/sudoers/gentime.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/getspwuid.c, plugins/sudoers/gmtoff.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/hexchar.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_path_escapes.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/logwrap.c,
	plugins/sudoers/match.c, plugins/sudoers/match_command.c,
	plugins/sudoers/match_digest.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse_ldif.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/rcstr.c, plugins/sudoers/redblack.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/parser/check_hexchar.c,
	plugins/sudoers/regress/starttime/check_starttime.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/solaris_audit.c,
	plugins/sudoers/sssd.c, plugins/sudoers/strlist.c,
	plugins/sudoers/stubs.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudo_printf.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers_debug.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timeout.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/timestr.c,
	plugins/sudoers/toke_util.c, plugins/sudoers/tsdump.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c,
	plugins/system_group/system_group.c, src/conversation.c,
	src/copy_file.c, src/env_hooks.c, src/exec.c, src/exec_common.c,
	src/exec_nopty.c, src/get_pty.c, src/hooks.c, src/limits.c,
	src/load_plugins.c, src/openbsd.c, src/parse_args.c, src/preload.c,
	src/preserve_fds.c, src/selinux.c, src/sesh.c, src/signal.c,
	src/solaris.c, src/sudo_edit.c, src/tcsetpgrp_nobg.c,
	src/tgetpass.c, src/utmp.c:
	We no longer need to include headers we don't use for sudo*.h files.
	Previously we needed to include headers required by the various
	sudo*h files. Now those files are more self-sufficient and we should
	only include headers needed by code in the various .c files.
	[dd8846080]

	* include/sudo_compat.h, include/sudo_conf.h, include/sudo_debug.h,
	include/sudo_iolog.h, include/sudo_json.h, include/sudo_util.h,
	plugins/sudoers/sudoers.h:
	Add dependent system includes to make sudo_*.h more standalone. In
	the past we've relied on the various .c files to include the system
	headers that define types that the sudo_*.h headers require. This is
	fragile and can cause issues when includes get re-ordered.
	[d85d370c6]

	* plugins/sudoers/env.c:
	Fix typo in PERLIO_DEBUG (trailing whitespace). This has no effect
	unless env_reset is disabled. From Allan Wirth
	[b66cf649f]

2020-05-16  Dan Robertson  <dan@dlrobertson.com>

	* include/sudo_debug.h:
	Fix includes when building with musl

	Include sys/types.h for mode_t and id_t in sudo_debug.h
	[f4e9e4337]

2020-05-17  Sebastian Rasmussen  <sebras@gmail.com>

	* plugins/sudoers/visudo.c:
	Fix typo in warning message.
	[3d73f05e3]

2020-05-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/mksiglist.h, lib/util/mksigname.h:
	Prefer SIGSYS if SIGUNUSED is defined to the same value. Fixes a
	regress failure on musl libc where SIGSYS and SIGUNUSED share the
	same value.
	[aaea46227]

	* plugins/python/regress/testhelpers.h:
	Add missing sys/wait.h include; fixes a compilation problem on musl
	libc.
	[26b599a5b]

	* lib/iolog/hostcheck.c:
	Add missing sys/types.h include; fixes a compilation problem on musl
	libc.
	[36bbf629b]

	* include/sudo_compat.h:
	Only define WCONTINUED and WIFCONTINUED if neither are already
	defined. Fixes a warning on musl libc where WIFCONTINUED is defined
	in stdlib.h for some reason.
	[ea1226be7]

	* scripts/mkpkg:
	Enable OpenSSL on RHEL 6 too. The version of OpenSSL in RHEL 6 is
	new enough for the log server to use.
	[4ea7ecffd]

	* logsrvd/logsrvd_conf.c:
	Don't print errno for the "TLS not supported" message.
	[1c3946e9b]

2020-05-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, etc/sudo-python.pp:
	Fix macOS bundle IDs for sudo-logsrvd and sudo-python packages
	[3ded5cbd6]

2020-05-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/eventlog.c:
	Add iolog_path to the JSON-format event log
	[f71b56941]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h:
	Rename FLUSHED state to FINISHED This makes more sense when
	receiving event-only logs.
	[d2686dde0]

2020-05-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h:
	Fix handling of connections without associated I/O logs. This fixes
	reject events as well as accept events without the expect_iobufs
	flag set.
	[0337f5b73]

	* logsrvd/sendlog.c:
	Fix handling of accept and reject messages without an I/O log. Only
	set expect_iobufs in AcceptMessage if sending I/O logs. Set state to
	FINISHED immediately after sending a RejectMessage.
	[27355e6aa]

	* doc/sudo_sendlog.man.in, doc/sudo_sendlog.mdoc.in,
	logsrvd/sendlog.c, logsrvd/sendlog.h:
	Add -A and -R options to test logging of accept and reject events.
	If -A is specified, no I/O will be sent, only the accept event. For
	-R, a reject event with the specified reason is sent.
	[d5888e274]

	* configure, configure.ac:
	cfmakeraw(3) is broken on AIX, don't use it there The cfmakeraw(3)
	function exists but does not set VMIN to 1 or VTIME to 0 in c_cc[]
	in struct termios, which makes it useless. The AIX version also
	doesn't clear the CSIZE and PARENB flags from c_cflag.
	[d3b710b0d]

	* NEWS:
	fix pastos
	[af0d84032]

2020-05-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgtags:
	Added tag SUDO_1_9_0 for changeset 706d726a2f8e
	[bb40b2ab7]

	* MANIFEST, include/sudo_iolog.h, include/sudo_util.h,
	lib/iolog/Makefile.in, lib/iolog/host_port.c,
	lib/iolog/regress/host_port/host_port_test.c, lib/util/Makefile.in,
	lib/util/util.exp.in, logsrvd/logsrvd_conf.c,
	plugins/sudoers/iolog_client.c:
	Rename sudo_parse_host_port -> iolog_parse_host_port and mv to
	lib/iolog It is not used outside of the I/O log client and server
	and the host:port syntax may change in the future.
	[83d1bee91]

	* plugins/sudoers/sudoreplay.c:
	Remove duplicate inclusion of time.h
	[fbf25112e]

2020-05-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	logsrvd/logsrvd.c, logsrvd/logsrvd_conf.c,
	plugins/sudoers/iolog_client.c:
	Only enable TLS listener by default if we have a cert for it. We
	want the log server to work with the default configuration. If the
	default certificate path exists, it will be used with the default
	listener. If the user explicitly enabled a TLS listener we always
	attempt to use it. If TLS was specified but no cert file was set,
	the default location will be used (and an error will occur if the
	cert cannot be loaded).
	[fc79cbc31]

2020-05-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen for 1.9.0 final
	[3de3de8b7]

	* logsrvd/Makefile.in:
	regen
	[e9be26c4b]

	* doc/sudo.man.in, doc/sudo.mdoc.in, src/parse_args.c:
	The --preserve-env=list option may be specified more than once.
	[92199e25c]

	* doc/sudo_logsrv.proto.man.in, doc/sudo_logsrv.proto.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Quiet some warnings from igor.
	[deb9ce7d1]

	* MANIFEST, Makefile.in, etc/codespell.exclude,
	etc/codespell.ignore, etc/codespell.skip:
	Plumb in codespell with a "make spell" target.
	[7f2585ed0]

	* configure, configure.ac, install-sh:
	Fix a few more typos.
	[04cb06160]

2020-05-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, doc/sudo.man.in, doc/sudo.mdoc.in, src/parse_args.c:
	Don't allow duplicate values for command line options that take an
	argument. Previously, if multiple instances of the same command line
	option were specified, the last one would be used. This meant that,
	for example, "sudo -u someuser -u otheruser id" would run the
	command as "otheruser". This has the potential to cause problems for
	programs that run sudo with a user-specified command that do not use
	the "--" option to indicate that no more options should be
	processed. While this is a bug in the calling program, there is
	little downside to erroring out when multiple options of the same
	type are specified on the command line. Bug #924
	[4266279c0]

	* NEWS:
	Debian bug #734752
	[24ad424a5]

	* src/sudo.c, src/sudo.h:
	Look up runas user by name, not euid, where possible. Fixes a
	problem when there are multiple users with the same user-ID where
	the PAM session modules could be called with the wrong user name.
	Debian bug #734752
	[4dba87262]

	* src/sesh.c:
	Fix ironic typo in spelling fixes. Bug #925
	[ea99394fc]

	* scripts/pp:
	Sync PolyPkg from upstream.
	[e42afc773]

	* NEWS, TODO, config.h.in, configure.ac,
	doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in,
	etc/sudo.pp, include/compat/getaddrinfo.h, include/sudo_event.h,
	include/sudo_util.h, lib/util/fnmatch.c, lib/util/getaddrinfo.c,
	lib/util/regress/vsyslog/vsyslog_test.c, logsrvd/logsrvd.c,
	plugins/audit_json/audit_json.c,
	plugins/python/example_debugging.py,
	plugins/python/regress/check_python_examples.c,
	plugins/python/regress/testhelpers.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_client.c, plugins/sudoers/parse.h,
	plugins/sudoers/pwutil.h,
	plugins/sudoers/regress/cvtsudoers/test30.sh, scripts/mkdep.pl,
	src/exec.c, src/exec_monitor.c, src/exec_pty.c, src/sesh.c:
	Apply spelling fixes. Fixes from PR #30 (ka7) and Bug #925
	(fossies.org codespell)
	[0cf2e09e0]

2020-05-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in, etc/sudo-python.pp:
	Use the proper python version in the libpython dependency on Debian.
	The configure script already detects the python version, we just
	need to use it.
	[5d3f635ae]

	* plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po, po/ja.mo,
	po/ja.po, po/sv.mo, po/sv.po:
	Updated translations from translationproject.org
	[f261d58af]

	* NEWS:
	Bug #922 and Bug #923
	[a3e94aefa]

2020-05-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_logsrv.proto.man.in, doc/sudo_logsrv.proto.mdoc.in,
	include/log_server.pb-c.h, lib/logsrv/log_server.pb-c.c,
	lib/logsrv/log_server.proto, logsrvd/logsrvd.c, logsrvd/sendlog.c,
	plugins/sudoers/iolog_client.c:
	Add a ClientHello message that client sends to the server. This
	makes it easier to detect a plaintext client sending to a TLS port.
	Without this, the TLS server will be silent as it waits for the
	client to initiate the TLS connection.
	[6901fc97a]

	* logsrvd/sendlog.c, plugins/sudoers/iolog_client.c:
	Better error messages when there is a problem with the TLS
	connection. If SSL_read, SSL_write or SSL_connect fails we can use
	the reason string to let the user know what the problem is.
	[1e765e1ca]

	* logsrvd/logsrvd.c, plugins/sudoers/iolog_client.c:
	Warn about tls errors during startup so the user has a clue. We
	write messages to stderr until we become a daemon.
	[1f8da42f9]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	doc/sudo_sendlog.man.in, doc/sudo_sendlog.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, include/log_server.pb-c.h,
	lib/logsrv/log_server.pb-c.c, lib/logsrv/log_server.proto,
	logsrvd/logsrvd.c, logsrvd/sendlog.c:
	Remove the tls parameter from the ServerHello message. The TLS
	connection is now initiated before ServerHello is received.
	[e5f8214c0]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_client.c, plugins/sudoers/iolog_plugin.h,
	plugins/sudoers/policy.c:
	Adapt sudoers iolog client to log server dual port changes. The TLS
	handshake now occurs before the ServerHello message is read. This
	fixes potential man-in-the-middle attacks and works better with TLS
	1.3.
	[8186b9820]

	* doc/sudo_logsrv.proto.man.in, doc/sudo_logsrv.proto.mdoc.in,
	doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	examples/sudo_logsrvd.conf, logsrvd/logsrv_util.h,
	logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/sendlog.c:
	Use port 30343 for plaintext and port 30344 for TLS. For TLS
	connections we now do the TLS handshake immediately before the
	ServerHello message. This lets the client recieve an alert from the
	server is there is a handshake error after the TLS connect has
	succeeded. It also means that the contents of the ServerHello are
	protected from a man-in-the-middle attack.
	[1659d96c5]

	* include/sudo_util.h, lib/util/host_port.c,
	lib/util/regress/host_port/host_port_test.c, logsrvd/logsrvd_conf.c,
	plugins/sudoers/iolog_client.c:
	Add support for a tls flag in sudo_parse_host_port(). If the string
	"(tls)" appears at the end, the tls flag is set to true and the
	default tls port is used if necessary.
	[b5a317aeb]

	* etc/sudo.pp:
	Fix Debian ldap dependency broken in last commit.
	[82bc05d99]

	* etc/sudo.pp:
	Fix "make package" on Debian when linux_audit is not set.
	[3b078b7a9]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	logsrvd/logsrvd_conf.c:
	Make the default certificate and key paths match the example file.
	[42df431ce]

	* logsrvd/sendlog.c, plugins/sudoers/iolog_client.c:
	Plug memory leaks in sudo_sendlog
	[7d621fc6f]

	* lib/util/event.c, lib/util/event_poll.c, lib/util/event_select.c:
	Handle EAGAIN like we do ENOMEM from poll() and select(). On some
	systems, poll() and select() can return EAGAIN instead of ENOMEM if
	there is a kernel resource shortage. In this case we just re-enter
	the event loop and retry.
	[0460008c5]

2020-05-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Use the --embed when running "python3-config --ldflags" if
	supported. Newer versions of python3-config only include libpython
	in the output when the --embed is used. Otherwise, "python3-config
	--libs" and "python3-config --ldflags" only list the libraries
	python is dependent on and not the python library itself.
	[a212ee64e]

2020-04-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/sendlog.c, plugins/sudoers/iolog_client.c:
	On error, remove the connection with an error without freeing the
	closure. Fixes the final message at the end when there is a network
	error.
	[aba4915b8]

	* lib/util/event_poll.c:
	Do not call poll(2) or ppoll(2) with nfds > RLIMIT_NOFILE. Both
	poll(2) and ppoll(2) will return EINVAL if the nfds function
	argument is larger than the max files per process resource limit.
	Prevent this by limiting the max number entries in the pfds[] array
	to the RLIMIT_NOFILE soft limit.
	[2b1e98657]

2020-04-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_event.h, lib/util/event.c:
	The timeout parameter of sudo_ev_add() should be const.
	[85fe30e49]

2020-04-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_client.c:
	Don't free TLS on error in tls_init(), it is freed in
	client_closure_free(). Fixes a double free on error introduced with
	the TLS state cleanup in client_closure_free().
	[3b7768be7]

	* logsrvd/logsrvd.c:
	Check for tls_config->dhparams_path being non-NULL before using it.
	[2ab8f2a73]

2020-04-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_sendlog.man.in, doc/sudo_sendlog.mdoc.in:
	Document the TLS and test options.
	[79b064139]

	* logsrvd/sendlog.c:
	Allow -t option even without OpenSSL Also add -t to the usage
	message
	[5dec0f763]

	* logsrvd/sendlog.c:
	Use sudo_strtonum() instead of relying on strtoll(). Older, pre-C99,
	systems may not include strtoll() in their C library.
	[0fafcf6ae]

	* include/protobuf-c/protobuf-c.h:
	Allow this to build on systems without stdint.h by using config.h.
	Old, pre-C99, systems may have inttypes.h but not stdint.h.
	[b26e32f39]

2020-04-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, scripts/pp:
	Fix support for pp_systemd_disabled and check for systemd existence.
	On our build schroots we don't have systemctl installed but do have
	the /etc/systemd and /lib/systemd (or /usr/lib/systemd) directories.
	[40f47f013]

	* etc/sudo-logsrvd.pp:
	Set pp_macos_service_id instead of
	pp_macos_default_service_id_prefix. It is only effective to set
	pp_macos_default_service_id_prefix in the indivisual %service
	sections (and not %set) so we may was well use pp_macos_service_id
	which includes the service name.
	[8c5befaae]

	* etc/sudo-logsrvd.pp:
	Set launchd service id prefix to "ws.sudo." The default value in
	PolyPkg is "com.quest.rc."
	[c70606c3c]

	* scripts/pp:
	Fix macOS package creation.
	[d5b06ff7f]

2020-04-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_client.c:
	Shut down the TLS connection cleanly in client_closure_free(). Also
	free the SSL data which is part of the client closure.
	[557be2b0b]

	* src/exec_monitor.c, src/exec_nopty.c, src/selinux.c, src/sudo.c,
	src/sudo.h, src/sudo_edit.c, src/sudo_exec.h:
	Fix sudoedit when running with SELinux RBAC mode. We can't use
	run_command() to run sesh, that will use the sudo event loop (and
	might run it in a pty!). There's no need to relabel the tty when
	copying files. Get the path to sesh from sudo.conf.

	Currently, for SELinux RBAC, the editor runs with the target user's
	security context. This defeats the purpose of sudoedit. Fixing that
	requires passing file descriptors between the main sudo process
	(running with the invoking user's security context) and sesh
	(runnning with the target user's security context).
	[76bf9a73b]

	* MANIFEST, src/Makefile.in, src/copy_file.c, src/sesh.c,
	src/sudo_edit.c, src/sudo_exec.h:
	Refactor the sudoedit code to copy files so it can be shared. The
	SELinux sudoedit code now extends the destination file the same way
	the non-SELinux version does.
	[009876bf3]

	* src/sudo_edit.c:
	Do not remove sudoedit temporary files if we cannot overwrite the
	real file. The warning message says the files were preserved but
	they actually got removed.
	[0bd39701b]

	* scripts/pp:
	Only remove the systemd unit service file if we copied it manually.
	If the service file was installed as part of the package it will be
	removed automatically when the package is uninstalled.
	[d22800edd]

	* include/compat/glob.h, lib/util/glob.c:
	Make gl_pathc, gl_matchc and gl_offs size_t in glob_t to match
	POSIX.
	[99129ba41]

2020-04-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_logsrv.proto.man.in, doc/sudo_logsrv.proto.mdoc.in:
	Document TLS settings in ServerHello
	[c161f68b4]

2020-04-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo_edit.c:
	Extend the original file before to the new size before updating it.
	Instead of opening the original file for writing w/ tuncation, we
	first extend the file with zeroes (by writing, not seeking), then
	overwrite it. This should allow sudo to fail early if the disk is
	out of space before it overwrites the original file.
	[adb4360c4]

	* src/sudo.c:
	I/O log plugins should be closed *before* the policy plugin, not
	after.
	[2a60816f7]

	* plugins/sudoers/set_perms.c:
	Fix typo
	[af4eb80df]

	* plugins/sudoers/iolog.c:
	Only display error string once on I/O error. We already include the
	error string in the format so no need to use errno too.
	[132b943a2]

	* plugins/sudoers/iolog.c, plugins/sudoers/policy.c:
	Free passwd and group caches in I/O plugin after log_warning(), not
	before. The logging functions may try to use the cache via
	set_perms(PERM_ROOT).
	[ae7bb1233]

2020-04-17  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/logsrvd.c:
	add missing shudown of TLS connection
	[481427f9f]

2020-04-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp, scripts/pp:
	Disable systemd support on Linux systems that don't use it.
	[a89ddb63f]

2020-04-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	1.9.0 final
	[024b146d0]

	* etc/sudo-logsrvd.pp, scripts/pp:
	Update PolyPkg from my branch with systemd support.
	[1034d3f5b]

2020-04-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/example_conversation.py,
	plugins/python/example_io_plugin.py,
	plugins/python/regress/testdata/check_example_io_plugin_fails_with_p
	ython_backtrace.stdout:
	If the signal.Signals enum is not present, search the dictionary.
	The Signals enum was added in Python 3.5. If it is not present we
	need to iterate over the dictionary items, looking for signal name
	to number mappings. Fixes the signal tests with Python 3.4.
	[75b9a26a3]

	* plugins/python/regress/check_python_examples.c,
	plugins/python/sudo_python_module.c:
	Python dictionaries are sparse so we cannot use pos as an index.
	When converting sudo options from a dictionary to a tuple we need to
	track the current index into the tuple separately from the position
	of the dictionary entry.
	[57cef10ce]

2020-04-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo-logsrvd.pp:
	Fix handling of /etc/sudo_logsrvd.conf in the sudo-logsrvd package.
	For rpm and deb we include the file directly and mark it volatile.
	For all others we copy it in the postinstall script from the example
	dir if the file doesn't already exist.
	[324b23724]

	* scripts/mkpkg:
	Check for the Sun Studio C compiler on Solaris under /opt. Also
	intialize with_python to false.
	[eebe68233]

	* po/sudo.pot:
	regen
	[6d32858b4]

	* lib/util/parseln.c:
	Explicitly include stdio.h for getdelim(3)
	[3bf417227]

	* logsrvd/logsrvd.c:
	Reload sudo.conf upon SIGUP This makes it possible to update the
	Debug settings in sudo.conf and have them take effect on reload.
	[ce92674cc]

	* logsrvd/logsrvd.c, logsrvd/sendlog.c,
	plugins/sudoers/iolog_client.c:
	Store the result of ERR_get_error() so we can use it for both warn
	and debug. Otherwise, only the debug framework gets the actual error
	and the user won't see the problem.
	[69b6783be]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c:
	Disable IPv4-mapped IPv6 addresses in the listener. Also store the
	host + port string and use it in error messages.
	[18ff60f6f]

	* configure, configure.ac, examples/Makefile.in:
	Install the example sudo_logsrvd.conf unless one already exists
	[55eb0a633]

2020-04-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* examples/sudo_logsrvd.conf:
	Make the path to logsrvd_cert.pem match the documentation.
	[700becabc]

	* etc/sudo-logsrvd.pp, logsrvd/logsrvd.c:
	Create the pid file parent directory if it doesn't already exist.
	Also package the run directory in the sudo_logsrvd PolyPkg file.
	[e86106f2e]

	* configure, configure.ac:
	Sudo 1.9.0rc1
	[dfd5a8877]

	* scripts/mkpkg:
	Build python packages where possible.
	[d6684b851]

	* MANIFEST, Makefile.in, configure, configure.ac,
	etc/sudo-logsrvd.pp, etc/sudo-python.pp, etc/sudo.pp:
	Split sudo_logsrvd and the python plugin into their own packages.
	[0a10c702b]

	* etc/sudo.pp:
	Remove bits for Tru64 kit-style packages
	[ab18c22ab]

	* plugins/python/Makefile.in, plugins/sudoers/Makefile.in,
	scripts/mkdep.pl:
	Handle dependencies for .h files in the same directory as the
	source. Fixes missing header dependencies for the sudoers and python
	plugins.
	[6a2b5fd82]

	* plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c:
	Increase the maximum delay again for slower systems. Otherwise we
	may get a spurious test failure.
	[5b488f313]

	* plugins/python/pyhelpers.c, plugins/python/python_plugin_common.c,
	plugins/python/regress/check_python_examples.c,
	plugins/python/regress/iohelpers.c,
	plugins/python/regress/plugin_approval_test.py,
	plugins/python/regress/testdata/check_example_debugging_c_calls@diag
	.log,
	plugins/python/regress/testdata/check_example_debugging_c_calls@info
	.log,
	plugins/python/regress/testdata/check_example_debugging_py_calls@dia
	g.log,
	plugins/python/regress/testdata/check_example_debugging_py_calls@inf
	o.log,
	plugins/python/regress/testdata/check_example_policy_plugin_validate
	_invalidate.log,
	plugins/python/regress/testdata/check_loading_fails_wrong_classname.
	stderr,
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout, plugins/python/regress/testhelpers.h:
	Make most python tests pass with Python 3.4 Dictionary order is not
	stable in Python < 3.6 so we need to sort by key to have consistent
	results. The LogHandler output is also different on older Python
	versions. Also, don't stop running python tests after the first
	error.
	[cd74b83c2]

	* plugins/python/regress/iohelpers.h,
	plugins/python/regress/testdata/check_example_debugging_c_calls@info
	.log,
	plugins/python/regress/testdata/check_example_debugging_plugin@info.
	log, plugins/python/regress/testhelpers.c:
	Use regex to match __init__.py instead of hacking it in
	verify_log_lines()
	[fa5025a56]

	* plugins/python/regress/iohelpers.h,
	plugins/python/regress/testdata/check_example_group_plugin_is_able_t
	o_debug.log,
	plugins/python/regress/testdata/check_example_io_plugin_command_log.
	stored,
	plugins/python/regress/testdata/check_example_io_plugin_command_log_
	multiple1.stored,
	plugins/python/regress/testdata/check_example_io_plugin_command_log_
	multiple2.stored,
	plugins/python/regress/testdata/check_example_io_plugin_failed_to_st
	art_command.stored,
	plugins/python/regress/testdata/check_example_io_plugin_fails_with_p
	ython_backtrace.stderr,
	plugins/python/regress/testdata/check_loading_fails_wrong_path.stder
	r,
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout,
	plugins/python/regress/testdata/check_python_plugins_do_not_affect_e
	ach_other.stdout, plugins/python/regress/testhelpers.h:
	Use regular expressions when matching expected and actual text.
	[a77ef93f8]

	* plugins/python/python_plugin_common.c,
	plugins/python/regress/testdata/check_loading_fails_missing_classnam
	e.stderr:
	Sort the list of possible plugins before printing it. This gives
	more reproducible error messages for the tests.
	[8a2c0d784]

	* plugins/python/example_approval_plugin.py,
	plugins/python/example_audit_plugin.py,
	plugins/python/example_group_plugin.py,
	plugins/python/example_io_plugin.py,
	plugins/python/example_policy_plugin.py,
	plugins/python/regress/testdata/check_example_io_plugin_fails_with_p
	ython_backtrace.stdout:
	Avoid using typing annotations so tests run with Python 3.4.
	[02a117f33]

	* MANIFEST:
	Include all python plugin files in MANIFEST, not the directory
	itself.
	[ee868776d]

2020-04-06  Robert Manner  <robert.manner@balabit.com>

	* logsrvd/eventlog.c:
	logsrvd/eventlog.c: add a newline after each log message for logfile
	output
	[468a5d228]

	* lib/iolog/iolog_fileio.c:
	lib/iolog/iolog_fileio.c: do not call fchown on invalid fd

	Fixes the warning in the log: iolog_write_info_file_json: unable to
	fchown 0:0 /var/log/...: Bad file descriptor
	[8f0370cd8]

	* logsrvd/iolog_writer.c:
	logsrvd/iolog_writer.c: treat runuid, rungid 0 as valid (usually
	==root)
	[ace8e1895]

2020-04-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_client.c:
	Don't pass a NULL submitcwd or ttyname value to the server. It is
	possible for the cwd and/or tty to be missing. If we send a NULL
	pointer to the server where it expects a string the AcceptMessage
	will fail to parse.
	[e31e0c4d3]

	* plugins/python/python_plugin_common.c:
	Fall back to using Py_Finalize() for Python version < 3.6
	[93f5e1be3]

	* include/sudo_plugin.h:
	Disable -Wstrict-prototypes for sudo_hook_fn_t typedef.
	[4e44bd46f]

2020-04-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* po/eo.mo, po/eo.po, po/sr.mo, po/sr.po:
	Updated translations from translationproject.org
	[725f9f652]

2020-04-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* examples/Makefile.in:
	Install example sudo_logsrvd.conf file
	[4ee7ae647]

2020-04-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Fixed Debian bugs #571621, #596631 and #669687
	[79d3bd822]

2020-04-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Make it clear in the sudoers grammar that sudoedit needs file args.
	Debian bug #571621
	[66c8f69f8]

2020-04-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.man.in, doc/sudo.mdoc.in, plugins/sudoers/env.c:
	Truncate the command args at 4096 chars when formatting
	SUDO_COMMAND. We have to limit the length of SUDO_COMMAND to avoid
	getting E2BIG from execve(2) for very long argument vectors. The
	command's environment also counts against the ARG_MAX limit. Debian
	bug #596631
	[1d008b92f]

	* plugins/sudoers/auth/pam.c:
	Do not try to delete creds we did not set. If pam_setcred() fails
	when opening the PAM session, we don't want to call it with
	PAM_DELETE_CRED when closing the session.
	[9b8cb1a57]

2020-04-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/API, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/check.c,
	plugins/sudoers/sudoers.h:
	Add a force flag to sudo_auth_cleanup() to force immediate cleanup.
	This is used for PAM authentication to make sure pam_end() is called
	via sudo_auth_cleanup() when the user authenticates successfully but
	sudoers denies the command. Debian bug #669687
	[ec3fdd3aa]

	* plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c:
	Increase the maximum delay for slower systems. Otherwise we may get
	a spurious test failure.
	[5e95c24d8]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in:
	Document when cwd_optional was added.
	[835984adc]

2020-03-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	plugins/sudoers/policy.c, src/exec.c, src/sudo.c, src/sudo.h:
	Add cwd_optional to command details and enable it in the sudoers
	plugin. If cwd_optional is set to true, a failure to set the cwd
	will be a warning, not an error, and the command will still run.
	Debian bug #598519
	[93aa9f9e9]

	* doc/sudo.man.in, doc/sudo.mdoc.in:
	The policy close function is responsible for closing the PAM
	session.
	[9dea4bb24]

	* .clang-format:
	Config file for clang-format 8.x and higher based on webkit style.
	This approximates what I want the sudo coding style to look like.
	Only deviations from webkit style are included.
	[8b35753a2]

	* src/exec_pty.c:
	Don't kill the command just because the loop exited unexpectedly. We
	currently have no good way to distinguish between an error executing
	the command and an error while the command is running.

	In the future, we should have additional status codes so we can tell
	what type of condition caused the loop to exit.

	For now, only kill the command if cstat is left uninitialized.
	[3221c8b4d]

2020-03-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c:
	Write process ID as an unsigned int (with a cast). On Solaris, pid_t
	may be typedef'd as a long but the actual range is 32 bits at most.
	[c122e9bf6]

	* doc/LICENSE:
	Add license info for a few other files. These are all ISC licensed
	but it is still best to have them all listed in one place.
	[d4b2db907]

	* plugins/sudoers/po/ca.mo, plugins/sudoers/po/ca.po,
	plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt.mo, plugins/sudoers/po/pt.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/ca.mo,
	po/ca.po, po/cs.mo, po/cs.po, po/de.mo, po/de.po, po/eo.mo,
	po/eo.po, po/fi.mo, po/fi.po, po/fr.mo, po/fr.po, po/hr.mo,
	po/hr.po, po/it.mo, po/it.po, po/ja.mo, po/ja.po, po/ko.mo,
	po/ko.po, po/nb.mo, po/nb.po, po/pl.mo, po/pl.po, po/pt.mo,
	po/pt.po, po/pt_BR.mo, po/pt_BR.po, po/sv.mo, po/sv.po, po/tr.mo,
	po/tr.po, po/uk.mo, po/uk.po, po/vi.mo, po/vi.po, po/zh_CN.mo,
	po/zh_CN.po, po/zh_TW.mo, po/zh_TW.po:
	Updated translations from translationproject.org
	[5b1de6cfc]

	* plugins/sudoers/po/sudoers.pot:
	Update sudoers.pot with json parser warnings.
	[0f0d03a57]

	* etc/sudo.pp:
	Add sudo_logsrvd as a service so it gets started at boot.
	[891872336]

	* configure, doc/sudo_logsrvd.conf.man.in,
	doc/sudo_logsrvd.conf.mdoc.in, doc/sudo_logsrvd.man.in,
	doc/sudo_logsrvd.mdoc.in, examples/sudo_logsrvd.conf,
	logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	m4/sudo.m4, pathnames.h.in:
	Create a pidfile for sudo_logsrvd when not run with the -n flag.
	[f908ddd1b]

	* logsrvd/logsrvd.c:
	sudo_logsrvd now exits with an error if it cannot open any listen
	sockets.
	[1b90f6560]

	* NEWS:
	Update NEWS for 1.9.0b5 changes
	[baccc0f5c]

	* lib/iolog/iolog_json.c:
	Simply the JSON parsing code a bit. We can use a single stack for
	nested objects and arrays. There is also no need to track the
	current object and array separately. This allows us to remove the
	array special case when assigning a value.
	[01ceba044]

	* MANIFEST, lib/iolog/Makefile.in, lib/iolog/iolog_json.c,
	lib/iolog/iolog_json.h,
	lib/iolog/regress/iolog_json/check_iolog_json.c,
	lib/iolog/regress/iolog_json/test1.in,
	lib/iolog/regress/iolog_json/test2.in,
	lib/iolog/regress/iolog_json/test2.out.ok,
	lib/iolog/regress/iolog_json/test3.in, lib/util/json.c:
	Add tests for the simple json parser.
	[3cd9cbbad]

	* include/sudo_json.h, lib/iolog/iolog_fileio.c, lib/util/json.c,
	logsrvd/eventlog.c, logsrvd/iolog_writer.c, logsrvd/logsrvd.h,
	plugins/audit_json/audit_json.c:
	Do not use JSON_ARRAY with sudo_json_add_value()
	[cffda82e2]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c:
	Create files for check_iolog_plugin in the build dir, not src dir.
	[f24dacdee]

	* logsrvd/iolog_writer.c, logsrvd/logsrvd.h:
	Store runenv in the I/O log info file too.
	[9b144069f]

	* MANIFEST, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	include/sudo_iolog.h, lib/iolog/Makefile.in, lib/iolog/iolog_json.c,
	lib/iolog/iolog_util.c, plugins/sudoers/sudoreplay.c:
	Parse I/O JSON info file in JSON if present. The JSON version
	includes more information than the original "log" file in the I/O
	log dir.
	[056173e57]

	* include/sudo_iolog.h, lib/iolog/Makefile.in,
	lib/iolog/iolog_fileio.c, lib/iolog/iolog_util.c,
	logsrvd/eventlog.c, logsrvd/iolog_writer.c, logsrvd/logsrvd.h,
	logsrvd/sendlog.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/iolog.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoreplay.c:
	Write an extended I/O info log in JSON format. This will be used by
	sudoreplay if it exists to get more information about the command
	being replayed.
	[ea9b711a7]

	* include/sudo_iolog.h, lib/iolog/iolog_util.c, logsrvd/sendlog.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoreplay.c:
	iolog_parse_loginfo() now opens the log file itself.
	[a644c1d1d]

	* .gitignore, .hgignore:
	Ignore __pycache__ directories.
	[9ab8efa8f]

	* lib/util/getusershell.c, lib/util/host_port.c, lib/util/roundup.c,
	logsrvd/iolog_writer.c, logsrvd/logsrv_util.c,
	logsrvd/logsrv_util.h, logsrvd/logsrvd.c, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c, logsrvd/sendlog.c, logsrvd/sendlog.h,
	plugins/sudoers/iolog_client.c, plugins/sudoers/iolog_plugin.h:
	Some new source files got created with my old email address.
	[5034ea91b]

2020-03-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* scripts/mkpkg:
	Enable OpenSSL on systems that can support it.
	[a46d8bd11]

2020-03-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, logsrvd/logsrvd.c:
	Add configure check for SSL_CTX_get0_certificate(). Dummy out
	verify_server_cert() if it is not present to allow building on older
	OpenSSL versions. Rewriting this to work with old OpenSSL is not
	worth the trouble.
	[84d9c7b24]

	* lib/iolog/hostcheck.c:
	Include stdlib.h for malloc(3) prototype. We shouldn't rely on it to
	be implicitly included via OpenSSL headers.
	[d75d36b68]

2020-03-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c:
	Only set errstr for plugin API version 1.15 and above.
	[390ace925]

2020-03-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Sudo 1.8.31p1
	[26097a442]

	* src/limits.c:
	Ignore a failure to restore the RLIMIT_CORE resource limit. Linux
	containers don't allow RLIMIT_CORE to be set back to RLIM_INFINITY
	if we set the limit to zero, even for root. This is not a problem
	outside the container.
	[712afe031]

2020-03-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[7ace49a33]

	* include/sudo_event.h, lib/util/event.c:
	Add SUDO_EV_MASK to mask off invalid event values. Now used by
	sudo_ev_init() to avoid bogus events.
	[d83c09fb6]

2020-03-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/python/regress/iohelpers.c,
	plugins/python/regress/testhelpers.c:
	Avoid using sprintf(), vsprintf(), strcat(), and strncat(). It is
	less error-prone to use functions with a return value that indicates
	when truncation ocurred.
	[a23048bbb]

	* plugins/sudoers/match_digest.c:
	Work around two Coverity false positives; CID 208813 208815
	[1015b493b]

	* logsrvd/logsrvd.c:
	Fix potential use-after-free; Coverity CID 208814
	[b308b63b5]

	* plugins/python/regress/iohelpers.h,
	plugins/python/regress/testdata/check_example_debugging_c_calls@info
	.log,
	plugins/python/regress/testdata/check_example_debugging_plugin@info.
	log, plugins/python/regress/testhelpers.c:
	Don't hard-code path to logging/__init__.py or line numbers. Allows
	python plugin tests to success on versions other than 3.7.
	[ec78f0689]

	* doc/LICENSE:
	Add copyright for the Python bindings.
	[6c1b155fe]

	* plugins/sudoers/match_command.c:
	Fix typo introduced on systems with O_PATH or O_EXEC
	[277b297ae]

	* NEWS:
	Update for sudo 1.9.0
	[d31689211]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/match.c, plugins/sudoers/match_command.c,
	plugins/sudoers/regress/sudoers/test14.in,
	plugins/sudoers/regress/sudoers/test14.json.ok,
	plugins/sudoers/regress/sudoers/test14.ldif.ok,
	plugins/sudoers/regress/sudoers/test14.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test14.out.ok,
	plugins/sudoers/regress/sudoers/test14.toke.ok,
	plugins/sudoers/sudoers_version.h:
	Allow the ALL keyword to be specified with a digest list.
	[ea8445e36]

	* plugins/sudoers/ldap_util.c, plugins/sudoers/parse_ldif.c:
	A struct member of type ALL should have its name field set to NULL.
	[3edd30a27]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/ldap_util.c, plugins/sudoers/match.c,
	plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c,
	plugins/sudoers/parse.h, plugins/sudoers/regress/sudoers/test14.in,
	plugins/sudoers/regress/sudoers/test14.json.ok,
	plugins/sudoers/regress/sudoers/test14.ldif.ok,
	plugins/sudoers/regress/sudoers/test14.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test14.out.ok,
	plugins/sudoers/regress/sudoers/test14.toke.ok,
	plugins/sudoers/sudo_ldap.h:
	Allow a list of digests to be specified for a command.
	[4eca44324]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Allow Cmd_Alias in addition to Cmnd_Alias. Some people find using
	Cmd_Alias more natural.
	[8c08f5ef0]

2020-03-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/auth/pam.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c:
	Add pam_ruser and pam_rhost sudoers flags.
	[e1df9d1dc]

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/sendlog.c,
	logsrvd/sendlog.h:
	Store the event base in the client closure. Explicitly passing the
	event base removes the need to set a default base.
	[f561e2caf]

	* plugins/sudoers/iolog.c:
	Revert change to initialize io_operations earlier. Instead, check
	io_operations.open for NULL which is the case for "sudo -V". Also
	move the early return in sudoers_io_open() for "sudo -V" until after
	we have initialized debugging.
	[bf2bc931a]

2020-02-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog.c:
	Initialize io_operations earlier.
	[f590f81b3]

2020-02-27  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/example_debugging.py,
	plugins/python/regress/testdata/check_example_debugging_c_calls@diag
	.log,
	plugins/python/regress/testdata/check_example_debugging_c_calls@info
	.log,
	plugins/python/regress/testdata/check_example_debugging_plugin@err.l
	og,
	plugins/python/regress/testdata/check_example_debugging_plugin@info.
	log:
	plugins/python/regress: add a test and example of using the python
	logger
	[6c9515496]

	* MANIFEST, doc/sudo_plugin_python.man.in,
	doc/sudo_plugin_python.mdoc.in, plugins/python/Makefile.in,
	plugins/python/python_baseplugin.c,
	plugins/python/python_convmessage.c,
	plugins/python/python_importblocker.c,
	plugins/python/python_loghandler.c,
	plugins/python/python_plugin_common.c,
	plugins/python/sudo_python_module.c,
	plugins/python/sudo_python_module.h:
	plugins/python/sudo_module: add sudo.LogHandler

	so python log system can be used with sudo logsystem. Loggers use it
	by default (the handler is set on the root logger). If that is not
	the intent, it can be overridden explicitly.
	[c039a99c1]

2020-02-26  Robert Manner  <robert.manner@balabit.com>

	* doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in,
	plugins/python/python_plugin_common.c,
	plugins/python/regress/check_python_examples.c,
	plugins/python/regress/testdata/check_loading_fails_missing_classnam
	e.stderr,
	plugins/python/regress/testdata/check_loading_succeeds_with_missing_
	classname.stdout:
	plugins/python: autodetect ClassName field

	If "ClassName" is not specified, load the one and only sudo.Plugin
	from the module (if so), otherwise display which plugins are
	available from which the system admin can choose.
	[34b4bb72d]

	* doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in,
	plugins/python/Makefile.in, plugins/python/python_plugin_common.c:
	plugins/python/plugin_common: add a default search path for python
	plugins

	If the ModulePath is relative, assume it is under
	"/usr/local/libexec/sudo/python" or wherever the sudo plugins are in
	a "python" subdirectory.
	[5c96b4407]

2020-02-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_client.c:
	Mark up some remaining TODOs
	[34972e834]

	* src/conversation.c:
	Sudo's -S option should override the SUDO_CONV_PREFER_TTY flag.
	[9c90f592c]

	* plugins/python/pyhelpers.c, plugins/python/python_plugin_policy.c,
	plugins/python/sudo_python_module.c:
	Use C99 __func__ instead of gcc-specific __PRETTY_FUNCTION__
	[de9a143a3]

2020-02-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL, Makefile.in, config.h.in, configure, configure.ac,
	lib/iolog/iolog_fileio.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_plugin.h, plugins/sudoers/sudoers.c:
	Add --disable-log-server and --disable-log-client configure options.
	These can be used to optionally disable building sudo_logsrvd and
	support for remote I/O logging in the sudoers plugin respectively.
	[5635c22f6]

2020-02-26  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/regress/check_python_examples.c,
	plugins/python/regress/testdata/check_example_audit_plugin_version_d
	isplay.stdout,
	plugins/python/regress/testdata/check_example_debugging_py_calls@inf
	o.log,
	plugins/python/regress/testdata/check_example_io_plugin_version_disp
	lay_full.stdout,
	plugins/python/regress/testdata/check_example_policy_plugin_version_
	display_full.stdout,
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout:
	plugins/python/regress: update tests for show_version changes

	- plugin->show_version is not marked NULL any more. - if verbose, it
	also displays which python class was loaded from which file
	[9cc46f115]

	* plugins/python/python_plugin_approval.c,
	plugins/python/python_plugin_audit.c,
	plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_common.h,
	plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_policy.c:
	plugins/python: make show_version display the plugin in verbose mode

	Before it only displayed the plugin version, now it also displays
	which python plugin is loaded to be more useful.
	[f387cdf53]

	* plugins/python/python_plugin_approval.c,
	plugins/python/python_plugin_common.c:
	plugins/python/approval: fix show_version crash when it is not
	implemented

	For approval plugins show_version is not optional.
	[38fc37b21]

2020-02-21  Robert Manner  <robert.manner@balabit.com>

	* doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in:
	doc/sudo_plugin_python: add approval plugin to supported plugins
	[e588879cf]

2020-02-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c:
	Avoid calling sudoers_policy_exec_setup() on error. We only want to
	pass the execution environment back for commands that are accepted
	or rejected. Also avoid potentially freeing the wrong pointer when
	garbage collection is enabled.
	[f6a264e71]

2020-02-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/eventlog.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c:
	Open event log at config time instead of open/close for each entry.
	If logging via syslog, do the openlog() at config time instead. We
	still lock the log file prior to writing to it but unlock
	immediately after.
	[f40b4c288]

	* lib/util/locking.c:
	Fix unlocking of an entire file with lockf(). Since lockf() uses the
	files's current offset, we need to seek to the start of the file to
	unlock the entire file.
	[7e5641bc7]

2020-02-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/util.exp.in:
	Add sudo_json_free_v1 to symbol exports file too.
	[1b930b585]

	* lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/sudoers/Makefile.in:
	Regenerate dependencies to match the recent JSON changes.
	[4b4db9694]

	* plugins/python/python_convmessage.c:
	Add missing check for calloc(3) failure.
	[4d1454eba]

2020-02-19  Robert Manner  <robert.manner@balabit.com>

	* doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in:
	doc/sudo_plugin_python: document approval plugin and PluginReject
	[95dce8cbe]

	* plugins/python/sudo_python_module.c:
	plugins/python/sudo_python_module.c: remove unused declaration

	We do not use structsequence any more.
	[06b1f58e9]

2020-02-18  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/python_plugin_common.c:
	plugins/python: restore the original python inittab after
	interpreter deinit
	[3be61db35]

2020-02-17  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/pyhelpers.c, plugins/python/pyhelpers.h,
	plugins/python/python_plugin_common.c,
	plugins/python/regress/check_python_examples.c,
	plugins/python/regress/testdata/check_example_debugging_load@diag.lo
	g, plugins/python/regress/testhelpers.c:
	plugins/python: only deinit interpreters when sudo unlinks the
	plugin

	This only happens when sudo unloads the last python plugin. The
	reason doing so is because there are some python modules which does
	not support importing them again after destroying the interpreter
	which has imported them previously.

	Another solution would be to just leak the interpreters (let the
	kernel free up), but then there might be some python resources like
	open files would not get cleaned up correctly if the plugin is badly
	written.

	Tests are meant to test the scenario sudo does, so I have modified
	them to generally do not unlink but only a few times (~per plugin
	type) so it does not use 48 interpreters (one gets started on every
	plugin->open) and it is visible at least which type of plugin fails
	deinit if there is an error.
	[27de7dd24]

	* plugins/python/python_plugin_common.c,
	plugins/python/sudo_python_debug.c:
	plugins/python/debug: adapt debug refcount solution of sudoers
	plugin
	[8a9218d16]

2020-02-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h:
	Re-register listeners on SIGHUP. Previously, a config reload would
	refresh the listener address list but the changes had no effect on
	the actual addresses being listened on.
	[a0c2de4ce]

	* logsrvd/logsrvd.c:
	Fix compilation error when not built with OpenSSL support. Adds a
	missing #ifdef HAVE_OPENSSL and reorders code to avoid the need for
	a static init_tls_server_context() prototype.
	[adb3bdf6d]

2020-02-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	include/sudo_json.h, lib/util/json.c, logsrvd/eventlog.c:
	Add support for JSON structured logging using syslog. Note that
	depending on the system, the default syslog buffer may not be large
	enough to store all the logging data.
	[982c003b8]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	examples/sudo_logsrvd.conf, logsrvd/eventlog.c,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c:
	Add support for JSON logging in sudo_logsrvd.
	[5781a6a4c]

	* include/sudo_json.h, lib/util/json.c, lib/util/util.exp.in,
	plugins/audit_json/audit_json.c, plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/regress/sudoers/test10.json.ok,
	plugins/sudoers/regress/sudoers/test9.json.ok:
	Rework the JSON API to write to a memory buffer, not a stdio stream.
	[8ef5b734c]

	* logsrvd/logsrvd.c, logsrvd/logsrvd_conf.c:
	Fix support for reloading the config in sudo_logsrvd. We need to
	re-initialize the TLS server context. Also fix a memory leak of the
	TLS parameters on reload.
	[25542216f]

2020-02-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_client.c:
	The environment in the accept message is runenv not submitenv. The
	I/O logging plugin is passed the environment the command will run
	with, not the user's original environment.
	[2e836cc57]

2020-02-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_compat.h, lib/iolog/iolog_fileio.c,
	plugins/audit_json/audit_json.c, src/utmp.c:
	Add compatibility define for fseeko(3). This is better than
	cluttering up the code with #ifdefs for obsolete systems.
	[92e42ff54]

2020-02-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/regress/testsudoers/test8.out.ok,
	plugins/sudoers/regress/testsudoers/test8.sh:
	Add test for #include directive without a trailing newline.
	[e7bd19bd1]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Don't require a newline at the end of include or includedir
	directives.
	[d2314acae]

2020-02-14  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/regress/testhelpers.c:
	plugins/python/regress/testhelpers.c: replace fromisoformat

	fromisoformat is only supported from python >=3.7
	[8395a20a2]

2020-02-13  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/python_plugin_approval.c:
	plugins/python/python_plugin_approval: fix negative ref count

	The python_plugin_api_rc_call function already decrements the
	refcount of py_args. Python avoids the double free, but the error
	gets shown if using python debug build.
	[efa97b5b9]

	* plugins/python/python_plugin_common.c:
	plugins/python/python_plugin_common.c: release py_args in close

	even if the arguments are not used (eg. when there is no "close"
	call in the plugin).

	It was not really a memleak, because interpreter is deinitialized
	anyway, which frees the object.
	[a71828b38]

	* plugins/python/python_plugin_common.h,
	plugins/python/sudo_python_module.c:
	plugins/python: add missing annotations to help cpychecker
	[b2ae79c2b]

2020-02-11  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/regress/check_python_examples.c,
	plugins/python/regress/plugin_approval_test.py,
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stderr,
	plugins/python/regress/testdata/check_multiple_approval_plugin_and_a
	rguments.stdout, plugins/python/regress/testhelpers.c,
	plugins/python/regress/testhelpers.h:
	plugins/python/regress: add tests for approval plugin
	[43e256e34]

	* MANIFEST, plugins/python/Makefile.in,
	plugins/python/example_approval_plugin.py:
	plugins/python: add python approval plugin example
	[80b3d86d6]

	* MANIFEST, plugins/python/Makefile.in,
	plugins/python/python_plugin_approval.c,
	plugins/python/python_plugin_approval_multi.inc,
	plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_common.h,
	plugins/python/sudo_python_module.c:
	plugins/python: add python approval plugin wrapper
	[23af39b00]

2020-02-12  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/regress/check_python_examples.c:
	plugins/python/regress: strengthen errstr verification

	Tests did not catch the issue where errstr was not set correctly,
	but its pointer contained the expected data, because the memory
	allocator reused the same space for storing the string.

	Now it is either verified to be NULL, or reset to NULL.
	[33e7fdcae]

	* plugins/python/regress/check_python_examples.c:
	plugins/python/regress: simplify plugin option creation
	[9fa6500d6]

	* plugins/python/python_plugin_audit.c,
	plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_common.h,
	plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_policy.c:
	plugins/python: make storing errstr more explicit

	The error is always stored in plugin_ctx, but it is only set into
	errstr if the API version is enough. (Previously it worked the
	opposite: we only stored the error if API level was enough.)
	[b1d2ccecd]

2020-02-11  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/python_plugin_common.c,
	plugins/python/sudo_python_module.c,
	plugins/python/sudo_python_module.h:
	plugins/python/sudo_module: let a reject also supply error message

	Same as sudo.PluginError exception, have a sudo.PluginReject
	exception as well. Added common base exception as well.
	[b16524203]

2020-02-12  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/regress/check_python_examples.c:
	plugins/python/regress: still some memleak fix
	[d1f94c857]

2020-02-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_debug.h, lib/util/sudo_debug.c, lib/util/util.exp.in,
	plugins/audit_json/audit_json.c, plugins/python/sudo_python_debug.c,
	plugins/sample_approval/sample_approval.c,
	plugins/sudoers/sudoers_debug.c:
	Move duplicated code to parse plugin debug flags to libsudo_util.
	There's no need for four copies of sudo_debug_parse_flags().
	[0e4c3c47d]

2020-02-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/regress/sudoers/test23.in,
	plugins/sudoers/regress/sudoers/test23.json.ok,
	plugins/sudoers/regress/sudoers/test23.ldif.ok,
	plugins/sudoers/regress/sudoers/test23.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test23.out.ok,
	plugins/sudoers/regress/sudoers/test23.sudo.ok,
	plugins/sudoers/regress/sudoers/test23.toke.ok:
	Add regress test for parsing Defaults lists. Currently only
	env_check, env_delete, env_keep and log_servers are lists.
	[9e2e79b6f]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in:
	Clarify that approval close happens after auditing. Also fix a few
	typos.
	[009788afa]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	include/sudo_plugin.h, plugins/sample_approval/sample_approval.c,
	src/sudo.c:
	Add open and close functions to the approval plugin API. We need a
	close function to be able to to free memory allocated for errstr.
	Unlike the other plugins, the close function is called immediately
	after the plugin's check or show_version function. The plugin does
	not remain open until the command completes.
	[01a53f286]

	* plugins/audit_json/audit_json.c:
	Use unique function names to avoid confusion with front-end
	functions. Also add a missing sudo_debug_enter() after debug
	registration.
	[55b61b989]

	* scripts/log2cl.pl:
	Use Text::Wrap instead of perl's built-in format function. This
	still breaks log filename incorrectly but is a step in the right
	direction.
	[3911e4f7b]

	* Makefile.in, scripts/log2cl.pl:
	Avoid changing directory when generating the ChangeLog file.
	Instead, pass the repo path to either hg or log2cl.pl
	[c2f3f6058]

2020-02-10  Robert Manner  <robert.manner@balabit.com>

	* src/sudo.c:
	src/sudo.c: call audit plugin close when result is a wait status
	[2781ec030]

	* Makefile.in:
	Makefile.in: fix install target for out of source build

	The scriptdir contained a path relative to where the target was
	started. The scripts are called like "$scriptdir/script_name" which
	is fine with relative path as well, until the current directory is
	not changed. But things like cd $srcdir && $scriptdir/script_name
	fails (if building in separate build directory).
	[0202dc67c]

	* doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in:
	doc/sudo_plugin_python: document python audit plugin support
	[ecdaaffd5]

	* doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in:
	doc/sudo_plugin_python: document returning error string
	[bd465b308]

	* doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in:
	doc/sudo_plugin_python: update python manual for constant -> enum
	changes
	[8f79d5c1c]

2020-02-06  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/regress/check_python_examples.c,
	plugins/python/regress/testdata/check_example_audit_plugin_receives_
	accept.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_receives_
	error.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_receives_
	reject.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_version_d
	isplay.stdout,
	plugins/python/regress/testdata/check_example_audit_plugin_workflow_
	multiple.stderr,
	plugins/python/regress/testdata/check_example_audit_plugin_workflow_
	multiple.stdout:
	plugins/python/regress/check_python_examples: add audit_plugin tests
	[1a1cb5497]

2020-02-03  Robert Manner  <robert.manner@balabit.com>

	* MANIFEST, plugins/python/Makefile.in,
	plugins/python/example_audit_plugin.py:
	plugins/python: add example python audit plugin
	[52d067b01]

	* MANIFEST, plugins/python/Makefile.in,
	plugins/python/python_plugin_audit.c,
	plugins/python/python_plugin_audit_multi.inc,
	plugins/python/sudo_python_module.c:
	plugins/python: add python audit plugin wrapper
	[cbf60cff5]

2020-02-06  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/example_group_plugin.py,
	plugins/python/example_io_plugin.py,
	plugins/python/example_policy_plugin.py,
	plugins/python/regress/testdata/check_example_io_plugin_fails_with_p
	ython_backtrace.stdout:
	plugins/python/example_*.py: document returning error string
	[bbbcb3933]

2020-02-05  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/regress/check_python_examples.c,
	plugins/python/regress/plugin_errorstr.py:
	plugins/python/regress: add test for callback error msg return
	[9c4f076f8]

	* plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_common.h,
	plugins/python/python_plugin_group.c,
	plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_policy.c,
	plugins/python/sudo_python_module.c,
	plugins/python/sudo_python_module.h:
	plugins/python: add support for callback errstr arguments

	Plugins can raise a sudo.PluginError exception to add context
	message for the failure.

	The callback's errstr gets filled up with the specified message.
	But, as sudo expects a string constant (will not free the string),
	we store it in the plugin context at least until next callback
	invocation.
	[3dd5f37af]

2020-02-06  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/example_conversation.py,
	plugins/python/example_debugging.py,
	plugins/python/example_group_plugin.py,
	plugins/python/example_io_plugin.py,
	plugins/python/example_policy_plugin.py,
	plugins/python/regress/testdata/check_example_debugging_c_calls@info
	.log,
	plugins/python/regress/testdata/check_example_debugging_plugin@info.
	log,
	plugins/python/regress/testdata/check_example_io_plugin_fails_with_p
	ython_backtrace.stdout:
	plugins/python/example*.py: pep8 fixes (mainly line too long)
	[45d263857]

2020-02-05  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/regress/check_python_examples.c:
	plugins/python/regress: load/unload module for each testcase

	so they can start from clean state. (My problem was optional
	argument tests has destroyed the callbacks.)
	[0f3631cc0]

2020-02-06  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_common.h,
	plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_policy.c:
	plugins/python/python_plugin_common: close can get custom arguments

	For the audit plugin. Ensure we do not fail if
	plugin_ctx->py_instance is NULL (because plugin init has failed).
	[36694fce8]

2020-02-05  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_policy.c:
	plugins/python_plugin_io,policy: fix version display in verbose mode

	Unfortunately the test did not catch this mistake, because it only
	searches that "Python policy plugin API version" string is present
	and does not check the version.
	[a7eb9d341]

2020-02-06  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/sudo_python_module.c:
	plugins/python/sudo_python_module.c: fix options_as_dict if no equal
	sign

	The intented behaviour was that those get skipped, but the
	PyList_GetItem sets the interpreter into error state, so python has
	raised exception.
	[99f99e8a5]

2020-02-04  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/example_conversation.py,
	plugins/python/example_debugging.py,
	plugins/python/example_group_plugin.py,
	plugins/python/example_io_plugin.py,
	plugins/python/example_policy_plugin.py, plugins/python/pyhelpers.c,
	plugins/python/pyhelpers.h, plugins/python/python_plugin_common.c,
	plugins/python/regress/testdata/check_example_debugging_c_calls@diag
	.log,
	plugins/python/regress/testdata/check_example_debugging_c_calls@info
	.log,
	plugins/python/regress/testdata/check_example_group_plugin_is_able_t
	o_debug.log, plugins/python/sudo_python_module.c:
	plugins/python/sudo_python_module.c: use IntEnums instead of
	constants

	It is a bit more code, but it is more "pythonic" and easier to debug
	as the enum values also know their names.

	It is also an API break, eg. sudo.RC_OK becomes sudo.RC.OK as
	sudo.RC will be the "type" of the enum, but I guess that is
	acceptable before the initial release.
	[21c02e173]

2020-02-03  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/python_plugin_policy.c:
	plugins/python/python_plugin_policy: add missing debug return
	[67ab6fd5d]

2020-01-31  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/pyhelpers.c, plugins/python/pyhelpers.h,
	plugins/python/python_convmessage.c:
	plugins/python/pyhelpers: add helpers for attribute handling

	to simplify code a bit.
	[62524416e]

2020-01-28  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/example_io_plugin.py,
	plugins/python/regress/testdata/check_example_io_plugin_fails_with_p
	ython_backtrace.stdout:
	plugins/python/example_io_plugin: close the file at destroy

	to avoid warning of debug python build.
	[4110800c1]

	* plugins/python/Makefile.in,
	plugins/python/regress/check_python_examples.c,
	plugins/python/regress/testhelpers.c,
	plugins/python/regress/testhelpers.h:
	plugins/python: memleak fixes in test

	The main problem was that string array objects were constructed
	differently: - if constructed by the test, then the elements were
	constant - if constructed by the plugin, then the elements were
	allocated

	Modified it so that now each array contains allocated strings so
	they can be handled similarly. For freeing, I have used the
	str_array_free function from the plugin, so I have linked its object
	into the test runner.

	Happy path is now free of "definitely lost" memleaks, so the test
	can be used for valgrind.
	[a3a7630ff]

2020-02-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/util/mksiglist.c, lib/util/mksigname.c,
	lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/getdelim/getdelim_test.c,
	lib/util/regress/glob/globtest.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c, logsrvd/logsrvd.c,
	logsrvd/sendlog.c, plugins/group_file/plugin_test.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/logging.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/tsdump.c, plugins/sudoers/visudo.c, src/exec.c,
	src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c,
	src/parse_args.c, src/regress/noexec/check_noexec.c:
	Use EXIT_SUCCESS and EXIT_FAILURE more consistently.
	[ac61b5655]

	* src/parse_args.c, src/sudo.c, src/sudo.h:
	Mark main sudo usage() function __noreturn__. This splits the usage
	printing out into display_usage().
	[c5afbf00f]

	* include/sudo_json.h, lib/util/json.c, lib/util/util.exp.in,
	plugins/sudoers/cvtsudoers_json.c:
	Use json functions from libsudo_util in cvtsudoers.
	[c92f39ed3]

2020-02-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sample_approval/sample_approval.c:
	Check localtime() return value; coverity CID 208156
	[d25ce46c5]

	* plugins/audit_json/audit_json.c:
	Check fseeko() return value; coverity CID 207993
	[a75992897]

	* logsrvd/sendlog.c, logsrvd/sendlog.h:
	Make restart and elapsed members of the closure structs not
	pointers. Fixes coverity CID 207992
	[630fc9b17]

	* lib/iolog/iolog_fileio.c:
	Check return value of sudo_lock_file(); coverity CID 207991
	[9d5f06618]

	* logsrvd/logsrvd.c:
	Only keepalive if accept() succeeded; coverity CID 207990
	[589adfee2]

2020-02-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, Makefile.in, doc/Makefile.in, examples/Makefile.in,
	include/Makefile.in, lib/iolog/Makefile.in, lib/logsrv/Makefile.in,
	lib/util/Makefile.in, lib/zlib/Makefile.in, logsrvd/Makefile.in,
	plugins/audit_json/Makefile.in, plugins/group_file/Makefile.in,
	plugins/python/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_approval/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, scripts/generate_test_coverage.sh,
	scripts/log2cl.pl, scripts/mkdep.pl, scripts/mkinstalldirs,
	scripts/mkpkg, scripts/pp, src/Makefile.in:
	Move some scripts from the top level src dir to a scripts dir.
	[2fe127d10]

	* MANIFEST, plugins/sample_approval/Makefile.in,
	plugins/sample_approval/sample_approval.c,
	plugins/sample_approval/sample_approval.exp:
	Add sample approval plugin that simply tests for "business hours"
	[aa1ca9c9b]

	* Makefile.in, configure, configure.ac:
	Add sample approval plugin that simply tests for "business hours"
	[7d5734a31]

	* src/load_plugins.c:
	Refactor code to alloc and insert a new plugin_container. The only
	outlier is the policy plugin which is not part of a list since there
	can only be a single policy plugin.
	[0972dafb1]

	* plugins/audit_json/audit_json.c:
	Tech audit_json about approval plugin accept/reject
	[ce21233fb]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	include/sudo_plugin.h, src/load_plugins.c, src/sudo.c,
	src/sudo_plugin_int.h:
	Add an approval plugin type that runs after the policy plugin. The
	basic idea is that the approval plugin adds an additional layer of
	policy. There can be multiple approval plugins.
	[db17cadaf]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in:
	plugin documentation fixes: o whitespace cleanup o show_version
	doesn't have an errstr argument o document runas_user and
	runas_group in command_info[] o add missing .El at before start of
	audit section
	[084cad212]

2020-02-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/audit_json/audit_json.exp:
	Exported symbol is audit_json
	[404b28c4d]

	* doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in:
	Silence lint warning.
	[ea377e432]

	* plugins/sudoers/policy.c:
	Add runas_user and runas_group (if set) to command_info for audit
	plugin. Otherwise, the audit plugin has to look up the runas name
	and group by user or group ID.
	[c2faa9e6e]

	* src/tgetpass.c:
	Only enable pwfeedback when reading password from /dev/tty. This
	effectively disables pwfeedback when the -S or -A options are used.
	[d219c6463]

2020-02-03  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/sendlog.c:
	fixed compiler error when sudo is configured without
	--enable-openssl
	[0ca2d1427]

2020-02-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_plugin.man.in:
	Regenerate .man.in files from .mdoc.in
	[cec6b1708]

	* doc/sudo_plugin.mdoc.in:
	Update documentation for setbase when the given base is NULL.
	[b35cc96f0]

	* plugins/sudoers/iolog_client.c, src/sudo.c:
	For plugin events, set the sudo event base for setbase(NULL). This
	makes it possible for a plugin to change the event base to a local
	one and then reset it back to its original value.
	[658702b6d]

2020-02-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_client.c:
	Don't display "error in event loop" on loop break reading
	ServerHello. We should already have displayed a more useful error
	message. Otherwise, we can get two "error in event loop" warnings if
	the TLS handshake fails (in addition to other error messages).
	[49e7e4ecd]

2020-01-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_plugin.h:
	Read ServerHello message synchronously before the command is
	executed. Otherwise, the command could be run before the TLS
	handshake completes.
	[b9bea2559]

2020-01-28  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/sendlog.c, logsrvd/sendlog.h:
	Refactor sudo_sendlog in order to be able to send one I/O log
	multiple times in parallel (for testing purposes)
	[1e5562df9]

2020-01-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_plugin.mdoc.in:
	Document audit plugin in the sudo_plugin manual.
	[790f8bb62]

	* include/sudo_plugin.h, plugins/audit_json/audit_json.c,
	src/sudo.c:
	Change audit close arguments to a type and value. That way we can
	distinguish between different error types.
	[1b7dc82fe]

	* MANIFEST, Makefile.in, configure, configure.ac, m4/sudo.m4,
	pathnames.h.in, plugins/audit_json/Makefile.in,
	plugins/audit_json/audit_json.c, plugins/audit_json/audit_json.exp:
	Example audit plugin that writes JSON output to a log file.
	[bf85ea2bf]

	* plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_io_multi.inc,
	plugins/python/python_plugin_policy.c,
	plugins/python/regress/check_python_examples.c:
	Adapt python plugin to new plugin API changes
	[a88a05c1e]

	* plugins/sudoers/audit.c, plugins/sudoers/iolog.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Pass back a failure or error string to the front end. The
	audit_failure() function now stores the failure string. This will
	allow an audit plugin to log the reason if the user's request is a
	rejected.
	[45e589d44]

	* doc/sudo_plugin.mdoc.in, include/sudo_plugin.h, src/exec_pty.c,
	src/load_plugins.c, src/parse_args.c, src/sudo.c, src/sudo.h,
	src/sudo_plugin_int.h:
	Define a new plugin type that receives accept and reject messages.
	This can be used to implement logging-only plugins. The plugin
	functions now take an errstr argument that can be used to return an
	error string to be logged on failure or error.
	[22105009d]

	* MANIFEST, include/sudo_json.h, lib/util/Makefile.in,
	lib/util/json.c, lib/util/util.exp.in:
	Add a simple API for writing JSON records. To be used by the
	upcoming JSON audit module.
	[88f9f2ba9]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/util.exp.in, lib/util/uuid.c:
	Add code to generate universally unique identifiers. We create type
	4, variant 1 uuids (random).
	[ed294b828]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_rand.h, lib/util/arc4random.c,
	lib/util/arc4random_buf.c:
	Add tests for arc4random_buf() and an implementation for those
	without.
	[dc45c4d4e]

2020-01-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Sudo 1.8.31 changes.
	[df2e3f7c7]

	* src/tgetpass.c:
	Fix a buffer overflow when pwfeedback is enabled and input is a not
	a tty. In getln() if the user enters ^U (erase line) and the
	write(2) fails, the remaining buffer size is reset but the current
	pointer is not. While here, fix an incorrect break for erase when
	write(2) fails. Also disable pwfeedback when input is not a tty as
	it cannot work. CVE-2019-18634 Credit: Joe Vennix from Apple
	Information Security.
	[fa8ffeb17]

2020-01-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Check for presence of fseeko() regardless of utmp type.
	[0fcb64716]

	* plugins/sudoers/sudoers.c:
	Fix warning about unresolved host name with "sudo -l -h hostname".
	The resolve_host() function returns 0 on success, not bool.
	[604945f93]

	* plugins/python/regress/check_python_examples.c:
	Fix typo in a test: python_policy->close not python_io->close
	[4e87e1a97]

2020-01-28  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/sudo_python_module.c:
	plugins/sudo_python_module: Fix double free in sudo.options_as_dict
	function

	PyArg_ParseTuple sets the py_config_tuple pointer, but it does not
	increment the reference count, so by decrementing, we end up freeing
	the argument passed in.
	[f268e851d]

2020-01-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/getentropy.c:
	Allow getentropy.c to compile when MAP_ANON is unavailable.
	[9d69c4a02]

	* MANIFEST, lib/util/Makefile.in, lib/util/arc4random.c,
	lib/util/arc4random.h:
	Remove multi-thread support from arc4random. Sudo is not
	multi-threaded so we don't need the added complexity.
	[13cc65038]

	* lib/util/arc4random.h, lib/util/getentropy.c:
	Backed out changeset 9dce3ebb2c37 MAP_SGI_ANYADDR cannot be used in
	place of MAP_ANON
	[aa7ea419f]

2020-01-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/arc4random.h, lib/util/getentropy.c:
	Fix compilation on IRIX; Bug #915 IRIX lacks MAP_ANON (and
	MAP_ANONYMOUS) but we can use the IRIX-specific flag MAP_SGI_ANYADDR
	instead. From Kazuo Kuroi
	[1fd82e149]

2020-01-24  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/pyhelpers.c, plugins/python/pyhelpers.h,
	plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_common.h,
	plugins/python/python_plugin_group.c,
	plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_policy.c:
	plugins/python: use separate python interpreter for each plugin

	On each plugin initialization we create a separate python
	interpreter which gets stored in the plugin_ctx. The main
	interpreter is stored in py_ctx and is used for creating more
	interpreters (if more plugins get loaded) and final python
	deinitialization.

	The "traceback" module import and the ImportBlocker initialization
	was moved, because it has to happen inside the plugin specific
	interpreters.
	[22c64f58c]

	* plugins/python/regress/check_python_examples.c,
	plugins/python/regress/plugin_conflict.py,
	plugins/python/regress/testdata/check_python_plugins_do_not_affect_e
	ach_other.stdout:
	plugins/python/regress: add a failing textcase about python plugins
	affect each other

	Since python plugins are run inside the same interpreter, they
	affect each other's state, which would be better to avoid.
	[99f839418]

2020-01-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/check.c:
	Fix crash in sudo 1.8.30 when suspending sudo at the password
	prompt. The closure pointer in sudo_conv_callback was being filled
	in with a struct getpass_closure ** instead of a struct
	getpass_closure *. The bug was introduced in the fix for Bug #910;
	previously the closure variable was a struct getpass_closure, not a
	pointer. Fix from Michael Norton; Bug #914.
	[5472b1751]

2020-01-23  Robert Manner  <robert.manner@balabit.com>

	* doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in:
	doc/sudo_plugin_python: update doc about the multiple I/O plugin
	loading
	[9294108cd]

	* plugins/python/Makefile.in:
	plugins/python/Makefile.in: update autogenerated header dependencies
	[d3d3a59e0]

	* plugins/python/pyhelpers.c, plugins/python/pyhelpers.h,
	plugins/python/python_plugin_common.c,
	plugins/python/regress/check_python_examples.c,
	plugins/python/regress/testdata/check_example_io_plugin_command_log_
	multiple.stderr, plugins/python/sudo_python_module.c:
	plugins/python/pyhelpers: have a default sudo_printf function

	Adapted the default sudo_printf from sudoers plugin to be able to
	print errors before plugin open() gets called. (This is used by the
	multiple io plugin loading to display error for too much plugin
	load.)

	Since this makes us always have a sudo_log, I have removed the logic
	about whether it is available or not.
	[d67c64bb3]

	* src/load_plugins.c:
	src/load_plugins.c: plugins can supply a clone function

	if they want to support getting loaded multiple times.
	[74f559155]

2020-01-22  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/regress/check_python_examples.c,
	plugins/python/regress/testdata/check_example_io_plugin_command_log_
	multiple.stderr,
	plugins/python/regress/testdata/check_example_io_plugin_command_log_
	multiple.stdout,
	plugins/python/regress/testdata/check_example_io_plugin_command_log_
	multiple1.stored,
	plugins/python/regress/testdata/check_example_io_plugin_command_log_
	multiple2.stored, plugins/python/regress/testhelpers.c,
	plugins/python/regress/testhelpers.h:
	plugins/python/regress: add a testcase for multiple io plugin
	loading

	to verify 2 python plugins can work next to each other.
	[2eeda38f9]

	* plugins/python/python_baseplugin.c,
	plugins/python/python_convmessage.c:
	plugins/python: fix return value typo for the error case
	[3128cc97c]

2020-01-21  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_io_multi.inc:
	plugins/python/plugin_io: enable loading of multiple io plugins

	Separate sudo io plugin symbols are created which stores wrapper
	functions adding the context of which python plugin the callback is
	about.

	These sudo io plugin "slots" get generated with macros by the
	preprocessor.

	This makes sudo support loading multiple python IO plugins like
	this: (note the differences in the symbol names)

	Plugin python_io python_plugin.so ModulePath=...
	ClassName=SudoIOPlugin1 Plugin python_io1 python_plugin.so
	ModulePath=... ClassName=SudoIOPlugin2 Plugin python_io2
	python_plugin.so ModulePath=... ClassName=SudoIOPlugin3
	[304a7fdc1]

2020-01-20  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/Makefile.in:
	plugins/python/Makefile.in: remove path prefix from examples to make
	install target work
	[edd7356f2]

2020-01-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in:
	Document new tls_verify setting.
	[f4716a75e]

2020-01-23  Laszlo Orban  <laszlo.orban@quest.com>

	* examples/sudo_logsrvd.conf, include/log_server.pb-c.h,
	lib/logsrv/log_server.pb-c.c, lib/logsrv/log_server.proto,
	logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	plugins/sudoers/iolog_client.c:
	logserver option to disable certificate verification on server side
	and server authentication on client side
	[24c943848]

2020-01-22  Laszlo Orban  <laszlo.orban@quest.com>

	* include/log_server.pb-c.h, lib/logsrv/log_server.pb-c.c,
	lib/logsrv/log_server.proto, logsrvd/logsrvd.c, logsrvd/sendlog.c,
	plugins/sudoers/iolog_client.c:
	Rename tls_checkpeer to tls_reqcert in ServerHello message
	[9935a7e2f]

2020-01-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac:
	Use AC_CHECK_DECLS when checking for SSL_CTX_set_min_proto_version
	Also use AC_CHECK_FUNCS to check for the other OpenSSL functions
	[c9b68ccb3]

2020-01-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/load_plugins.c:
	Refactor code to allocate and fill struct plugin_container. This
	will help avoid duplicate code in the audit and approval plugins.
	[fb5fc9876]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, examples/sudo_logsrvd.conf:
	Document TCP keepalive options in the manual pages.
	[07a2965ba]

2020-01-21  Laszlo Orban  <laszlo.orban@quest.com>

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_plugin.h, plugins/sudoers/policy.c:
	sudoers: disable SO_KEEPALIVE socket option based on
	log_server_disable_keepalive flag in sudoers
	[6f3f45aa2]

	* examples/sudo_logsrvd.conf, logsrvd/logsrvd.c, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c:
	logserver: enable/disable SO_KEEPALIVE socket option based on
	tcp_keepalive configuration option in sudo_logsrvd.conf
	[38160d0cc]

2020-01-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/CONTRIBUTORS:
	Add proper diacritical to Róbert's name.
	[b8e1422e8]

2020-01-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* etc/sudo.pp, examples/Makefile.in, examples/sudo.conf.in:
	Install a default sudo.conf file.
	[db1a9b155]

	* aclocal.m4, autogen.sh, config.h.in, configure, configure.ac,
	include/sudo_compat.h, logsrvd/logsrvd.c, logsrvd/sendlog.c,
	plugins/sudoers/iolog_client.c:
	Add support for building on OpenSSL 1.0.2. This adds compatibility
	defines for some OpenSSL 1.1.x functions.
	[dde86e585]

2020-01-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/hostcheck.h:
	No need to export the validate_hostname() symbol. We don't export
	symbols in convenience libraries, only installed DSOs.
	[a755c658a]

	* lib/iolog/hostcheck.c:
	Fix a few pointer signedness warnings on Linux.
	[1ba896821]

	* include/sudo_compat.h, lib/iolog/hostcheck.c, logsrvd/logsrvd.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_plugin.h, src/net_ifs.c:
	Store the server host name and IP in client_closure_fill(). Also
	check for getpeername() and inet_ntop() failure.
	[c3bd02505]

2020-01-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo.c:
	Iterate over io_plugins list in the iolog_* wrappers. Moving the
	iteration into the wrapper functions simplifies the calling code.
	[0d2195c37]

	* src/sudo.c:
	policy_plugin is global, no need to pass it to policy_* functions.
	[b0a84c429]

2020-01-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/sendlog.c,
	logsrvd/sendlog.h, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_plugin.h:
	Fix handling of SSL_ERROR_WANT_{READ,WRITE} during normal I/O. If we
	get SSL_ERROR_WANT_WRITE during SSL_read(), we need to resume the
	SSL_read(), not call SSL_write() as we were doing. Likewise for
	SSL_ERROR_WANT_READ received from SSL_write(). This introduces a
	flag so we call the proper callback even when the I/O direction
	doesn't match the read/write calls.
	[2d91555e8]

	* lib/util/Makefile.in:
	Add siglist.c and signame.c as dependencies for depend target. Fixes
	running "make depend" in lib/util dir when siglist.c or signame.c
	are not already present.
	[36fbdc48f]

	* Makefile.in, doc/Makefile.in, examples/Makefile.in,
	include/Makefile.in, lib/iolog/Makefile.in, lib/logsrv/Makefile.in,
	lib/util/Makefile.in, lib/zlib/Makefile.in, logsrvd/Makefile.in,
	plugins/group_file/Makefile.in, plugins/python/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Add abs_top_srcdir and abs_top_builddir and use them. Configure
	provides absolution versions of srcdir, builddir, top_srcdir and
	top_builddir. We can use these instead of calling pwd.
	[5913c6364]

2020-01-17  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/regress/check_python_examples.c,
	plugins/python/regress/iohelpers.c,
	plugins/python/regress/iohelpers.h,
	plugins/python/regress/testhelpers.c,
	plugins/python/regress/testhelpers.h:
	plugins/python/regress: add missing license texts
	[8cacaabe9]

2020-01-14  Robert Manner  <robert.manner@balabit.com>

	* aclocal.m4, configure, configure.ac,
	plugins/python/regress/check_python_examples.c,
	plugins/python/regress/testhelpers.c,
	plugins/python/regress/testhelpers.h,
	plugins/python/sudo_python_debug.h:
	plugins/python: various portability improvements
	[b66ecf6e1]

	* plugins/python/example_conversation.py,
	plugins/python/example_io_plugin.py,
	plugins/python/regress/testdata/check_example_conversation_plugin_re
	ason_log_with_suspend.stdout,
	plugins/python/regress/testdata/check_example_io_plugin_command_log.
	stored,
	plugins/python/regress/testdata/check_example_io_plugin_fails_with_p
	ython_backtrace.stdout:
	plugins/python/example_{io,conversation}: avoid printing signal
	number

	They are platform dependant, so their test would fail on some
	platforms. While we could create separate plugin for the tests, I
	like the idea that the examples are ensured to be working.

	I believe this is a good compromise for being able to auto update
	the test cases.
	[f3b7f3c0d]

	* plugins/python/Makefile.in,
	plugins/python/regress/check_python_examples.c:
	plugins/python/regress: load the python plugin dynamically

	instead of linking with it.
	[40f218958]

2020-01-10  Robert Manner  <robert.manner@balabit.com>

	* generate_test_coverage.sh:
	generate_test_coverage.sh: example script to ease test coverage
	generation

	Uses lcov and genhtml to generate test coverage. It is meant to be
	run in a clean directory. Extra configure options can be added as
	script arguments.

	Example execution:

	mkdir build cd build ../generate_test_coverage.sh --enable-python
	[d9af3b2d3]

2020-01-07  Robert Manner  <robert.manner@balabit.com>

	*
	plugins/python/regress/testdata/check_example_conversation_plugin_re
	ason_log_with_suspend.conversation,
	plugins/python/regress/testdata/check_example_conversation_plugin_re
	ason_log_with_suspend.stderr,
	plugins/python/regress/testdata/check_example_conversation_plugin_re
	ason_log_with_suspend.stdout,
	plugins/python/regress/testdata/check_example_conversation_plugin_re
	ason_log_with_suspend.stored,
	plugins/python/regress/testdata/check_example_conversation_plugin_re
	ason_log_without_suspend.conversation,
	plugins/python/regress/testdata/check_example_conversation_plugin_re
	ason_log_without_suspend.stderr,
	plugins/python/regress/testdata/check_example_conversation_plugin_re
	ason_log_without_suspend.stdout,
	plugins/python/regress/testdata/check_example_conversation_plugin_re
	ason_log_without_suspend.stored,
	plugins/python/regress/testdata/check_example_conversation_plugin_us
	er_interrupts.conv,
	plugins/python/regress/testdata/check_example_conversation_plugin_us
	er_interrupts.conversation,
	plugins/python/regress/testdata/check_example_conversation_plugin_us
	er_interrupts.stderr,
	plugins/python/regress/testdata/check_example_conversation_plugin_us
	er_interrupts.stdout,
	plugins/python/regress/testdata/check_example_debugging_c_calls@diag
	.log,
	plugins/python/regress/testdata/check_example_debugging_c_calls@info
	.log,
	plugins/python/regress/testdata/check_example_debugging_load@diag.lo
	g,
	plugins/python/regress/testdata/check_example_debugging_plugin@err.l
	og,
	plugins/python/regress/testdata/check_example_debugging_plugin@info.
	log,
	plugins/python/regress/testdata/check_example_debugging_py_calls@dia
	g.log,
	plugins/python/regress/testdata/check_example_debugging_py_calls@inf
	o.log,
	plugins/python/regress/testdata/check_example_debugging_sudo_cb@info
	.log,
	plugins/python/regress/testdata/check_example_group_plugin_is_able_t
	o_debug.log,
	plugins/python/regress/testdata/check_example_io_plugin_command_log.
	stderr,
	plugins/python/regress/testdata/check_example_io_plugin_command_log.
	stdout,
	plugins/python/regress/testdata/check_example_io_plugin_command_log.
	stored,
	plugins/python/regress/testdata/check_example_io_plugin_failed_to_st
	art_command.stderr,
	plugins/python/regress/testdata/check_example_io_plugin_failed_to_st
	art_command.stdout,
	plugins/python/regress/testdata/check_example_io_plugin_failed_to_st
	art_command.stored,
	plugins/python/regress/testdata/check_example_io_plugin_fails_with_p
	ython_backtrace.stderr,
	plugins/python/regress/testdata/check_example_io_plugin_fails_with_p
	ython_backtrace.stdout,
	plugins/python/regress/testdata/check_example_io_plugin_version_disp
	lay.stderr,
	plugins/python/regress/testdata/check_example_io_plugin_version_disp
	lay.stdout,
	plugins/python/regress/testdata/check_example_io_plugin_version_disp
	lay.stored,
	plugins/python/regress/testdata/check_example_policy_plugin_accepted
	_execution.stderr,
	plugins/python/regress/testdata/check_example_policy_plugin_accepted
	_execution.stdout,
	plugins/python/regress/testdata/check_example_policy_plugin_denied_e
	xecution.stderr,
	plugins/python/regress/testdata/check_example_policy_plugin_denied_e
	xecution.stdout,
	plugins/python/regress/testdata/check_example_policy_plugin_failed_e
	xecution.stderr,
	plugins/python/regress/testdata/check_example_policy_plugin_failed_e
	xecution.stdout,
	plugins/python/regress/testdata/check_example_policy_plugin_list.std
	err,
	plugins/python/regress/testdata/check_example_policy_plugin_list.std
	out,
	plugins/python/regress/testdata/check_example_policy_plugin_validate
	_invalidate.log,
	plugins/python/regress/testdata/check_example_policy_plugin_version_
	display.stderr,
	plugins/python/regress/testdata/check_example_policy_plugin_version_
	display.stdout,
	plugins/python/regress/testdata/check_loading_fails_missing_classnam
	e.stderr,
	plugins/python/regress/testdata/check_loading_fails_missing_classnam
	e.stdout,
	plugins/python/regress/testdata/check_loading_fails_missing_path.std
	err,
	plugins/python/regress/testdata/check_loading_fails_missing_path.std
	out,
	plugins/python/regress/testdata/check_loading_fails_not_owned_by_roo
	t.stderr,
	plugins/python/regress/testdata/check_loading_fails_not_owned_by_roo
	t.stdout,
	plugins/python/regress/testdata/check_loading_fails_wrong_classname.
	stderr,
	plugins/python/regress/testdata/check_loading_fails_wrong_classname.
	stdout,
	plugins/python/regress/testdata/check_loading_fails_wrong_path.stder
	r,
	plugins/python/regress/testdata/check_loading_fails_wrong_path.stdou
	t:
	plugins/python/regress/testdata: generated data for the pyplugin
	tests
	[383ca8033]

2020-01-03  Robert Manner  <robert.manner@balabit.com>

	* MANIFEST, plugins/python/Makefile.in,
	plugins/python/regress/check_python_examples.c,
	plugins/python/regress/iohelpers.c,
	plugins/python/regress/iohelpers.h,
	plugins/python/regress/testdata/sudo.conf.developer_mode,
	plugins/python/regress/testdata/sudo.conf.normal_mode,
	plugins/python/regress/testhelpers.c,
	plugins/python/regress/testhelpers.h:
	plugins/python/regress: adds tests for python plugin feature and
	examples
	[5da7bd562]

2020-01-10  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/example_policy_plugin.py:
	plugins/python/example_policy_plugin.py: extend user env changing
	example

	Make the demonstration extend the environment with a new variable.
	Easier to read, and makes the testing able to check for that it is
	working.
	[0b2d0334b]

2020-01-09  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_policy.c:
	plugins/python/python_plugin_policy: fix validate() call

	When calling validate() python function, TypeError exception was
	thrown ("argument list must be a tuple"), because the call does not
	have arguments, and python does not accept empty tuple for
	execution. NULL must be used instead, which was handled as argument
	construction failure previously.
	[185471f26]

	* plugins/python/example_policy_plugin.py:
	plugins/python/example_policy_plugin.py: make allowed_commands
	ordered

	Storing them as "tuple" instead of "set", so they have a fix order.
	This makes the output of the list() example stable. ("set" is
	printed out in random order)
	[35c85596d]

	* plugins/python/example_io_plugin.py,
	plugins/python/example_policy_plugin.py,
	plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_policy.c:
	plugins/python: fix confusing version display

	IO/Group/Policy Python API version is displayed instead of sudo
	version, because that is not very meaningful in this context.

	They are only displayed in verbose mode.

	Example plugins express it more concrete that they are displaying
	their version, not the API version.
	[2ee1dd3ec]

2020-01-08  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/example_conversation.py:
	plugins/python/example_conversation.py: make log path configurable

	Similarly to IO plugin example. (It is easier to test it this way.)
	[87d76f4bb]

2020-01-07  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/example_io_plugin.py:
	plugins/python/example_io_plugin.py: fix backtrace during destructor

	If the plugin fails to open the file for writing, constructor will
	raise an exception and exit before creating the "_log" member
	variable. So the destructor will also raise a backtrace. (Which
	python ignores, but dumps out to stderr.)
	[591d57ad2]

	* plugins/python/python_plugin_common.c:
	plugins/python/python_plugin_common: raise debug level for module
	import
	[5be81eb25]

	* plugins/python/example_debugging.py:
	plugins/python/example_debugging: fix typo in comment
	[8eab16909]

2020-01-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/iolog/Makefile.in:
	Rebuild dependencies after hostcheck.c include changes.
	[1093e7bc4]

2020-01-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/hostcheck.h, lib/iolog/hostcheck.c, logsrvd/logsrvd.c,
	plugins/sudoers/iolog_client.c:
	Add debugging statements to certificate checks.
	[47d950471]

	* MANIFEST, lib/iolog/Makefile.in, lib/iolog/hostcheck.c,
	plugins/sudoers/iolog.c:
	Portability fixes and correct path to hostcheck.h in MANIFEST.
	Include sys/socket.h for getpeername(). Link with -lnsl on Solaris
	to get inet_pton().
	[5a86073bd]

	* lib/iolog/Makefile.in, lib/logsrv/Makefile.in,
	lib/util/Makefile.in, lib/zlib/Makefile.in, logsrvd/Makefile.in,
	plugins/group_file/Makefile.in, plugins/python/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Using "libtool --clean" to remove regular files is slow. We only
	need to use libtool's clean mode to remove files created by libtool.
	[d2b7148b6]

2020-01-15  Laszlo Orban  <laszlo.orban@quest.com>

	* plugins/sudoers/Makefile.in, plugins/sudoers/iolog_client.c:
	do server identity validation in iolog plugin
	[a6916c219]

	* logsrvd/Makefile.in, logsrvd/logsrvd.c, logsrvd/logsrvd.h:
	do client identity validation in logserver
	[829fb9db8]

	* MANIFEST, include/hostcheck.h, lib/iolog/Makefile.in,
	lib/iolog/hostcheck.c:
	implement host validation for the audit server SSL certificates
	[8d111db60]

2020-01-06  Laszlo Orban  <laszlo.orban@quest.com>

	* plugins/sudoers/iolog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_plugin.h:
	save a pointer to the currently connected audit server in the
	closure object
	[de02745a3]

2020-01-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .gitignore, .hgignore:
	Add examples/sudo.conf to ignore files.
	[7ceeca1eb]

	* doc/sudo_plugin_python.mdoc.in:
	Fix mdoc lint warnings by removing .Pp before and after .Ss.
	[0ab02b8a1]

	* doc/sudo.conf.mdoc.in, examples/sudo.conf.in:
	Remove whitespace at the end of the line in example sudo.conf
	[c9f26ebbb]

2020-01-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c:
	Fix TLS accept when SSL_accept() returns SSL_ERROR_WANT_WRITE. We
	need to switch from SUDO_EV_READ to SUDO_EV_WRITE for this case.
	[9b12b21ea]

	* logsrvd/sendlog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_plugin.h:
	Fix TLS connect when SSL_connect returns SSL_ERROR_WANT_READ. We
	need to switch from SUDO_EV_WRITE to SUDO_EV_READ for this case.
	Also make the tls connect events private to tls_timed_connect() with
	their own closure. There is no need to store them in the client
	closure.
	[36b3362b9]

	* logsrvd/iolog_writer.c:
	Store submit time in struct iolog_info. Fixes missing time stamp in
	remote I/O log info file.
	[fb9d7d8cc]

	* src/sudo_edit.c:
	Treat EROFS (like EACCES) as a non-fatal error in dir_is_writable().
	Fixes sudoedit on macOS 10.15 and above where the root file system
	is mounted read-only. See https://support.apple.com/en-us/HT210650.
	From Dan Villiom Podlaski Christiansen. Bug #913
	[9e12b7177]

2020-01-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/event.c, plugins/sudoers/iolog_client.c:
	Really fix flushing of data in client_close(). Now that we call
	fmt_exit_message() from client_close() we do not need to try to
	determine whether the read or write events were pending in the old
	base.

	We can't tell anyway because the active flag in the event was
	cleared when the old sudo event base was destroyed. It is correct to
	enable both the read and write events after formatting the
	ExitMessage.
	[161750fc5]

	* plugins/sudoers/iolog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_path_escapes.c:
	Use SUDOERS_DEBUG_* not SUDO_DEBUG_* in debug_decl() for the sudoers
	plugin.
	[bbb9520c3]

	* src/sudo.c, src/sudo_plugin_int.h:
	Wrap calls to plugin event callbacks to use the plugin's debug
	instance. Otherwise, the debug output in a plugin's event callback
	will go to the sudo debug file, not sudoers.
	[405d26f5b]

	* lib/util/regress/strsig/strsig_test.c:
	FreeBSD is missing SIGLWP (aka SIGTHR) in sys_signame[]. Don't test
	SIGLWP on FreeBSD where it is reserved for the thread library and is
	not listed in sys_signame[].
	[41242e121]

	* configure, configure.ac:
	We want to use DT_RUNPATH in preference to DT_RPATH in ELF binaries.
	Otherwise, LD_LIBRARY_PATH does not work when running the tests. The
	GNU linker's --enable-new-dtags can be used to do this. We don't do
	this on NetBSD where RPATH already supports LD_LIBRARY_PATH.
	[aed69fb47]

2020-01-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers_debug.c:
	Fix reference counting when both sudoers policy and I/O log are
	loaded. If both sudoers policy and I/O log plugins are loaded,
	debug_files will be empty when the I/O plugin is initialized. This
	changes the logic to always increase the reference count if the
	instance is valid.
	[e7eef9c3a]

	* src/load_plugins.c:
	Fix handling of duplicate policy and I/O plugins. The warning
	message said the later I/O plugin was ignored but it actually
	overwrote the existing one instead. The first registered plugin of
	the same name now is used, as was intended. Specifying more than one
	policy plugin is no longer a fatal error; this allows the admin to
	fix the situation.
	[9c5c79194]

2020-01-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo_edit.c:
	For sudoedit_checkdir consider a user-owner directory to be
	writable. The non-faccessat() code already did this so this just
	brings the faccessat() path into alignment. Bug #912
	[c592470db]

2020-01-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/CONTRIBUTORS:
	Add newline before list of artwork authors.
	[e7480c341]

2020-01-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	Remove MAXSYSLOGTRIES, it is no longer used.
	[3fddfedb5]

2020-01-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/LICENSE:
	Update copyright year.
	[bf68dce05]

2020-01-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	If --enable-openssl or --enable-gcrypt is given a path, append to
	LDFLAGS. Previously we appended the path to SUDOERS_LDFLAGS but now
	that we use OpenSSL in the log server, LDFLAGS is the correct one to
	use.
	[8747a9554]

	* doc/CONTRIBUTORS:
	Add Robert Manner
	[b141213a1]

2020-01-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/timestamp.c:
	Sanity check size when converting the first record to TS_LOCKEXCL
	Coverity CID 206591
	[586b418ad]

	* include/sudo_iolog.h, lib/iolog/iolog_fileio.c:
	Fix coverity CID 206586. Potential use after free calling
	gzstrerror() after gzclose().
	[9e57bea4e]

	* plugins/sudoers/cvtsudoers.c:
	Use canonical pattern when freeing a tail queue. Avoids some
	coverity false positives when using TAILQ_FOREACH_SAFE to free the
	tail queue.
	[3e0dcae6c]

2020-01-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_client.c:
	Avoid potential NULL deref in tls_timed_connect() error path.
	Coverity CID 206396
	[b3c5efd48]

	* logsrvd/sendlog.c:
	Check for sudo_ev_add() failure; Coverity CID 206395 206397
	[920cdf421]

2020-01-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	examples/sudo.conf.in:
	Update sample sudo.conf with all supported settings. The deprecated
	"max_groups" setting is not documented.
	[b527ac3fb]

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	examples/sudo.conf.in, lib/util/regress/sudo_conf/test1.in,
	lib/util/regress/sudo_parseln/test1.in:
	Remove POD-style C<> markup (typewriter font) from sudo.conf
	[8aa815643]

	* MANIFEST, configure, configure.ac, examples/Makefile.in,
	examples/sudo.conf.in:
	Substitute plugin dir into examples/sudo.conf
	[5bf075202]

2020-01-02  Robert Manner  <robert.manner@balabit.com>

	* plugins/sudoers/sudoers_debug.c:
	plugins/sudoers/sudoers_debug.c: fix harmless debug deregistration
	warning

	If the debug sudoers subsystem is not registered, because it does
	not get any file names to deal with (TAILQ_EMPTY(debug_files)),
	deregistration of the subsystem outputs a warning:

	sudo: sudo_debug_deregister_v1: invalid instance ID -1, max -1

	This patch prevents that by only increasing the refcount if the
	debug_instance was registered successfully.
	[972ea1448]

	* plugins/python/Makefile.in:
	plugins/python/Makefile.in: fix the install path of examples

	Examples are installed by default to "docdir", which refers to
	PACKAGE_TARNAME variable which was empty for the python plugin
	Makefile.in

	So the examples were installed to '.../share/doc/examples' instead
	of '.../share/doc/sudo/examples'. This also made them be skipped
	from the package.

	Also the install target now depends on install-doc so the examples
	gets installed also (similarly as other examples).
	[3e9d15a4d]

	* doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in:
	doc/sudo_plugin_python: indent code examples for easier readability
	[3f890e4db]

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	doc/sudo.conf: document developer_mode option
	[9871f7e37]

2019-12-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/UPGRADE:
	fix typo in previous
	[a76b7543b]

	* Makefile.in:
	In update-pot match *.c not *c.
	[4eaea77fa]

	* NEWS, doc/UPGRADE:
	Changes in sudo 1.8.30
	[a8c39ea81]

2019-12-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in:
	Add check for up to date def_data.[ch] in check-dist target.
	[f139d2361]

2019-12-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/limits.c:
	Use 64-bit resource limits on AIX.
	[1e25d03c9]

	* src/limits.c:
	When restoring old resource limits, try to recover if we receive
	EINVAL. On NetBSD, setrlimit(2) can return EINVAL if the new soft
	limit is lower than the current resource usage. This can be a
	problem when restoring the old stack limit if sudo has raised it.
	[dfabda3d4]

	* src/limits.c:
	Sudo doesn't require such a large stack.
	[dbc905fdf]

	* plugins/sudoers/Makefile.in:
	Restore check for readable /etc/sudoers in pre-install target. If
	there is no installed sudoers there is nothing to check...
	[047f37ade]

	* config.h.in, configure, configure.ac:
	Enable OpenBSD extensions on NetBSD to get reallocarray(3)
	prototype.
	[c8532ae7a]

	* include/sudo_event.h:
	Add forward declaration of struct timeval for deprecated APIs.
	[c321b3e60]

	* lib/util/sig2str.c, lib/util/str2sig.c:
	Fix compilation on systems with SIGRTMIN/SIGRTMAX but not
	_SC_RTSIG_MAX.
	[4347ed90d]

	* include/sudo_compat.h:
	Older systems may not support WCONTINUED.
	[291221c69]

	* plugins/sudoers/logging.c:
	Support systems that have nl_langinfo(3) but not the CODESET define.
	Fixes compilation on old NetBSD versions.
	[58d50f44c]

	* plugins/sudoers/starttime.c:
	Fix a typo; HAVE_KINFO_PROC2_NETBSD not HAVE_KINFO_PROC2_NETBSD2
	[8b571c59a]

2019-12-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, Makefile.in, configure, configure.ac,
	etc/init.d/aix.sh.in, etc/init.d/hpux.sh.in,
	etc/init.d/sudo.conf.in, etc/sudo.pp, src/Makefile.in:
	Move init.d and sudo.pp to the etc dir.
	[c6f8f4b54]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/cfmakeraw.c:
	Add cfmakeraw() for systems without it.
	[4690d3ecf]

	* MANIFEST:
	Remove indent.pro from MANIFEST
	[1b10ac03e]

	* .gitignore, .hgignore:
	Add uncrustify.files to ignore file.
	[d089bd94e]

	* doc/sudo_plugin_python.man.in, doc/sudo_plugin_python.mdoc.in:
	Substitute @prefix@ in for the example paths. We can't use
	@exampledir@ here since it contains Makefile variables.
	[79e52c776]

2019-12-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_debug.h, lib/iolog/iolog_fileio.c,
	lib/iolog/iolog_path.c, lib/iolog/iolog_util.c, lib/util/aix.c,
	lib/util/digest.c, lib/util/digest_gcrypt.c,
	lib/util/digest_openssl.c, lib/util/event.c, lib/util/event_poll.c,
	lib/util/event_select.c, lib/util/gettime.c,
	lib/util/getusershell.c, lib/util/gidlist.c, lib/util/host_port.c,
	lib/util/key_val.c, lib/util/lbuf.c, lib/util/locking.c,
	lib/util/logfac.c, lib/util/logpri.c, lib/util/mkdir_parents.c,
	lib/util/parseln.c, lib/util/secure_path.c, lib/util/setgroups.c,
	lib/util/strsplit.c, lib/util/strtobool.c, lib/util/strtoid.c,
	lib/util/strtomode.c, lib/util/sudo_conf.c, lib/util/term.c,
	lib/util/ttyname_dev.c, lib/util/ttysize.c, logsrvd/eventlog.c,
	logsrvd/iolog_writer.c, logsrvd/logsrv_util.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd_conf.c, logsrvd/sendlog.c,
	plugins/python/python_plugin_common.c,
	plugins/python/sudo_python_debug.c, plugins/sudoers/alias.c,
	plugins/sudoers/audit.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/base64.c, plugins/sudoers/boottime.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/check.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/defaults.c,
	plugins/sudoers/digestname.c, plugins/sudoers/editor.c,
	plugins/sudoers/env.c, plugins/sudoers/env_pattern.c,
	plugins/sudoers/file.c, plugins/sudoers/filedigest.c,
	plugins/sudoers/find_path.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gc.c, plugins/sudoers/gentime.c,
	plugins/sudoers/getspwuid.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/group_plugin.c, plugins/sudoers/hexchar.c,
	plugins/sudoers/interfaces.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_path_escapes.c, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_conf.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/logwrap.c,
	plugins/sudoers/match.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse_ldif.c,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/rcstr.c, plugins/sudoers/redblack.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/starttime.c, plugins/sudoers/strlist.c,
	plugins/sudoers/stubs.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timeout.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/tsdump.c,
	plugins/sudoers/visudo.c, src/exec.c, src/exec_common.c,
	src/exec_nopty.c, src/exec_pty.c, src/get_pty.c, src/hooks.c,
	src/limits.c, src/load_plugins.c, src/net_ifs.c, src/parse_args.c,
	src/preserve_fds.c, src/selinux.c, src/sesh.c, src/signal.c,
	src/solaris.c, src/sudo.c, src/sudo_edit.c, src/tgetpass.c,
	src/ttyname.c, src/utmp.c:
	debug_decl and debug_decl_vars now require a semicolon at the end.
	[486ee2b71]

2019-12-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, doc/Makefile.in, doc/sudo_plugin_python.man.in,
	doc/sudo_plugin_python.mdoc.in:
	Add sudo_plugin_python manual page. Based on markdown docs from
	Robert Manner.
	[5dcc28180]

2019-12-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c, src/limits.c:
	Output the name of the limit when warning about setrlimit or
	getrlimit. From Kimmo Suominen.
	[4392b5726]

2019-12-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* aclocal.m4, config.h.in, configure:
	regen
	[96a03a089]

	* MANIFEST:
	Add python module files to MANIFEST
	[42732821f]

2019-12-05  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/example_conversation.py,
	plugins/python/example_debugging.py:
	plugins/python: example plugin demonstrating conversation and debug
	API
	[4ad362dd8]

2019-11-19  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/example_group_plugin.py:
	plugins/python: add example python group plugin
	[523bcbedb]

	* plugins/python/example_policy_plugin.py:
	plugins/python: add example python policy plugin
	[d8432fca3]

	* plugins/python/example_io_plugin.py:
	plugins/python: add example io python plugin
	[ee856cc4b]

2019-10-22  Robert Manner  <robert.manner@balabit.com>

	* Makefile.in, configure.ac, plugins/python/Makefile.in:
	Makefile.in, configure.ac: add python plugin build
	[91e6bf8cc]

2019-12-10  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/python_plugin_common.c:
	plugins/python: make group plugin able to debug

	It does not get the debug settings, so it looks them up through
	sudo_conf.
	[d888d4459]

2019-11-21  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/python_baseplugin.c,
	plugins/python/python_convmessage.c,
	plugins/python/sudo_python_module.c,
	plugins/python/sudo_python_module.h:
	plugins/python: add a sudo python module
	[9b49d44e8]

2019-12-02  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/python_importblocker.c:
	plugins/python: add ImportBlocker which forbids loading unsafe
	python modules

	If non root can alter any imported python modules, he is able to run
	anything he would like to as root user. This class is a helper to
	avoid such situation.

	This feature can be disabled with 'DeveloperMode=1' plugin option.
	[a6bac23ba]

2019-10-22  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/pyhelpers.c, plugins/python/pyhelpers.h,
	plugins/python/pyhelpers_cpychecker.h,
	plugins/python/python_plugin_common.c,
	plugins/python/python_plugin_common.h,
	plugins/python/python_plugin_group.c,
	plugins/python/python_plugin_io.c,
	plugins/python/python_plugin_policy.c:
	plugins/python: a plugin which can load policy/io plugin written in
	python
	[babdcbd03]

2019-12-04  Robert Manner  <robert.manner@balabit.com>

	* plugins/python/sudo_python_debug.c,
	plugins/python/sudo_python_debug.h:
	plugins/python: add sudo debug helpers
	[311cf122e]

2019-12-10  Robert Manner  <robert.manner@balabit.com>

	* include/sudo_conf.h, lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_conf/test1.in,
	lib/util/regress/sudo_conf/test1.out.ok,
	lib/util/regress/sudo_conf/test2.out.ok,
	lib/util/regress/sudo_conf/test3.out.ok,
	lib/util/regress/sudo_conf/test4.out.ok,
	lib/util/regress/sudo_conf/test5.out.ok,
	lib/util/regress/sudo_conf/test6.out.ok,
	lib/util/regress/sudo_conf/test7.out.ok,
	lib/util/regress/sudo_conf/test8.err.ok,
	lib/util/regress/sudo_conf/test8.in,
	lib/util/regress/sudo_conf/test8.out.ok, lib/util/sudo_conf.c,
	lib/util/util.exp.in, plugins/sudoers/group_plugin.c,
	src/load_plugins.c:
	src/load_plugins, plugins/sudoers: added developer_mode sudo.conf
	option

	It can be used to disable the enforcement that a plugin (shared
	object or an imported python module) must be owned by root and not
	modifiable by others. This can make plugin development easier.
	[c0d53d75e]

2019-12-05  Robert Manner  <robert.manner@balabit.com>

	* include/sudo_debug.h, lib/util/sudo_debug.c, lib/util/util.exp.in:
	lib/util/sudo_debug.c: add a function for querying if debugging is
	needed

	for a level. Rationale: this way we can avoid computing details for
	the log which will not happen at all if the computation is slow.
	[6710048c8]

2019-11-21  Robert Manner  <robert.manner@balabit.com>

	* Makefile.in:
	Makefile.in: fix calling log2cl when doing out of source build

	If doing build out of source and not calling configure by absolute
	path, $(top_srcdir) variable will contain a path relative to the
	directory we stand in. So, after changing the current directory "cd
	$(srcdir)", this path will point to somewhere else making the
	install step fail.
	[80fa75f0e]

2019-12-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in:
	Update SUDO_CONV_REPL_MAX in docs.
	[a44158054]

	* Makefile.in:
	Remove uncrustify.files in clean target
	[9f4409c25]

2019-12-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in, etc/uncrustify-small.cfg, etc/uncrustify.cfg,
	indent.pro:
	Add uncrustify config file for new sudo code style.
	[60328e5c7]

	* include/sudo_plugin.h:
	Bump SUDO_CONV_REPL_MAX from 255 to 1023
	[3a0445af9]

	* lib/util/digest_gcrypt.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/secureware.c:
	Minor style cleanups. Remove extraneous break after return
	statement. Convert two old K&R function declarations.
	[3ec23ad5e]

2019-12-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/selinux.c:
	Save/restore the raw form of the file context in case mctrans is not
	available.
	[718e6997f]

2019-12-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, config.h.in, configure, configure.ac,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, include/sudo_compat.h,
	lib/util/Makefile.in, lib/util/getusershell.c, mkdep.pl,
	plugins/sudoers/check.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Add runas_check_shell flag to require a runas user to have a valid
	shell. Not enabled by default.
	[b14d633ec]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/sudoers.c:
	Add a new flag "allow_unknown_runas_id" to control matching of
	unknown IDs. Previous, sudo would always allow unknown user or group
	IDs if the sudoers entry permitted it. This included the "ALL"
	alias. With this change, the admin must explicitly enable support
	for unknown IDs.
	[df8f06609]

2019-12-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/term.c:
	Use cfmakeraw() in sudo_term_raw() instead of doing it manually.
	[d7b4f8865]

	* plugins/sudoers/iolog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_plugin.h:
	Fix event loop called via I/O log close function. We need to set
	events that were pending in the old base in the new one. Fixes
	sending the final I/O log data and the ExitMessage to the server.
	[9d737441f]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	include/sudo_plugin.h, src/sudo.c:
	Replace timeleft with pending in sudo plugin event API.
	[d0b80b404]

	* plugins/sudoers/sudoreplay.c:
	Use sudo_ev_pending() instead of the deprecated sudo_ev_timeleft().
	[bf3b93f08]

	* include/sudo_event.h, lib/util/event.c, lib/util/util.exp.in:
	Add sudo_ev_pending(), used to check whether an event is pending.
	[22ffffe12]

	* plugins/sudoers/Makefile.in:
	Add TLS libs when linking check_iolog_plugin
	[931407284]

2019-12-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_client.c:
	Remove extraneous newlines in some sudo_warnx() calls.
	[5711c1b49]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document log_server_cabundle, log_server_peer_cert and
	log_server_peer_key
	[d98022177]

	* :
	Merge pull request #16 from laczau/master

	Proper handling of certificate chain file
	[03d02c4ac]

2019-12-06  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/logsrvd.c:
	cert files can contain the full chain of trust, so load all certs in
	every case for verification
	[5e36cc655]

2019-12-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in:
	Sync init_session() prototype with sudo_plugin.h and fix a typo.
	[a1e61f5ac]

2019-12-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/check.c:
	Only update the time stamp entry after the approval function has
	succeeded. Bug #910
	[4b6de608c]

	* :
	Merge pull request #14 from sudo-project/tls-config-default-values

	Audit Server - add default values for cert paths
	[049bbbfae]

2019-12-04  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/logsrvd.c, logsrvd/logsrvd_conf.c:
	add default values for cert paths
	[1dceb8bbb]

2019-12-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/sudo_debug.c:
	Add reference counting to debug register/deregister. Fixes a
	potential problem when an instance is re-registered.
	[3ab29e29b]

	* plugins/sudoers/sudoers_debug.c:
	Only deregister the sudoers debug instance on last close. Reference
	count calls to sudoers_debug_register and only deregister
	sudoers_debug_instance when refcnt reaches 0. Fixes a problem where
	the debug system was deregistered when the sudoers policy is closed
	even though the iolog plugin is active.
	[7c782edf5]

2019-11-28  Laszlo Orban  <laszlo.orban@quest.com>

	* plugins/sudoers/iolog_client.c, plugins/sudoers/iolog_plugin.h:
	implement tls layer in iolog plugin
	[24cda2592]

	* plugins/sudoers/iolog.c, plugins/sudoers/policy.c:
	process tls config options
	[a409d8f1f]

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in:
	add audit server tls related configuration options to sudoers
	[3ce51d40c]

	* plugins/sudoers/Makefile.in:
	optionally link sudoers with openssl libs
	[a9c2cf927]

2019-11-27  Laszlo Orban  <43516882+laczau@users.noreply.github.com>

	* :
	Merge pull request #11 from sudo-project/audit-server-tls-async

	Sudo audit Server - TLS protocol update
	[f5e0e2a4b]

2019-11-26  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/logsrvd.c:
	disable timeout for the reader after ServerHello message
	[06a0f8970]

2019-11-22  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c:
	use event timeout instead of socket timeout
	[21e7fdfd5]

	* logsrvd/sendlog.c, logsrvd/sendlog.h:
	adapt sudo sendlog (async communication, unencrypted ServerHello
	message)
	[f4bbce670]

2019-11-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c:
	Exit if the first call to logsrvd_conf_read() fails. It is not fatal
	if subsequent calls fail (due to SIGHUP) since we keep a copy of the
	old config before installing the new one.
	[1747e5009]

	* Makefile.in, plugins/sudoers/Makefile.in:
	Add some missing files to "make clean" and "make distclean"
	[333ea878e]

	* .gitignore, .hgignore:
	Update .hgignore and convert to .gitignore
	[42adbca7a]

2019-11-22  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/logsrvd.c, logsrvd/logsrvd.h:
	ServerHello message is now unencrypted, TLS communication has been
	refactored to full async
	[f67d0d13c]

	* include/log_server.pb-c.h, lib/logsrv/log_server.pb-c.c,
	lib/logsrv/log_server.proto, logsrvd/logsrvd.c:
	extend ServerHello message with two fields (tls, tls_checkpeer)
	[33f6a1676]

2019-11-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	plugins/sudoers/policy.c, src/sudo.c:
	For plugin API 1.15 and up, always call the plugin close function.
	Previously, it was only called when a command was run (including
	sudoedit). Now, plugin operations list, validate, invalidate, and
	show_version are also closed.
	[f976a5d86]

2019-11-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_client.c:
	Avoid NULL deref on an error path if calloc() fails. Coverity CID
	205873
	[214374637]

	* src/conversation.c:
	Fix potential fd leak when converting trailing newline to cr + nl.
	Coverity CID 205872
	[e0a4b2d68]

	* doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	doc/sudo_logsrvd.man.in, doc/sudo_logsrvd.mdoc.in,
	examples/sudo_logsrvd.conf:
	Document the process of creating self-signed certificates for
	sudo_logsrvd. Based on a document from Laszlo Orban.
	[b31b83051]

	* plugins/group_file/plugin_test.c:
	Sync with argument handling in group_plugin.c
	[c7cac7c0e]

	* plugins/sudoers/group_plugin.c:
	If a group plugin has optional arguments, NULL terminate the vector.
	Otherwise, the plugin cannot determine the end of arguments. The
	behavior now matches the plugin documentation.
	[a3266edc2]

2019-11-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in, src/sudo.c:
	If there is no session or terminal group ID, pass the plugin a value
	of 0. This behavior already matches what is documented in the
	sudo_plugin manual for "sid" but the "tcpgid" entry needed to be
	updated.
	[368e12b0f]

	* plugins/sudoers/sudoers.c:
	Don't touch the local iolog sequence file if we are logging remotely
	[d10220162]

	* plugins/sudoers/iolog_client.c:
	Plug a memory leak found by leak sanitizer
	[6c2821fe4]

	* plugins/sudoers/iolog.c, plugins/sudoers/iolog_client.c,
	plugins/sudoers/iolog_plugin.h:
	Make a shallow copy of user_env in I/O plugin in case it is
	reallocated. The policy plugin's session init function may
	reallocate the user environment pointer. Fixes a use after free when
	PAM is used.
	[3241b82a7]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/policy.c:
	Rename "log_server" in sudoers to "log_servers" to match I/O plugin.
	[f913249dd]

2019-11-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/logsrvd.c:
	Check closure->ssl for non-NULL instead of
	logsrvd_conf_get_tls_opt(). It's a little more obvious this way and
	ssl is only non-NULL when the tls option is enabled anyway.
	[810669c4f]

	* logsrvd/logsrvd.c:
	Init iolog_dir_fd and sock in connection_closure before adding to
	list. Otherwise we could close the wrong fds in the error path.
	[5be951bd7]

	* doc/CONTRIBUTORS:
	Add Laszlo Orban
	[82fea739a]

2019-11-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_logsrvd.conf.man.in:
	regen
	[4bb2b2f60]

	* doc/sudo_logsrvd.conf.mdoc.in, examples/sudo_logsrvd.conf:
	Change TLS example file locations to be under /etc/ssl/sudo.
	[366a63ce5]

	* doc/sudo_logsrvd.conf.mdoc.in, examples/sudo_logsrvd.conf:
	Document sudo_logsrvd TLS configuration.
	[49c09ee2d]

2019-11-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_event.h:
	Include time.h for struct timespec.
	[dae0da2fe]

	* lib/util/util.exp.in:
	Add sudo_ev_set_v1 to the exports file.
	[20bc94635]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document the log_server and log_server_timeout options
	[d8ccf11c5]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_client.c, plugins/sudoers/iolog_plugin.h,
	plugins/sudoers/policy.c, src/exec_nopty.c, src/exec_pty.c,
	src/sudo.c:
	Add support for logging to the log server
	[82237194d]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	include/sudo_event.h, include/sudo_plugin.h, lib/util/event.c,
	plugins/sudoers/iolog.c, plugins/sudoers/policy.c, src/Makefile.in,
	src/exec.c, src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c,
	src/load_plugins.c, src/preload.c, src/sudo.c, src/sudo.h,
	src/sudo_plugin_int.h:
	Add a plugin interface to sudo main event loop.
	[5793023ff]

	* MANIFEST, Makefile.in, configure, configure.ac,
	include/log_server.pb-c.h, include/protobuf-c/protobuf-c.h,
	lib/logsrv/Makefile.in, lib/logsrv/log_server.pb-c.c,
	lib/logsrv/log_server.proto, lib/logsrv/protobuf-c.c,
	logsrvd/Makefile.in:
	Move protobuf-c.c, log_server.proto, log_server.pb-c.[ch] to
	lib/logsrv
	[58cede6fe]

	* lib/util/event.c:
	When freeing an event base, reset ev->base to NULL for associated
	events.
	[f6acc134f]

	* logsrvd/logsrvd_conf.c:
	Move cb_timeout() out from under the HAVE_OPENSSL ifdef.
	[3689839a0]

	* INSTALL, config.h.in, configure, configure.ac,
	logsrvd/Makefile.in, logsrvd/logsrvd.c:
	LibreSSL and older OpenSSL don't support SSL_CTX_set_ciphersuites().
	Add a configure test and skip TLS 1.3 setup if it is missing. We
	still accept the tls_ciphers13 config setting but it will be
	ignored.
	[690f145d3]

	* logsrvd/logsrvd.c, logsrvd/sendlog.c:
	Minor style nits that I missed during review.
	[68480b095]

	* logsrvd/sendlog.c:
	Avoid calling SSL_CTX_free() on an uninitialized pointer in an error
	path.
	[c9da8d408]

	* :
	Merge pull request #9 from sudo-project/audit-server-tls-support

	Audit server tls support
	[f08c98a6a]

2019-11-13  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/Makefile.in, logsrvd/sendlog.c:
	update sudo_sendlog to support openssl tls
	[8c8023d21]

2019-11-11  Laszlo Orban  <laszlo.orban@quest.com>

	* examples/sudo_logsrvd.conf, logsrvd/logsrvd.c, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c:
	set timeout value for the socket
	[b9641816d]

2019-11-08  Laszlo Orban  <laszlo.orban@quest.com>

	* configure, logsrvd/Makefile.in, logsrvd/logsrvd.c,
	logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c:
	make audit server openssl dependency optional; tls layer is compiled
	only if sudo is built with --enable-openssl feature switch
	[e201f104d]

2019-11-07  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/logsrvd.c:
	fixed segfault when connection_closure_free() tries to remove a
	non-existent connection object from the list
	[9df5e6c11]

2019-11-05  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/logsrvd.c:
	verify server/client certs with CA certificate chain file
	[764fb3e6b]

2019-11-04  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/logsrvd.c:
	fix copy-paste mistake
	[037fb9298]

2019-10-31  Laszlo Orban  <laszlo.orban@quest.com>

	* logsrvd/logsrvd.c:
	process tls config params in the audit server and establish TLS
	connection accordingly
	[361557648]

2019-11-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/limits.c:
	Simplify resource limit fallback logic a bit.
	[9309ca007]

2019-10-25  Laszlo Orban  <laszlo.orban@quest.com>

	* examples/sudo_logsrvd.conf, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c:
	add configuration options for TLS
	[2c5e42176]

2019-11-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/CONTRIBUTORS:
	Add sudo logo designers
	[da82b16fc]

	* src/limits.c:
	Don't set the RLIMIT_STACK soft/hard limits to unlimited. Use 8Mb
	for soft and 64Mb for hard. Works around issues on macOS and docker.
	See also Bug #908
	[f3ebe5025]

	* src/tgetpass.c:
	Restore resource limits before executing the askpass program. Linux
	with docker seems to have issues executing a program when the stack
	size is unlimited. Bug #908
	[4a893912c]

	* src/conversation.c:
	Check for replies pointer being NULL just in case.
	[ad52ce661]

2019-11-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/conversation.c:
	Convert trailing newline to carriage return + newline for tty. Does
	not currently handle embedded newlines.
	[6863a848d]

2019-11-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/fatal.c:
	Only write a carriage return if output is to a tty.
	[f6a3dc6d2]

	* lib/util/fatal.c:
	Include a carriage return when printing warning messages. Otherwise,
	if the command is running in a pty the output is stair-stepped.
	[b4878c95e]

2019-11-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/util.exp.in:
	Add sudo_parse_host_port_v1 and sudo_pow2_roundup_v1 to exports
	file.
	[9f3bbdbd6]

2019-11-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/closefrom.c:
	Fix typo in closefrom emulation.
	[09f1c2649]

	* plugins/sudoers/env.c:
	Do not warn about a missing /etc/environment file on Linux without
	PAM. Bug #907
	[71aed42f9]

2019-11-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/parse.h,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke_util.c,
	plugins/sudoers/visudo.c:
	Transparently handle the "sudo sudoedit" problem. Some admin are
	confused about how to give users sudoedit permission and many users
	try to run sudoedit via sudo instead of directly. If the user runs
	"sudo sudoedit" sudo will now treat it as plain "sudoedit" after
	issuing a warning. If the admin has specified a fully-qualified path
	for sudoedit in sudoers, sudo will treat it as just "sudoedit" and
	match accordingly. In visudo (but not sudo), a fully-qualified path
	for sudoedit is now treated as an error.
	[635445d47]

	* logsrvd/iolog_writer.c, logsrvd/sendlog.c:
	Rename cwd -> submitcwd to match man page.
	[73031bbb5]

	* MANIFEST, lib/util/Makefile.in, lib/util/host_port.c,
	lib/util/regress/host_port/host_port_test.c:
	Add unit test for parse_host_port and make an empty port an error.
	[98ce89ee8]

2019-11-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/host_port.c:
	Fill in host and port pointers on success.
	[2949d2c47]

2019-10-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in:
	Fix ChangeLog generation on a branch.
	[4c54e61ea]

2019-11-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/host_port.c, logsrvd/logsrvd_conf.c:
	Split out code to parse host:port into a utility function.
	[b270b0c88]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/roundup.c, logsrvd/logsrv_util.c, logsrvd/logsrv_util.h,
	logsrvd/logsrvd.c, logsrvd/sendlog.c:
	Move bufsize_roundup() -> sudo_pow2_roundup() in libsudo_util.
	[f1d0c99e0]

	* lib/iolog/Makefile.in, logsrvd/Makefile.in:
	Add missing depend target
	[676d3fc67]

	* lib/iolog/Makefile.in, lib/util/Makefile.in, logsrvd/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	We haven't needed -I$(top_srcdir) for a long time.
	[655fdde22]

	* lib/util/closefrom.c:
	In closefrom_fallback() use the interval [OPEN_MAX, INT_MAX]. We
	want to try closing at least OPEN_MAX fds but no more than INT_MAX.
	On 64-bit systems it is possible for sysconf(_SC_OPEN_MAX) to return
	a value larger than INT_MAX when the number of open files is
	unlimited.
	[ac36cf2d4]

	* plugins/sudoers/logging.c, src/exec_monitor.c, src/selinux.c,
	src/tgetpass.c:
	Use dup3() instead of dup2(). This is less error prone since dup3()
	returns an error if old == new. Sudo guarantees that fds 0-2 are
	already open.
	[356287557]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/Makefile.in, lib/util/dup3.c,
	mkdep.pl:
	Add dup3() emulation.
	[43df08618]

	* plugins/sudoers/logging.c, src/exec_monitor.c, src/exec_pty.c,
	src/tgetpass.c:
	Open all pipes using pipe2() with O_CLOEXEC. We no longer depend on
	calling closefrom() before exec.
	[352212c7b]

	* src/exec.c, src/tgetpass.c:
	Call closefrom() before we change to a non-root UID. This prevents
	another process from changing the NOFILE resource limit of the child
	process and defeating the closefrom() call. Reported by Joe Vennix
	from Apple Information Security.
	[7acbfc18a]

	* MANIFEST, logsrvd/Makefile.in:
	Regenerate Makefile and sort MANIFEST
	[fd9fa6bca]

2019-11-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.man.in, doc/sudo.mdoc.in:
	Reference timestamp_type and timestamp_timeout in sudoers. This
	should help users find details on how time stamp files work.
	[e6fe02d64]

2019-10-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/limits.c:
	macOS does not allow rlim_cur to be set to RLIM_INFINITY for
	RLIMIT_NOFILE. We need to use OPEN_MAX instead as per the macOS
	setrlimit manual. Bug #904
	[0d8062c10]

2019-10-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* logsrvd/sendlog.c:
	Remove unused copy of iolog_seekto().
	[0129f3a72]

2019-10-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[5a1e5e9fa]

	* include/sudo_iolog.h, lib/iolog/iolog_fileio.c,
	lib/iolog/iolog_path.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/iolog/regress/iolog_path/data, logsrvd/iolog_writer.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path_escapes.c,
	plugins/sudoers/sudoers.c:
	Simplify expand_iolog_path()
	[ee91b7360]

	* logsrvd/logsrvd.c:
	Redirect std{in,out,err} to /dev/null even when given the -n option.
	[74a0e686a]

	* doc/sudo_logsrvd.man.in, doc/sudo_logsrvd.mdoc.in,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c:
	Clear the write bit on the timing file for completed logs. This
	allows us to tell whether or not a log can be restarted.
	[955fa11b5]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/Makefile.in, lib/util/fchmodat.c,
	lib/util/fstatat.c, mkdep.pl:
	Add fchmodat() and fstatat() emulation. Note that fchmodat()
	emulation does not support AT_SYMLINK_NOFOLLOW
	[dbf78d071]

	* include/sudo_iolog.h, lib/iolog/iolog_fileio.c,
	logsrvd/logsrvd_conf.c, plugins/sudoers/iolog.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c:
	Simplify iolog_set_user and iolog_set_group
	[13e3eaad5]

	* include/sudo_iolog.h, lib/iolog/iolog_util.c,
	lib/iolog/regress/iolog_util/check_iolog_util.c,
	logsrvd/iolog_writer.c, logsrvd/logsrv_util.c, logsrvd/sendlog.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoreplay.c:
	Add iolog_ prefix to exported functions in iolog_util.c
	[56c21243d]

	* include/sudo_iolog.h, lib/iolog/iolog_fileio.c,
	logsrvd/logsrvd_conf.c, plugins/sudoers/iolog.c:
	Read logsrvd.conf in two steps: first read, then apply if OK. This
	fixes a problem where when logsrvd.conf was reloaded while running
	(due to SIGHUP) and there was an error we could end up with a
	partial config.
	[aaf5d0dc6]

	* MANIFEST, doc/Makefile.in, doc/sudo_logsrv.proto.man.in,
	doc/sudo_logsrv.proto.mdoc.in, doc/sudo_logsrvd.conf.man.in,
	doc/sudo_logsrvd.conf.mdoc.in, examples/sudo_logsrvd.conf,
	logsrvd/iolog_writer.c:
	Document the sudo log server protocol
	[1df3230c2]

	* logsrvd/log_server.pb-c.c, logsrvd/log_server.pb-c.h,
	logsrvd/log_server.proto:
	Add NumberList to InfoMessage. Also make comments fit in 80 columns
	when formatted as a man page.
	[3b8011ea9]

	* lib/util/mkdir_parents.c:
	Avoid TOCTOU in sudo_mkdir_parents; Coverity CID 204357
	[6c6f0567b]

	* lib/iolog/iolog_fileio.c:
	Avoid TOCTOU in iolog_mkdirs; Coverity CID 204356
	[8552b283b]

	* logsrvd/logsrvd_conf.c:
	Fix Coverity CID 204355, resource leak on error path.
	[16b3513a9]

	* logsrvd/sendlog.c:
	Fix Coverity CID 204353, fd leak on error path.
	[822fd99b6]

	* logsrvd/logsrvd.c, logsrvd/sendlog.c:
	Fix some warnings from the clang static analyzer.
	[e74134d04]

	* MANIFEST, lib/iolog/iolog_fileio.c, logsrvd/Makefile.in,
	logsrvd/iolog_writer.c, logsrvd/logsrv_util.c,
	logsrvd/logsrv_util.h, logsrvd/logsrvd.h, logsrvd/sendlog.c,
	logsrvd/sendlog.h:
	Rename buffer.c -> logsrv_util.c and add iolog_seekto()
	[728ed2100]

	* include/sudo_iolog.h, lib/iolog/iolog_util.c,
	logsrvd/iolog_writer.c, logsrvd/sendlog.c,
	plugins/sudoers/sudoreplay.c:
	Move read_timing_record() into libsudo_iolog
	[b58ecb7e6]

	* logsrvd/sendlog.c, logsrvd/sendlog.h:
	Fix client side of restart. Seek to the target point there too so we
	start sending from the right place.
	[0ab2d8299]

	* include/sudo_iolog.h, lib/iolog/iolog_fileio.c,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.c:
	Add restart support for compresses I/O logs.
	[3394785f6]

	* MANIFEST, configure, configure.ac, doc/Makefile.in,
	doc/sudo_logsrvd.conf.man.in, doc/sudo_logsrvd.conf.mdoc.in,
	doc/sudo_logsrvd.man.in, doc/sudo_logsrvd.mdoc.in,
	doc/sudo_sendlog.man.in, doc/sudo_sendlog.mdoc.in,
	examples/sudo_logsrvd.conf, m4/sudo.m4:
	Add manual pages for logsrvd and sendlog.
	[b57054785]

	* MANIFEST, logsrvd/Makefile.in, logsrvd/buffer.c, logsrvd/buffer.h,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/logsrvd.h,
	logsrvd/sendlog.c, logsrvd/sendlog.h:
	Allow messages up to 2Mb in size.
	[66fc92695]

	* logsrvd/logsrvd.c, logsrvd/sendlog.c:
	Add OpenBSD malloc options.
	[c25b6dc7e]

	* MANIFEST, examples/sudo_logsrvd.conf, include/sudo_util.h,
	lib/util/Makefile.in, lib/util/logfac.c, lib/util/logpri.c,
	lib/util/util.exp.in, logsrvd/Makefile.in, logsrvd/eventlog.c,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c, plugins/sudoers/defaults.c:
	Add basic support for event logging using a sudo-style log format.
	[76eec78a3]

	* examples/sudo_logsrvd.conf, logsrvd/logsrvd_conf.c:
	Convert sudo_logsrvd.conf to ini file format
	[402820e8c]

	* logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/logsrvd.h:
	Return an error to the client on error instead of dropping the
	connection.
	[c7f0f9e0f]

	* logsrvd/Makefile.in, logsrvd/logsrvd.c, logsrvd/sendlog.c:
	Add long option support to logsrvd and sendlog.
	[216747476]

	* Makefile.in, logsrvd/Makefile.in, logsrvd/iolog_writer.c,
	logsrvd/logsrvd.c, logsrvd/logsrvd_conf.c, logsrvd/sendlog.c:
	Mark logsrvd and sendlog strings for translation in the sudoers
	domain
	[af7f65fdf]

	* examples/sudo_logsrvd.conf, include/sudo_iolog.h,
	lib/iolog/iolog_fileio.c, logsrvd/Makefile.in, logsrvd/logsrvd.c,
	logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c:
	Make the logsrvd port and list address configurable.
	[534aba7a3]

	* logsrvd/iolog_writer.c, logsrvd/log_server.pb-c.c,
	logsrvd/log_server.pb-c.h, logsrvd/log_server.proto,
	logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/sendlog.c,
	logsrvd/sendlog.h:
	Rename ExecMessage -> AcceptMessage and add RejectMessage
	[077e9aebb]

	* logsrvd/Makefile.in, sudo.pp:
	Add sudo_ prefix to logsrvd and sendlog.
	[2e2d9e869]

	* include/sudo_iolog.h, lib/iolog/iolog_fileio.c,
	lib/iolog/iolog_util.c, logsrvd/iolog_writer.c, logsrvd/logsrvd.h,
	logsrvd/sendlog.c, plugins/sudoers/iolog.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoreplay.c:
	Use openat(2) when opening files in the I/O log directory.
	[282263c11]

	* Makefile.in, include/sudo_iolog.h, lib/iolog/iolog_path.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	plugins/sudoers/iolog_path_escapes.c, plugins/sudoers/sudoers.c:
	Enable sudo_logsrvd.conf settings.
	[7ba7c5835]

	* MANIFEST, Makefile.in, configure, configure.ac,
	include/sudo_iolog.h, include/sudo_util.h, lib/iolog/Makefile.in,
	lib/iolog/iolog_fileio.c, lib/iolog/iolog_path.c,
	lib/iolog/iolog_util.c,
	lib/iolog/regress/iolog_path/check_iolog_path.c,
	lib/iolog/regress/iolog_path/data,
	lib/iolog/regress/iolog_util/check_iolog_util.c,
	lib/util/sudo_conf.c, logsrvd/Makefile.in, logsrvd/iolog_writer.c,
	logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/logsrvd_conf.c,
	logsrvd/sendlog.c, logsrvd/sendlog.h,
	plugins/sample/sample_plugin.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog.h, plugins/sudoers/iolog_files.h,
	plugins/sudoers/iolog_path_escapes.c, plugins/sudoers/iolog_util.h,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoreplay.c, src/sudo.h:
	Refactor code in sudoers that creates I/O log files to share with
	logsrvd.
	[059b55ce7]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/mkdir_parents.c, lib/util/util.exp.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/sudoers.h:
	Move mkdir_parents to libsudo_util.
	[e0c9a9dfa]

	* MANIFEST, examples/sudo_logsrvd.conf, logsrvd/Makefile.in,
	logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/logsrvd.h,
	logsrvd/logsrvd_conf.c, pathnames.h.in:
	Add config file support for logsrvd
	[a808dd45c]

	* configure, configure.ac, include/sudo_rand.h, logsrvd/Makefile.in,
	logsrvd/logsrvd.c:
	Command line option processing for logsrvd
	[240d58913]

	* logsrvd/Makefile.in, logsrvd/iolog_writer.c, logsrvd/logsrvd.c,
	logsrvd/logsrvd.h, logsrvd/sendlog.c, logsrvd/sendlog.h:
	Add support for restarting I/O log transfers.
	[e76d2e820]

	* MANIFEST, doc/LICENSE, logsrvd/Makefile.in,
	logsrvd/protobuf-c/protobuf-c.c, logsrvd/protobuf-c/protobuf-c.h:
	Import protobuf-c source since to avoid an external dependency. The
	files generated with protoc-c are not standalone. We need to include
	protobuf-c.c and protobuf-c.h from the protobuf-c distribution too.
	Building protoc-c requires a relative recent version of gcc which
	limits its portability.
	[8a16e62a8]

	* logsrvd/iolog_writer.c, logsrvd/logsrvd.c, logsrvd/sendlog.c:
	Add debugging for logsrvd and sendlog
	[706553f9d]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/openat.c, lib/util/unlinkat.c,
	src/sudo_edit.c:
	Move openat() emulation to lib/util and at unlinkat() emulation.
	[0d69de5b2]

	* MANIFEST, logsrvd/Makefile.in, logsrvd/iolog.h,
	logsrvd/iolog_reader.c, logsrvd/iolog_writer.c, logsrvd/logsrvd.h,
	logsrvd/sendlog.c, logsrvd/sendlog.h, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/iolog.h,
	plugins/sudoers/iolog_util.c, plugins/sudoers/iolog_util.h,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/iolog_util/check_iolog_util.c,
	plugins/sudoers/sudoreplay.c:
	Refactor I/O log code so it can be shared between sudoers and
	logsrvd
	[4dacf8108]

	* MANIFEST, Makefile.in, configure, configure.ac,
	logsrvd/Makefile.in, logsrvd/iolog.h, logsrvd/iolog_reader.c,
	logsrvd/iolog_writer.c, logsrvd/log_server.pb-c.c,
	logsrvd/log_server.pb-c.h, logsrvd/log_server.proto,
	logsrvd/logsrvd.c, logsrvd/logsrvd.h, logsrvd/sendlog.c,
	logsrvd/sendlog.h, sudo.pp:
	Import proof of concept sudo log server.
	[227243071]

	* lib/util/strtonum.c:
	Avoid invalid read when minval > maxval
	[aa9959457]

2019-10-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, plugins/sudoers/policy.c, src/sudo.c:
	Don't pass an invalid session or process group ID to the plugin.
	Fixes a regression in 1.8.28 when there is no terminal session
	leader.
	[271ead2fd]

2019-10-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[0375eaca5]

	* src/limits.c:
	Not all systems support RLIMIT_NPROC and RLIMIT_RSS
	[5391ee2d5]

	* NEWS, configure, configure.ac, doc/UPGRADE:
	Sudo 1.8.29
	[8ea71f9ae]

	* doc/Makefile.in, examples/Makefile.in, include/Makefile.in,
	lib/util/Makefile.in, lib/zlib/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Add depend target to all Makefile.in files.
	[b157b9689]

	* MANIFEST, lib/util/Makefile.in, src/Makefile.in, src/exec.c,
	src/limits.c, src/sudo.c, src/sudo.h:
	Set resource limits in the sudo process to unlimited. We don't want
	sudo to be limited by the caller's resource limits. The original
	resource limits are restore before session setup.
	[e80079eaa]

2019-10-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/starttime.c, src/ttyname.c:
	Older FreeBSD needs sys/param.h included before sys/user.h. From
	Darren Tucker
	[f57e2d04a]

2019-10-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/UPGRADE, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	doc/sudoers_timestamp.man.in, doc/sudoers_timestamp.mdoc.in,
	doc/visudo.man.in, doc/visudo.mdoc.in,
	plugins/sudoers/cvtsudoers_json.c, plugins/sudoers/iolog.c,
	plugins/sudoers/ldap.c, plugins/sudoers/policy.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/sssd.c,
	plugins/sudoers/testsudoers.c, src/exec.c:
	Refer to user-ID and group-ID instead of "user ID" and "group ID"
	[c3ce3a84f]

2019-10-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_util.h, lib/util/getgrouplist.c, lib/util/gidlist.c,
	lib/util/regress/strtofoo/strtoid_test.c, lib/util/strtoid.c,
	lib/util/util.exp.in, plugins/group_file/getgrent.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/iolog.c,
	plugins/sudoers/match.c, plugins/sudoers/policy.c,
	plugins/sudoers/pwutil.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c,
	plugins/system_group/system_group.c, src/sudo.c:
	Rename sudo_strtoid() to sudo_strtoidx() and add simplified
	sudo_strtoid()
	[40bf4081b]

2019-10-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	sudoedit doesn't create a new PAM session so PAM umask does not
	apply.
	[6260bf60b]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, include/sudo_plugin.h,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/exec.c, src/sudo.c, src/sudo.h:
	Change how the umask is handled with PAM and login.conf. If the
	umask is explicitly set in sudoers, use that value regardless of
	what is in PAM or login.conf. If using the default umask from
	sudoers, allow PAM or login.conf to override it. Bug #900
	[b02851dcf]

2019-10-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/audit.c,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/logging.c:
	Add log_allowed and log_denied sudoers flags, defaulting to true.
	[cf6c60c10]

	* lib/util/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Enable security auditing malloc options for "make check".
	[4229dfc56]

2019-10-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Be more consistent with how we talk about sudoers Defaults settings.
	Use "flag" not "option" when referring to boolean flags. Use
	"setting" in place of "Defaults setting" in most places. Use "the
	foo option" instead of "sudo's foo option" for command line options.
	[8761217f8]

	* plugins/sudoers/Makefile.in:
	No need to check existing sudoers file when installing to DESTDIR
	This check can cause problems on systems where /etc/sudoers.d is not
	readable.
	[cf2f37136]

	* lib/util/str2sig.c:
	Inclue sudo_util.h to get sudo_strtonum() prototype.
	[43e44a998]

	* lib/util/str2sig.c:
	strtonum -> sudo_strtonum
	[f5a7585a4]

	* MANIFEST:
	Add split out strtofoo tests.
	[d5ea5b7fb]

	* lib/util/strtonum.c:
	Make sure we don't go past the end of the string when out of range.
	[1037b685e]

	* lib/util/regress/strtofoo/strtonum_test.c, lib/util/strtonum.c:
	Fix stronum() regress test and the errno value for out of range
	numbers.
	[e339d9950]

	* lib/util/Makefile.in, lib/util/regress/strtofoo/strtobool_test.c,
	lib/util/regress/strtofoo/strtoid_test.c,
	lib/util/regress/strtofoo/strtomode_test.c,
	lib/util/regress/strtofoo/strtonum_test.c:
	Split atofoo.c regress into multiple tests.
	[29afe160a]

	* NEWS, configure, configure.ac:
	Sudo 1.8.28p1
	[b6aa80b5f]

2019-10-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse.c:
	The fix for bug #869 broke "sudo -v" when verifypw=all (the default)
	[d494b8155]

2019-10-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_compat.h, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/closefrom.c, lib/util/getaddrinfo.c, lib/util/strtonum.c,
	lib/util/sudo_conf.c, lib/util/ttysize.c,
	plugins/sudoers/boottime.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/defaults.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_util.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/policy.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/starttime/check_starttime.c,
	src/parse_args.c, src/sesh.c, src/sudo.c, src/ttyname.c:
	Use sudo_strtonum() explicitly instead of via a macro.
	[2512f6efb]

	* config.h.in, configure, configure.ac, include/sudo_compat.h,
	lib/util/Makefile.in, lib/util/strtoid.c, lib/util/strtonum.c,
	lib/util/util.exp.in, mkdep.pl:
	Always use our own strtonum and implement sudo_strtoid in terms of
	it.
	[04a17095b]

	* plugins/sudoers/pwutil.c:
	Use errno in warning when sudo_make_*_item() fails. Previously we
	always said "out of memory" if not ENOENT.
	[9d5867eae]

	* plugins/sudoers/Makefile.in, plugins/sudoers/parse_ldif.c,
	plugins/sudoers/regress/cvtsudoers/test26.err.ok,
	plugins/sudoers/regress/cvtsudoers/test26.sh:
	Reject non-LDIF input when converting from LDIF to sudoers or JSON.
	[3edd6afed]

2019-09-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse_ldif.c:
	More case-insensitive compare for LDAP attributes and string lists.
	Only the ALL keyword should be compared case-sensitive.
	[8e58e6715]

2019-10-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/ca.mo, plugins/sudoers/po/da.mo,
	plugins/sudoers/po/el.mo, plugins/sudoers/po/eu.mo,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fur.mo,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hu.mo,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/lt.mo,
	plugins/sudoers/po/nl.mo, plugins/sudoers/po/ru.mo,
	plugins/sudoers/po/sk.mo, plugins/sudoers/po/sl.mo,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/tr.mo,
	plugins/sudoers/po/zh_CN.mo, po/ast.mo, po/ca.mo, po/es.mo,
	po/eu.mo, po/fi.mo, po/fur.mo, po/gl.mo, po/hr.mo, po/hu.mo,
	po/ko.mo, po/nl.mo, po/nn.mo, po/ru.mo, po/sk.mo, po/sl.mo,
	po/sr.mo, po/sudo.pot, po/vi.mo, po/zh_CN.mo:
	regen
	[208a52c61]

	* lib/util/regress/atofoo/atofoo_test.c,
	plugins/sudoers/regress/testsudoers/test5.out.ok,
	plugins/sudoers/regress/testsudoers/test5.sh:
	Add sudo_strtoid() tests for -1 and range errors. Also adjust
	testsudoers/test5 which relied upon gid -1 parsing.
	[396bc57fe]

	* NEWS, lib/util/strtoid.c:
	Treat an ID of -1 as invalid since that means "no change". Fixes
	CVE-2019-14287. Found by Joe Vennix from Apple Information Security.
	[f752ae5ce]

2019-10-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL, configure, configure.ac:
	Back out compiler override for now.
	[fd5d0f511]

	* configure, configure.ac:
	Only prefer clang over gcc on BSD systems.
	[364821602]

2019-10-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in:
	Fix "make pvs-studio" run in a build dir
	[c64add170]

2019-09-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[45a79cf86]

	* NEWS:
	Bug #898
	[ab6cfc404]

	* src/exec.c, src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c,
	src/selinux.c, src/sudo.c, src/sudo.h:
	Fix restoring the file context of the user's tty with SELinux. Also
	fix broken tty labeling when running a command in a pty. Includes a
	fix for a typo introduced in the last change set.
	[112dff276]

	* lib/util/arc4random.c:
	_rs_random_buf is currently unused
	[b7b3fb72d]

	* src/selinux.c:
	Add some debugging around context setting and tty labeling Also be
	more extact with error return values
	[bcf8c3dd5]

2019-09-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/sudo_debug.c:
	Better error message when debug log file cannot be opened.
	[73dd3849c]

2019-09-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgignore:
	Ignore in-tree build directory.
	[81a30dd44]

	* configure, configure.ac:
	Set CC before AC_USE_SYSTEM_EXTENSIONS to get our preferred
	compiler.
	[7355363d6]

2019-09-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* pp:
	Update Polypkg to the latest version from git.
	[de87774ea]

	* configure, configure.ac:
	If no mandoc or nroff is present, install mdoc format manuals. If
	there is no installed nroff/mandoc they will need to install groff
	or heirloom doctools to format the manual pages.
	[0faf5eed7]

2019-09-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in, include/sudo_plugin.h:
	Refer to number of terminal lines, not rows, for consistency.
	[984382f8a]

2019-09-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* INSTALL, configure, configure.ac:
	Prefer clang over gcc. We want to use clang on systems where clang
	is the system compiler. It is less common to have clang installed on
	systems where gcc is the system compiler.
	[e49e8c1e8]

	* INSTALL:
	No longer need bypass_last_login on HP-UX, warnings work with clang.
	Also add deb package names for pam and ldap devel on Linux.
	[2707acf23]

	* src/parse_args.c:
	Silence a warning from clang about string concatenation.
	[d35670d1a]

2019-09-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, doc/UPGRADE:
	sudoedit umask fix
	[b2fadf66d]

2019-09-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/event.c:
	Fix sorting of the time-based event queue.
	[8c96df036]

	* lib/util/event.c:
	Support default base in got_exit, got_break, loopexit, loopbreak,
	loopcontinue
	[751c0c444]

2019-09-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo_edit.c:
	Create new files with the umask specified in sudoers.
	[ab9a2ecac]

2019-08-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo.h:
	Enable asserts for Coverity too.
	[d94798e5d]

	* src/parse_args.c, src/sudo.h:
	Add asserts() to avoid static analyzer false positives.
	[ffaef7939]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Plug memory leak on malloc failure.
	[679cd3823]

	* plugins/sudoers/ldap_util.c:
	Plug memory leak on malloc failure.
	[dd37f0836]

2019-08-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/pam.c:
	Add sudo_pam_strerror(), like pam_strerror() but never returns NULL.
	It also uses strerror(errno) for PAM_SYSTEM_ERR.
	[5138ed9be]

	* plugins/sudoers/auth/pam.c:
	If pam_start() fails, display the PAM error using pam_strerror(). It
	is legal to pass pam_strerror() a NULL handle.
	[60862b4d0]

2019-08-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	plugins/sudoers/sudoreplay.c:
	If the sudoreplay ID option is a fully-qualified path, use it
	directly. Previously, one had to use the -d option to override the
	I/O log directory.
	[9eeedb470]

	* plugins/sudoers/Makefile.in:
	regen
	[91d508d40]

	* MANIFEST, doc/sudo.conf.man.in.sed:
	Add conditional for sesh path in sudo.conf manual.
	[eb95a35ed]

2019-08-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Bug #895
	[62bb4aa63]

	* plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/check.c, plugins/sudoers/sudo_printf.c,
	src/conversation.c:
	Use the SUDO_CONV_PREFER_TTY flag during authentication. This
	prevents the password and PAM prompts from being redirected. Bug
	#895
	[972670bfc]

2019-08-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* mkpkg:
	Fix typo that prevented a missing linux audit lib from being
	detected.
	[5a2286513]

2019-08-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoreplay.c:
	Use fputs(), not printf() for plain strings.
	[2087f6354]

	* NEWS:
	Recent fixes.
	[e3967dc7d]

	* plugins/sudoers/ldap.c:
	Add user ID to the search filter when matching sudoUser. We already
	support group IDs but the user ID was missing. From
	sudo-1.8.23-ldapsearchuidfix.patch in RHEL 7.
	[a7cd4f0d4]

	* plugins/sudoers/regress/sudoers/test2.json.ok,
	plugins/sudoers/regress/sudoers/test2.toke.ok,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix parsing of double-quoted Defaults bindings that start with % or
	+. From
	sudo-1.8.23-fix-double-quote-parsing-for-Defaults-values.patch in
	RHEL 7.
	[37670a008]

	* src/exec.c:
	Restore core dump resource limit before the PAM session module is
	run. Otherwise, we may override the limits set by PAM. Bug #894
	[5e692576c]

2019-08-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/sig2str.c, lib/util/str2sig.c:
	sys_signame on macOS contains lower-cases names
	[b98b82e4a]

	* MANIFEST, configure, configure.ac, lib/util/Makefile.in,
	lib/util/regress/strsig/strsig_test.c:
	Add regress tests for str2sig() and sig2str().
	[0bbfdc992]

	* lib/util/str2sig.c:
	SIGIOT and SIGABRT are aliases on BSD systems.
	[48066e0db]

	* lib/util/sig2str.c, lib/util/str2sig.c:
	Fix handling of real-time signals.
	[29534ad96]

2019-08-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	ipa_hostname fix
	[9f7db2df2]

2019-08-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/file.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/ldap.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.h,
	plugins/sudoers/sssd.c:
	Fix special handling of ipa_hostname that was lost in sudo 1.8.24.
	We now include the long and short hostname in sudo parser container.
	[e99082e05]

2019-08-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_event.h:
	Remove unused include file.
	[b4bef30d3]

2019-08-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, doc/UPGRADE:
	Mention I/O log signal change in NEWS and UPGRADE files.
	[44e990c2a]

	* MANIFEST, NEWS, plugins/sudoers/po/ast.mo,
	plugins/sudoers/po/ast.po:
	Asturian translation for sudoers from translationproject.org.
	[7a7f02a7e]

	* mkdep.pl:
	Check source dir if source file is not listed in MANIFEST.
	Previously, we just used the file name without $(srcdir).
	[37887c154]

	* MANIFEST, config.h.in, configure, configure.ac,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, include/sudo_compat.h,
	lib/util/Makefile.in, lib/util/str2sig.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_util.c:
	Store signal name, not number in I/O log timing file. The "SIG"
	prefix is not used so, e.g. SIGTERM -> "TERM". This makes the I/O
	log files portable from one system to another. Older I/O log files
	with signal numbers can still be replayed.
	[3e56be356]

2019-07-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/utmp.c:
	Disable stringop-truncation false positive warnings on gcc 8.
	Strings in struct utmp/utmpx are not guaranteed to be
	NUL-terminated.
	[dfc32e5b3]

	* plugins/group_file/plugin_test.c, src/net_ifs.c:
	Replace non-essential strncpy() calls.
	[aa200cda6]

2019-07-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Revert version back to 1.8.28
	[aa73c86a5]

	* lib/util/Makefile.in:
	Link util functions being tested directly with the test harness.
	Otherwise we may get the version from the installed libsudo_util.so.
	[e91865fb2]

2019-07-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt.mo, plugins/sudoers/po/pt.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/zh_TW.mo,
	plugins/sudoers/po/zh_TW.po, po/cs.mo, po/cs.po, po/da.mo, po/da.po,
	po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/fr.mo, po/fr.po,
	po/it.mo, po/it.po, po/ja.mo, po/ja.po, po/nb.mo, po/nb.po,
	po/pl.mo, po/pl.po, po/pt.mo, po/pt.po, po/pt_BR.mo, po/pt_BR.po,
	po/sv.mo, po/sv.po, po/tr.mo, po/tr.po, po/uk.mo, po/uk.po,
	po/zh_TW.mo, po/zh_TW.po:
	Updated translations from translationproject.org
	[711794842]

2019-07-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/parse.c:
	Use strftime(3) instead of formatting struct tm by hand. Fixes a
	warning on newer versions of gcc.
	[5e424640b]

	* doc/sudo.man.in, doc/sudo.mdoc.in:
	Update error message when the password cannot be read from the
	terminal.
	[6f3d826f8]

	* NEWS:
	Fix for Bug #888
	[f63424111]

	* plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c:
	If the command in sudoers does not exist on the file system, match
	by name. We still want to match the command even if it doesn't exist
	so that the NOPASSWD flag on sudoers entries with non-existant paths
	works as expected. Bug #888.
	[a7137a522]

	* NEWS, doc/TROUBLESHOOTING, po/sudo.pot, src/tgetpass.c:
	More verbose error message when a password is required and no
	terminal is present. Bug #828.
	[15db0c3f8]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[3c825e298]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document that PAM session modules are now run with the silent flag.
	[6e0f7166e]

2019-07-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Simpler change to retry sudo_secure_file() as root as needed.
	[c49760e55]

	* plugins/sudoers/sudoers.c:
	If we are unable to stat() sudoers as non-root, try again as root.
	By default, sudo relies soley on group permissions to read sudoers
	to make it possible to store sudoers on NFS. However, if
	/etc/sudoers is not accessible to non-root uids for some reason,
	sudo will fail. Bug #880.
	[cecf69ff3]

2019-07-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Clarify that ttyin contains raw terminal input.
	[10b5529a0]

2019-07-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Expand the description of the I/O log files.
	[03ba6426e]

	* doc/sudo.conf.mdoc.in:
	Remove trailing whitespace.
	[679f13ef5]

2019-07-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in:
	Rename PLUGINDIR -> plugindir
	[bb024cf09]

	* configure, configure.ac:
	Use $libexecdir in default settings used by the documentation. The
	web and pdf pages will substitute /usr/local/libexec for
	$noexec_file. Also do substitution of variables using exec_prefix
	even if we don't use them in the Makefile since the documentation
	may reference them.
	[caceced2f]

	* doc/Makefile.in, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	Add conditional for sesh path in sudo.conf manual.
	[cd258e1d3]

	* configure, configure.ac:
	Update plugindir even when --disable-shared is specified. Otherwise,
	the default value is substituted into the Makefiles and
	documentation which may not match --prefix. Bug #886
	[6e497be93]

2019-06-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_util.h, lib/util/fatal.c, lib/util/inet_ntop.c,
	lib/util/regress/vsyslog/vsyslog_test.c, lib/util/sudo_debug.c,
	plugins/sudoers/find_path.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_conf.c, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/timestamp.c, src/load_plugins.c, src/net_ifs.c,
	src/sudo.c:
	Add ssizeof macro that returns ssize_t. We can use this instead of
	casting the result of size_t to int. Also change checks for
	snprintf() returning <=0 to <0.
	[9d8f37439]

2019-06-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/TROUBLESHOOTING, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	sudoedit should be used for editing files instead of "sudo editor"
	That way the user's editor config files are used by the editor.
	[81602ad08]

	* doc/TROUBLESHOOTING:
	Move the section on HOME to be after the environment section. Also
	strongly discourage the disabling of env_reset.
	[1fe9644f5]

2019-06-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/TROUBLESHOOTING:
	Remove the Solaris last login question, add one about HOME. The PAM
	session is opened with PAM_SILENT so last login info is not printed.
	It is dangerous to preserve HOME from the user's environment.
	[2d8949198]

	* doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in, doc/sudoers.man.in,
	doc/sudoers.mdoc.in:
	Use the term pseudo-terminal more consistently.
	[a45732528]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document why HOME should not be preserved from the user's
	environment. Text was adapted from what is already present in the
	UPGRADE file. Also mark set_home and always_set_home as obsolete.
	[ee214e526]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in:
	Refer to command line options, not flags.
	[e11fa62cd]

	* NEWS:
	sync
	[646f09d74]

	* doc/TROUBLESHOOTING:
	sudo will now prompt for a password as long as /dev/tty is
	available.
	[c1fc4e6be]

	* MANIFEST, configure, configure.ac, doc/Makefile.in,
	doc/cvtsudoers.cat, doc/sudo.cat, doc/sudo.conf.cat,
	doc/sudo_plugin.cat, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers_timestamp.cat, doc/sudoreplay.cat, doc/visudo.cat:
	Remove .cat pages, there is no need for them in the modern world.
	Sudo only shipped .cat pages for Irix, which lacked nroff. Irix is
	long dead and there are multiple open source nroff options.
	[71fdb8e03]

	* INSTALL, configure.ac, doc/sudoers.cat, doc/visudo.cat:
	Make env_editor the default. It is already the default in the
	package script.
	[184484b21]

	* INSTALL, doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Don't describe env_editor as a security hole. Users that are able to
	edit sudoers can grant themselves permissions so the fact that
	visudo runs the editor as root is not a security issue.
	[958cf7e37]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Fix details of how EDITOR, VISUAL and SUDO_EDITOR are (or are not)
	preserved. The description in the editor option was incorrect and
	didn't mention env_keep. Reported by Sander Bos
	[6fe222329]

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Modern visudo locks the actual sudoers file, not the sudoers.tmp
	file. Refer to sudoers.tmp as a temporary file, not a lock file.
	Reported by Sander Bos
	[a193f39c8]

2019-06-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	In tty_present(), check for /dev/tty if sudo was unable to get the
	tty name. For requiretty it is enough to check that /dev/tty is
	available. If sudo can't get the tty from the kernel (missing
	/proc?) that is OK.
	[29223d7f6]

	* src/tgetpass.c:
	Don't refuse to use the tty unless /dev/tty is unavailable. We don't
	care whether sudo was able to get the tty name from the kernel. All
	that really matters is whether we are able to disable echo as
	needed.
	[82920726f]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Use of "they" was ambiguous.
	[7ce9b8008]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Better description of secure_path. The secure_path option affects
	the resolution of unqualified commands as well as the environment
	that commands run with.
	[05f9643b8]

	* doc/CONTRIBUTORS:
	Add Sander Bos
	[030441609]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Fix a few typos and awkward wording. Use the singular "they" instead
	of he/she. Add back missing text in description of variables
	starting with (). Based on changes from Sander Bos.
	[7d5b1e3b1]

2019-06-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Clarify which environment variables are set based on the target
	user.
	[cb4ded8fb]

2019-06-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/Makefile.in:
	libsudo_util depends on LT_DEP_LIBS even when building a static lib
	[5d4142f29]

	* aclocal.m4, config.h.in, configure, configure.ac,
	lib/util/arc4random.c:
	Solaris getentropy() requires that sys/random.h be included.
	[81c6cac81]

2019-05-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse.c:
	Use the runhost for "User foo is not allowed to run sudo on bar."
	Otherwise, if the -h option is specified sudo will print the local
	host name instead of the host specified via -h.
	[12c29e91b]

2019-05-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/TROUBLESHOOTING:
	Document that "no tty present and no askpass program specified" may
	happen when /proc is not accessible.
	[948007e77]

2019-05-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/CONTRIBUTORS:
	Add Sangamesh Mallayya and Michael Spradling
	[d63fe33d1]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in, src/parse_args.c,
	src/sudo.h, src/tgetpass.c:
	Add -B option to ring the bell before the password prompt.
	[19c548fd5]

	* plugins/sudoers/auth/aix_auth.c:
	Allow the user to change their password if expired on AIX. Bug #883
	[dae484213]

2019-05-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/aix_auth.c:
	When using AIX auth, don't display the AIX password incorrect
	message. Avoids a "3004-300 You entered an invalid login name or
	password" message in addition to sudo's own "Sorry, try again"
	message.
	[07ed5b86f]

2019-05-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* mkpkg:
	AIX packages were not being build with optimization enabled.
	[8c9b23b0c]

2019-05-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse.c, plugins/sudoers/parse.h:
	Fix a typo.
	[e28ba02c7]

	* mkpkg:
	Support using macOS SDKs from
	/Library/Developer/CommandLineTools/SDKs
	[19e2da8ee]

2019-05-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/term.c:
	It is safe to assume _POSIX_VDISABLE is defined. The old compat
	defines were to support pre-termios systems.
	[cd2cfeb8c]

2019-05-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/pam.c:
	Remove second catopen() which is never called.
	[30a5ee9c5]

2019-05-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/TROUBLESHOOTING:
	Sudo's conversation functions now filters out the last login
	information.
	[14e72b3ec]

2019-04-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/auth/pam.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c:
	Add pam_acct_mgmt setting to enable/disable PAM account validation.
	[976550084]

	* doc/cvtsudoers.cat, doc/sudo.cat, doc/sudo.conf.cat,
	doc/sudo_plugin.cat, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers_timestamp.cat, doc/sudoreplay.cat, doc/visudo.cat:
	regen
	[4b240c267]

	* NEWS, configure, configure.ac:
	Sudo 1.8.28
	[91b6d71a0]

	* Makefile.in, configure.ac, doc/Makefile.in, doc/cvtsudoers.man.in,
	doc/cvtsudoers.mdoc.in, doc/fixman.sh, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in,
	doc/sudoers_timestamp.man.in, doc/sudoers_timestamp.mdoc.in,
	doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in, doc/visudo.man.in,
	doc/visudo.mdoc.in, examples/Makefile.in, include/Makefile.in,
	include/compat/charclass.h, include/compat/endian.h,
	include/compat/fnmatch.h, include/compat/getopt.h,
	include/compat/glob.h, include/compat/nss_dbdefs.h,
	include/compat/sha2.h, include/sudo_compat.h, include/sudo_conf.h,
	include/sudo_debug.h, include/sudo_digest.h, include/sudo_dso.h,
	include/sudo_event.h, include/sudo_fatal.h, include/sudo_gettext.h,
	include/sudo_lbuf.h, include/sudo_plugin.h, include/sudo_queue.h,
	include/sudo_rand.h, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/aix.c, lib/util/arc4random.c, lib/util/arc4random.h,
	lib/util/arc4random_uniform.c, lib/util/closefrom.c,
	lib/util/digest.c, lib/util/digest_gcrypt.c,
	lib/util/digest_openssl.c, lib/util/event.c, lib/util/event_poll.c,
	lib/util/event_select.c, lib/util/fatal.c, lib/util/fnmatch.c,
	lib/util/getcwd.c, lib/util/getdelim.c, lib/util/getentropy.c,
	lib/util/getgrouplist.c, lib/util/gethostname.c,
	lib/util/getopt_long.c, lib/util/gettime.c, lib/util/gidlist.c,
	lib/util/glob.c, lib/util/inet_ntop.c, lib/util/inet_pton.c,
	lib/util/isblank.c, lib/util/key_val.c, lib/util/lbuf.c,
	lib/util/locking.c, lib/util/memrchr.c, lib/util/memset_s.c,
	lib/util/mksiglist.c, lib/util/mksigname.c, lib/util/mktemp.c,
	lib/util/nanosleep.c, lib/util/parseln.c, lib/util/pipe2.c,
	lib/util/progname.c, lib/util/pw_dup.c, lib/util/reallocarray.c,
	lib/util/regress/atofoo/atofoo_test.c,
	lib/util/regress/getdelim/getdelim_test.c,
	lib/util/regress/getgrouplist/getgrouplist_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c,
	lib/util/regress/vsyslog/vsyslog_test.c, lib/util/secure_path.c,
	lib/util/setgroups.c, lib/util/sha2.c, lib/util/sig2str.c,
	lib/util/snprintf.c, lib/util/strlcat.c, lib/util/strlcpy.c,
	lib/util/strndup.c, lib/util/strnlen.c, lib/util/strsignal.c,
	lib/util/strsplit.c, lib/util/strtobool.c, lib/util/strtoid.c,
	lib/util/strtomode.c, lib/util/strtonum.c, lib/util/sudo_conf.c,
	lib/util/sudo_debug.c, lib/util/sudo_dso.c, lib/util/term.c,
	lib/util/ttyname_dev.c, lib/util/ttysize.c, lib/util/utimens.c,
	lib/util/vsyslog.c, lib/zlib/Makefile.in, log2cl.pl, m4/sudo.m4,
	mkdep.pl, mkpkg, pathnames.h.in, plugins/group_file/Makefile.in,
	plugins/group_file/getgrent.c, plugins/group_file/group_file.c,
	plugins/group_file/plugin_test.c, plugins/sample/Makefile.in,
	plugins/sample/sample_plugin.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/alias.c, plugins/sudoers/audit.c,
	plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/auth/sudo_auth.h,
	plugins/sudoers/base64.c, plugins/sudoers/boottime.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/bsm_audit.h,
	plugins/sudoers/check.c, plugins/sudoers/check.h,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/digestname.c,
	plugins/sudoers/editor.c, plugins/sudoers/env.c,
	plugins/sudoers/env_pattern.c, plugins/sudoers/file.c,
	plugins/sudoers/filedigest.c, plugins/sudoers/find_path.c,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/gc.c,
	plugins/sudoers/gentime.c, plugins/sudoers/getspwuid.c,
	plugins/sudoers/gmtoff.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/group_plugin.c, plugins/sudoers/hexchar.c,
	plugins/sudoers/ins_2001.h, plugins/sudoers/ins_classic.h,
	plugins/sudoers/ins_csops.h, plugins/sudoers/ins_goons.h,
	plugins/sudoers/ins_python.h, plugins/sudoers/insults.h,
	plugins/sudoers/interfaces.c, plugins/sudoers/interfaces.h,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog.h,
	plugins/sudoers/iolog_event.h, plugins/sudoers/iolog_files.h,
	plugins/sudoers/iolog_path.c, plugins/sudoers/iolog_util.c,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/ldap_util.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/linux_audit.h, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/logwrap.c, plugins/sudoers/match.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/match_command.c,
	plugins/sudoers/match_digest.c, plugins/sudoers/mkdir_parents.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/parse_ldif.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil.h, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/rcstr.c, plugins/sudoers/redblack.c,
	plugins/sudoers/redblack.h,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/iolog_util/check_iolog_util.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/parser/check_hexchar.c,
	plugins/sudoers/regress/starttime/check_starttime.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/solaris_audit.c,
	plugins/sudoers/solaris_audit.h, plugins/sudoers/sssd.c,
	plugins/sudoers/starttime.c, plugins/sudoers/strlist.c,
	plugins/sudoers/strlist.h, plugins/sudoers/stubs.c,
	plugins/sudoers/sudo_ldap.h, plugins/sudoers/sudo_ldap_conf.h,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudo_nss.h,
	plugins/sudoers/sudo_printf.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/sudoers_debug.h, plugins/sudoers/sudoers_version.h,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timeout.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/timestr.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.h, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/tsdump.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/tsgetgrpw.h,
	plugins/sudoers/visudo.c, plugins/system_group/Makefile.in,
	plugins/system_group/system_group.c, src/Makefile.in,
	src/conversation.c, src/env_hooks.c, src/exec.c, src/exec_common.c,
	src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c, src/get_pty.c,
	src/hooks.c, src/load_plugins.c, src/net_ifs.c, src/openbsd.c,
	src/parse_args.c, src/preload.c, src/preserve_fds.c,
	src/regress/noexec/check_noexec.c,
	src/regress/ttyname/check_ttyname.c, src/selinux.c, src/sesh.c,
	src/signal.c, src/solaris.c, src/sudo.c, src/sudo.h,
	src/sudo_edit.c, src/sudo_exec.h, src/sudo_noexec.c,
	src/sudo_plugin_int.h, src/sudo_usage.h.in, src/tcsetpgrp_nobg.c,
	src/tgetpass.c, src/ttyname.c, src/utmp.c:
	Add SPDX-License-Identifier to files.
	[1e1ef6190]

2019-04-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/pam.c:
	Filter out last login messages on HP-UX unless running a shell.
	HP-UX in trusted mode will display last login messages as part of
	the PAM account management module by libpam_comsec. There is no way
	to suppress these messages from the PAM configuration in trusted
	mode so we need to filter them in the conversation function. In
	regular mode, similar (but different) messages may be produced by
	libpam_hpsec.
	[96ac6adae]

2019-04-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/closefrom.c:
	FreeBSD's /dev/fd only contains fds 0-2 unless fdescfs is mounted.
	In practice this doesn't matter since FreeBSD >= 8 has a native
	closefrom
	[30a56af6e]

2019-04-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	Keep debug fds open in send_mail() to aid in debugging. Adds
	closefrom_nodebug() which acts like closefrom(3) but doesn't close
	debug fds for use by send_mail(). Also moves the code to exec the
	mailer to its own function.
	[aa0146d68]

2019-04-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/defaults.c:
	Set def_mailerflags even if sendmail was not found at configure
	time. Fixes a NULL dereference when mailerpath is set but
	mailerflags is not. Bug #878
	[9048ee6c4]

2019-04-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/Makefile.in, lib/util/getdelim.c,
	lib/util/parseln.c, lib/util/regress/getdelim/getdelim_test.c,
	mkdep.pl, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/boottime.c, plugins/sudoers/iolog_util.c,
	plugins/sudoers/ldap_conf.c, plugins/sudoers/parse_ldif.c,
	plugins/sudoers/sssd.c:
	Add a proper getdelim(3) replacement and use it instead of
	getline(3).
	[de65d7092]

	* plugins/sudoers/auth/pam.c:
	Restrict the PAM_TTY kludge to Solaris and Linux-PAM. Setting
	PAM_TTY to the empty string causes problems with some modules on
	HP-UX so restrict it to systems where it is fixes known issues.
	[f0910c01d]

2019-03-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/getgrouplist.c:
	Fix the counting of supplementary groups on AIX. We should not
	assume that basegid will be present in the list of gids returned by
	getgrset().
	[731e79671]

2019-03-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/pwutil.c:
	Plug a memory leak on user/group lookup failure found by ASAN.
	[194968eaf]

2019-03-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/regress/testsudoers/test3.d/root,
	plugins/sudoers/regress/testsudoers/test3.sh:
	Fix test failure when run by a user other than the file owner.
	[e31ac5a99]

	* MANIFEST, plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/zh_TW.mo, plugins/sudoers/po/zh_TW.po, po/da.mo,
	po/da.po, po/eo.mo, po/eo.po, po/es.mo, po/es.po, po/zh_TW.mo,
	po/zh_TW.po:
	Updated translations from translationproject.org
	[28b0bff4f]

	* MANIFEST, plugins/sudoers/regress/cvtsudoers/test1.sh,
	plugins/sudoers/regress/cvtsudoers/test10.sh,
	plugins/sudoers/regress/cvtsudoers/test11.sh,
	plugins/sudoers/regress/cvtsudoers/test12.sh,
	plugins/sudoers/regress/cvtsudoers/test13.sh,
	plugins/sudoers/regress/cvtsudoers/test14.sh,
	plugins/sudoers/regress/cvtsudoers/test15.sh,
	plugins/sudoers/regress/cvtsudoers/test16.sh,
	plugins/sudoers/regress/cvtsudoers/test17.sh,
	plugins/sudoers/regress/cvtsudoers/test18.sh,
	plugins/sudoers/regress/cvtsudoers/test19.sh,
	plugins/sudoers/regress/cvtsudoers/test2.sh,
	plugins/sudoers/regress/cvtsudoers/test20.sh,
	plugins/sudoers/regress/cvtsudoers/test21.sh,
	plugins/sudoers/regress/cvtsudoers/test22.sh,
	plugins/sudoers/regress/cvtsudoers/test23.sh,
	plugins/sudoers/regress/cvtsudoers/test24.sh,
	plugins/sudoers/regress/cvtsudoers/test25.sh,
	plugins/sudoers/regress/cvtsudoers/test26.err.ok,
	plugins/sudoers/regress/cvtsudoers/test26.out.ok,
	plugins/sudoers/regress/cvtsudoers/test26.sh,
	plugins/sudoers/regress/cvtsudoers/test27.sh,
	plugins/sudoers/regress/cvtsudoers/test28.sh,
	plugins/sudoers/regress/cvtsudoers/test29.sh,
	plugins/sudoers/regress/cvtsudoers/test3.sh,
	plugins/sudoers/regress/cvtsudoers/test30.sh,
	plugins/sudoers/regress/cvtsudoers/test31.sh,
	plugins/sudoers/regress/cvtsudoers/test32.err.ok,
	plugins/sudoers/regress/cvtsudoers/test32.out.ok,
	plugins/sudoers/regress/cvtsudoers/test32.sh,
	plugins/sudoers/regress/cvtsudoers/test33.sh,
	plugins/sudoers/regress/cvtsudoers/test4.sh,
	plugins/sudoers/regress/cvtsudoers/test5.sh,
	plugins/sudoers/regress/cvtsudoers/test6.sh,
	plugins/sudoers/regress/cvtsudoers/test7.sh,
	plugins/sudoers/regress/cvtsudoers/test8.sh,
	plugins/sudoers/regress/cvtsudoers/test9.sh:
	Test cvtsudoers stdout and stderr separately. Fixes a test failure
	on systems with musl libc. Bug #873
	[0c31cf15f]

2019-03-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/starttime.c, src/ttyname.c:
	Better comment about EOVERFLOW and pstat_getproc(). Also remove some
	useless casts.
	[0766e0c64]

	* lib/util/closefrom.c:
	Ignore EOVERFLOW from pstat_getproc(), it is not a fatal error. It
	just means that one of the fields in pstat lacks the precision to
	store a value. That's not an issue for pst_highestfd.
	[17ca31c38]

	* sudo.pp:
	update copyright year
	[9c4487b73]

2019-03-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/load_plugins.c:
	Fix error message when a fully-qualified plugin path does not exist.
	[8ee2de998]

2019-03-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Fix unescaped '\' and remove an extra '[' in the definition of
	digest.
	[0e8fffdb3]

2019-03-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Ignore carriage return before a linefeed. This allows sudo to parse
	files with DOS-style line endings.
	[ea3ede690]

2019-02-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	For sssd, the nsswitch.conf setting should be "sss" not "sssd". From
	Johnathan Smith.
	[f4853cb75]

2019-02-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/env.c, plugins/sudoers/sudoers.h:
	Add simple API for to allow reading environment data from different
	sources. Currently, this is used to read a file like
	/etc/environment.
	[e1205f08d]

2019-02-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Fix pasto; the unrestricted env file was read when we want the
	restricted one.
	[f3344b588]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/defaults.h,
	plugins/sudoers/parse.h, plugins/sudoers/strlist.c, src/sudo.h:
	Be sure to include sudo_queue.h where needed instead of relying on
	other headers.
	[c0a12d9d9]

2019-02-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/util.exp.in:
	Only export sudo_arc4random_uniform() if arc4random_uniform() is
	missing.
	[683c65b98]

	* lib/util/regress/vsyslog/vsyslog_test.c:
	Quiet a warning on gcc 8
	[f17683482]

	* include/sudo_compat.h:
	AIX 7.1 defines O_CLOEXEC but it can't be used outside the kernel.
	Redefine O_CLOEXEC if it doesn't fit in an int and pipe2() is
	missing.
	[da98428e9]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/match.c,
	plugins/sudoers/match_command.c, plugins/sudoers/match_digest.c,
	plugins/sudoers/parse.h:
	Split command match code out into match_command.c. Also remove
	unused SUDOERS_NAME_MATCH code.
	[36d437340]

2019-02-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match_digest.c:
	Split out digest matching into its own file.
	[cf2bfbcd3]

	* plugins/sudoers/Makefile.in, plugins/sudoers/match.c,
	plugins/sudoers/parse.h:
	Split out digest matching into its own file.
	[a04409747]

2019-02-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Rename FOLLOW and NOFOLLOW tokens FOLLOWLNK and NOFOLLOWLNK. Fixes a
	namespace collision on Solaris when bison is used.
	[1e6e04818]

2019-02-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c:
	Add stub definition of digest_matches() for SUDOERS_NAME_MATCH
	[bc2591505]

	* plugins/sudoers/sudo_nss.c:
	No longer need to include sudo_lbuf.h
	[694999487]

	* mkpkg:
	On RedHat/CentOS get the OS major version from /etc/redhat-release.
	We cannot determine this from the output of "pp --probe" since it
	doesn't contain a period to separate the major and minor numbers.
	[ffc4db6ae]

2019-02-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c:
	Use SET macro instead of bitwise OR.
	[6dceca47c]

	* plugins/sudoers/pwutil_impl.c:
	In sudo_make_grlist_item() the calculation of total did not include
	space for pointers to the group names.
	[c92f80b79]

	* plugins/sudoers/cvtsudoers_pwutil.c:
	Use correct debug_decl() names.
	[4f74fe3a8]

	* plugins/sudoers/sudoers.h:
	Add fallback values for sudoers uid, gid and mode if not set in
	Makefile.
	[928faf27f]

2019-02-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/memset_s.c:
	include stddef.h to make sure we get NULL
	[13c324422]

2019-02-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/net_ifs.c:
	Fix memory leak when there are no network interfaces or an error
	occurs.
	[3788c6548]

2019-01-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	Use $ac_cv_search_FUNCTION instead of $ac_lib and $ac_res. Fixes a
	problem where libcrypt is not used with autoconf caching. Adapted
	from a diff from Adam Labbe.
	[c1d934894]

2019-01-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* po/de.mo, po/de.po, po/ko.mo, po/ko.po:
	Updated translations from translationproject.org
	[df8b855b2]

2019-01-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse.c:
	Fix listpw=never and verifypw=never. Bug #869
	[ecc9c366e]

2019-01-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/regress/vsyslog/vsyslog_test.c, lib/util/sig2str.c,
	plugins/sudoers/alias.c, plugins/sudoers/cvtsudoers_pwutil.c,
	plugins/sudoers/env.c, plugins/sudoers/find_path.c,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_conf.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/logging.c, plugins/sudoers/match.c,
	plugins/sudoers/parse.c, plugins/sudoers/set_perms.c,
	plugins/sudoers/starttime.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/tsdump.c, src/exec_monitor.c, src/exec_nopty.c,
	src/exec_pty.c, src/sudo.c, src/ttyname.c:
	Minor snprintf() usage tweaks: 1) don't assume snprintf() returns -1
	on error, check for <0 2) when comparing return value of
	sizeof(foo), cast the sizeof, not the len 3) cast return value to
	void in cases where snprintf cannot fail
	[985600e7f]

2019-01-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	The AIX nofiles hard limit fix and bug #867 will make 1.8.27.
	[3d63eee34]

	* plugins/sudoers/auth/pam.c:
	Use PAM_SILENT to prevent pam_lastlog from printing last login
	information on RedHat except when explicitly running a shell.
	Adapted from a patch from Nir Soffer. Bug #867
	[e2675d8f1]

	* lib/util/aix.c:
	Fix the default nofiles and stack hard limits. The table of default
	hard limits in /etc/security/limits was out of date with respect to
	the current documentation. The default hard limit for nofiles should
	be unlimited, not 8196. The default hard limit for stack should be
	4194304 blocks (which fits in an unsigned long on 32-bit platforms).
	[f7d7a9a61]

2019-01-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot:
	regen
	[32dc90c28]

	* NEWS:
	Final updates for sudo 1.8.27.
	[7ae29420d]

	* src/exec_pty.c:
	Update copyright year
	[64d08d8bf]

	* doc/LICENSE:
	Update for 2019
	[de94a04ba]

2019-01-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	Fix setting of utmp entry when running command in a pty. Regression
	introduced in sudo 1.8.22.
	[b2f7983c8]

2018-12-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Use debug_return_int not debug_return_bool in resolve_host
	[efe35e5b1]

	* NEWS, configure, configure.ac:
	sudo 1.8.27
	[24b0da367]

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in,
	plugins/sudoers/visudo.c:
	Allow the sudoers file to be specified without the -f option. Bug
	#864
	[dc9338ffe]

2018-12-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	The iolog_dir section is below the maxseq section, not above.
	[7d5b0064a]

2018-12-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po, po/ja.mo,
	po/ja.po:
	Updated translations from translationproject.org
	[3d8415073]

2018-12-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoreplay.c:
	Add -n and -R options to help; reported by Radovan Sroka
	[72050203b]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in:
	Add missing description of padding option and missing argument to
	-c.
	[258c7d4dd]

	* plugins/sudoers/cvtsudoers.c:
	The -c option was missing from the help info; from Radovan Sroka
	[142b370c1]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in:
	Fix some typos; reported by Radovan Sroka
	[04a4b3c1f]

2018-12-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/pam.c:
	In sudo_pam_approval(), for the exempt case, only overwrite pam
	status when the passwd is expired or needs to be updated.
	[524277348]

2018-12-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/pam.c:
	The fix for bug #843 was incomplete and caused pam_end() to be
	called early. sudo_pam_approval() must not set the global pam status
	to an error value if it returns AUTH_SUCCESS. Otherwise,
	sudo_pam_cleanup() will call pam_end() before
	sudo_pam_begin_session(). This resulted in a NULL PAM handle being
	used in sudo_pam_begin_session().
	[4125808a8]

2018-12-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec.c:
	Don't run the command in a pty if no I/O plugins are logging
	anything. That way an I/O plugin that doesn't actually log anything
	won't cause the command to be run in a pty.
	[e91e5ee82]

2018-11-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgignore:
	Update ignore patterns to match doc changes.
	[83fd48a75]

	* doc/fixmdoc.sed:
	fix mode fixmdoc.sed
	[85dd1747c]

2018-11-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/Makefile.in, doc/sudo.conf.man.in, doc/sudo.man.in,
	doc/sudoers.ldap.man.in, doc/sudoers.man.in,
	doc/sudoers_timestamp.man.in, doc/sudoreplay.man.in,
	doc/visudo.man.in:
	Fix section in the .TH line of *.man.in file. The substitution for
	@mansectsu@ and @mansectform@ was broken. No longer need to strip
	out OpenBSD from the header line.
	[b8ba37222]

	* doc/sudoers.man.in.sed:
	Add sudoers.man.in.sed, missed from previous commit.
	[e0d2dc61e]

	* doc/CONTRIBUTORS:
	Add Guillem Jover
	[168a7ca11]

	* NEWS:
	recent changes
	[8964dd5d2]

	* MANIFEST, doc/Makefile.in, doc/fixman.sh, doc/fixmdoc.sed,
	doc/fixmdoc.sh, doc/sudo.cat, doc/sudo.man.in, doc/sudo.man.in.sed,
	doc/sudo.mdoc.in, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in:
	Use roff conditionals in the manuals instead of post-processing. We
	still need to process the resulting .man.in files to add back the
	conditionals but this should be easier to debug as the changes are
	visible in the .in file. Some minor postprocessing is still used to
	make the manuals HP-UX friendly and to change "0 seconds" ->
	unlimited after substitution.
	[e010706ed]

2018-11-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Sudo plugin manual updates and clarification from Guillem Jover: -
	Add missing return information for show_version(). - Fix prototypes
	for several function pointers. - Update SUDO_API_VERSION_MINOR. -
	Add missing references to log_suspend() and change_winsize(). - Add
	missing "array.". - Clarify that argc can be zero on sudo -V. -
	Clarify size requirements for conversation array arguments. -
	Clarify timeout zero value for struct sudo_conv_message. - Clarify
	initial and final state of reply in struct sudo_conv_reply.
	[23006c72c]

	* doc/fixmdoc.sh, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Revert changes to give arguments to the .Bx macro. This is intended
	for things like .Bx 4.3 to generate "4.3BSD" so the argument ends up
	before the BSD, not after. Just go back to using "BSD
	authentication" and "BSD login classes" so fixmdoc.sh can operate
	correctly. Bug #861
	[7c0019d2a]

2018-11-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/fixmdoc.sh, doc/sudo.mdoc.in, doc/sudoers.mdoc.in:
	Update fixmdoc.sh to match the BSD -> .Bx changes in the manuals.
	Bug #861
	[0679f4529]

2018-11-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, m4/sudo.m4, src/utmp.c:
	Add support for utmps as found in HP-UX.
	[ecd968881]

2018-11-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, include/sudo_util.h,
	lib/util/utimens.c:
	Support st_nmtime in struct stat as found in HP-UX.
	[716aa6e4a]

	* lib/util/closefrom.c:
	If fcntl fails, fall back to the /proc implementation.
	[7c5469264]

2018-11-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Mention schema.olcSudo
	[4f5acff6e]

2018-11-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Mention schema.olcSudo here too.
	[5f5d4a285]

	* MANIFEST, README.LDAP, doc/CONTRIBUTORS, doc/schema.OpenLDAP,
	doc/schema.olcSudo:
	OpenLDAP schema file for Sudo in on-line configuration (OLC) format.
	From Frederic Pasteleurs.
	[5e098a782]

	* po/ast.mo, po/ast.po:
	Updated translations from translationproject.org
	[d6c2c5368]

2018-11-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/closefrom.c:
	Only use closefrom_fallback() if no better method exists. The
	previous logic was too fragile.
	[537a2f977]

2018-11-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/cs.mo,
	po/cs.po, po/fr.mo, po/fr.po, po/hr.mo, po/hr.po, po/it.mo,
	po/it.po, po/nb.mo, po/nb.po, po/pl.mo, po/pl.po, po/pt_BR.mo,
	po/pt_BR.po, po/sv.mo, po/sv.po, po/tr.mo, po/tr.po, po/uk.mo,
	po/uk.po, po/vi.mo, po/vi.po, po/zh_CN.mo, po/zh_CN.po:
	Updated translations from translationproject.org
	[733669ec3]

	* MANIFEST, NEWS, doc/CONTRIBUTORS, plugins/sudoers/po/pt.mo,
	plugins/sudoers/po/pt.po, po/pt.mo, po/pt.po:
	Portuguese translation for sudo and sudoers from
	translationproject.org.
	[cad10fbd2]

2018-11-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, configure, configure.ac, include/sudo_fatal.h,
	lib/util/Makefile.in, lib/util/fatal.c, lib/util/util.exp.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/sudoers.c:
	Add sudo_gai_fatal, sudo_gai_vfatal, sudo_gai_vwarn, sudo_gai_warn
	and gai_log_warning that use gai_strerror() instead of strerror().
	[cdd5bb32e]

2018-10-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c:
	Fix memory leak in runaslist_matches().
	[cfa4879db]

2018-10-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	typo
	[c88b85985]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[9c2f4b8f1]

	* NEWS:
	More updates for 1.8.26
	[9378808b3]

2018-10-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, plugins/sudoers/ldap_util.c,
	plugins/sudoers/regress/cvtsudoers/test33.out.ok,
	plugins/sudoers/regress/cvtsudoers/test33.sh:
	Add support for negated sudoRunAsUser and sudoRunAsGroup entries.
	[1fe582a0e]

2018-10-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document that the target user's groups may be specified via the -g
	option.
	[fb015fac1]

	* plugins/sudoers/tsgetgrpw.c:
	Include getpwent() version of sudo_getgrouplist2_v1() from
	getgrouplist.c
	[03c56db40]

	* MANIFEST, plugins/sudoers/regress/testsudoers/group,
	plugins/sudoers/regress/testsudoers/test1.sh:
	Use a testsudoers group file with known contents instead of the
	system one.
	[0398996b3]

	* plugins/sudoers/match.c, plugins/sudoers/parse.h,
	plugins/sudoers/set_perms.c:
	Allow the group set by "sudo -g" to be any of the target user's
	groups. Previously, this was only allowed if the group matched the
	target user's primary group ID (from the passwd database entry). The
	sudoers policy will now allow the group if it is one of the target
	user's supplemental groups as well.
	[391ed95f5]

2018-10-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/regress/getgrouplist/getgrouplist_test.c:
	Skip sudo_getgrouplist2() check on systems with getgrouplist_2().
	sudo_getgrouplist2() is just a wrapper on such systems and this
	avoids a test failure on macOS where a user is automatically a
	member of certain groups.
	[ffe2041a0]

	* lib/util/util.exp.in:
	Add missing exported symbol sudo_term_eof
	[e22410ba6]

	* plugins/sudoers/ldap_conf.c:
	Add missing #ifdef LDAP_OPT_X_TLS_REQUIRE_CERT Fixes problems
	building on older LDAP sdks.
	[059796930]

	* MANIFEST:
	add getgrouplist_test.c
	[5eb0fbd07]

	* lib/util/regress/getgrouplist/getgrouplist_test.c:
	Check the user's primary gid from the passwd file too.
	[a3cb22b46]

	* .hgignore:
	ignore prologue
	[06035f193]

	* lib/util/aix.c, lib/util/arc4random.c,
	lib/util/arc4random_uniform.c, lib/util/closefrom.c,
	lib/util/digest.c, lib/util/digest_gcrypt.c,
	lib/util/digest_openssl.c, lib/util/event.c, lib/util/event_poll.c,
	lib/util/event_select.c, lib/util/fatal.c, lib/util/fnmatch.c,
	lib/util/getentropy.c, lib/util/getgrouplist.c,
	lib/util/gethostname.c, lib/util/getline.c, lib/util/getopt_long.c,
	lib/util/gettime.c, lib/util/gidlist.c, lib/util/isblank.c,
	lib/util/key_val.c, lib/util/lbuf.c, lib/util/locking.c,
	lib/util/memrchr.c, lib/util/memset_s.c, lib/util/mksiglist.c,
	lib/util/mksigname.c, lib/util/mktemp.c, lib/util/nanosleep.c,
	lib/util/parseln.c, lib/util/pipe2.c, lib/util/progname.c,
	lib/util/pw_dup.c, lib/util/reallocarray.c,
	lib/util/regress/atofoo/atofoo_test.c,
	lib/util/regress/getgrouplist/getgrouplist_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c,
	lib/util/regress/vsyslog/vsyslog_test.c, lib/util/secure_path.c,
	lib/util/setgroups.c, lib/util/sha2.c, lib/util/sig2str.c,
	lib/util/strlcat.c, lib/util/strlcpy.c, lib/util/strndup.c,
	lib/util/strnlen.c, lib/util/strsignal.c, lib/util/strsplit.c,
	lib/util/strtobool.c, lib/util/strtoid.c, lib/util/strtomode.c,
	lib/util/strtonum.c, lib/util/sudo_conf.c, lib/util/sudo_debug.c,
	lib/util/sudo_dso.c, lib/util/term.c, lib/util/ttyname_dev.c,
	lib/util/ttysize.c, lib/util/utimens.c, lib/util/vsyslog.c,
	plugins/group_file/getgrent.c, plugins/group_file/group_file.c,
	plugins/group_file/plugin_test.c, plugins/sample/sample_plugin.c,
	plugins/sudoers/Makefile.in, plugins/sudoers/alias.c,
	plugins/sudoers/audit.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/base64.c, plugins/sudoers/boottime.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/check.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/defaults.c,
	plugins/sudoers/digestname.c, plugins/sudoers/editor.c,
	plugins/sudoers/env.c, plugins/sudoers/env_pattern.c,
	plugins/sudoers/file.c, plugins/sudoers/filedigest.c,
	plugins/sudoers/find_path.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gc.c, plugins/sudoers/gentime.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getspwuid.c,
	plugins/sudoers/gmtoff.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/gram.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/hexchar.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/iolog_util.c, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_conf.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/logwrap.c,
	plugins/sudoers/match.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/mkdir_parents.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse_ldif.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/rcstr.c,
	plugins/sudoers/redblack.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/iolog_util/check_iolog_util.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/parser/check_hexchar.c,
	plugins/sudoers/regress/starttime/check_starttime.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/solaris_audit.c,
	plugins/sudoers/sssd.c, plugins/sudoers/starttime.c,
	plugins/sudoers/strlist.c, plugins/sudoers/stubs.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudo_printf.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timeout.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/timestr.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke_util.c, plugins/sudoers/tsdump.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c,
	plugins/system_group/system_group.c, src/conversation.c,
	src/env_hooks.c, src/exec.c, src/exec_common.c, src/exec_monitor.c,
	src/exec_nopty.c, src/exec_pty.c, src/get_pty.c, src/hooks.c,
	src/load_plugins.c, src/net_ifs.c, src/openbsd.c, src/parse_args.c,
	src/preload.c, src/preserve_fds.c,
	src/regress/noexec/check_noexec.c,
	src/regress/ttyname/check_ttyname.c, src/selinux.c, src/sesh.c,
	src/signal.c, src/solaris.c, src/sudo.c, src/sudo_edit.c,
	src/sudo_noexec.c, src/tcsetpgrp_nobg.c, src/tgetpass.c,
	src/ttyname.c, src/utmp.c:
	Convert PVS-Studio comment to ANSI C.
	[6c3d20cb4]

	* Makefile.in, doc/Makefile.in, doc/cvtsudoers.man.in,
	doc/cvtsudoers.mdoc.in, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	doc/sudoers_timestamp.man.in, doc/sudoers_timestamp.mdoc.in,
	doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in, doc/visudo.man.in,
	doc/visudo.mdoc.in, examples/Makefile.in, include/Makefile.in,
	include/sudo_lbuf.h, lib/util/Makefile.in, lib/util/digest.c,
	lib/util/digest_gcrypt.c, lib/util/digest_openssl.c,
	lib/util/lbuf.c, lib/util/setgroups.c, lib/util/ttysize.c,
	lib/zlib/Makefile.in, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/alias.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/base64.c,
	plugins/sudoers/file.c, plugins/sudoers/filedigest.c,
	plugins/sudoers/gentime.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/match.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/parse.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timeout.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/tsdump.c,
	plugins/system_group/Makefile.in, src/Makefile.in, src/sesh.c,
	src/sudo_usage.h.in:
	Fix some mangled text in the license block.
	[019279a4b]

	* lib/util/Makefile.in,
	lib/util/regress/getgrouplist/getgrouplist_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c:
	Add regress test for sudo_getgrouplist2(). This test assumes all the
	groups in root's group list can be resolved by group ID.
	[404524c4e]

2018-10-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	More changes in 1.8.26
	[50b581ec3]

	* MANIFEST, doc/cvtsudoers.cat, doc/cvtsudoers.man.in,
	doc/cvtsudoers.mdoc.in, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers.h, plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/regress/cvtsudoers/test31.conf,
	plugins/sudoers/regress/cvtsudoers/test31.out.ok,
	plugins/sudoers/regress/cvtsudoers/test31.sh,
	plugins/sudoers/regress/cvtsudoers/test32.out.ok,
	plugins/sudoers/regress/cvtsudoers/test32.sh:
	Add padding option to cvtsudoers. Bug #856
	[1b035b542]

	* lib/util/getgrouplist.c:
	Remove an errant grset++ in the AIX version of sudo_getgrouplist2().
	Bug #857
	[78d35de93]

2018-10-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/Makefile.in, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Pass --sourcetree-root to pvs-studio and don't check sudo_noexec.c.
	Since we don't auto-generate dependencies for sudo_noexec.c we can't
	easily check it from outside the source tree. This is not a problem
	as it just contains stub functions.
	[cb588f233]

	* MANIFEST, doc/CONTRIBUTORS, po/ast.mo, po/ast.po:
	Asturian translation for sudo from translationproject.org
	[56cff772e]

2018-10-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/gettime.c:
	Add support for CLOCK_MONOTONIC_RAW and CLOCK_UPTIME_RAW, present on
	macOS.
	[3710d5ba0]

	* INSTALL, configure, configure.ac:
	Add --enable-pvs-studio configure option to create PVS-Studio.cfg.
	[4c82e18ac]

	* .hgignore, Makefile.in, doc/Makefile.in, examples/Makefile.in,
	include/Makefile.in, lib/util/Makefile.in, lib/zlib/Makefile.in,
	mkdep.pl, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Add pvs-studio target and associated production rules.
	[c5df09112]

	* lib/util/aix.c, lib/util/arc4random.c,
	lib/util/arc4random_uniform.c, lib/util/closefrom.c,
	lib/util/digest.c, lib/util/digest_gcrypt.c,
	lib/util/digest_openssl.c, lib/util/event.c, lib/util/event_poll.c,
	lib/util/event_select.c, lib/util/fatal.c, lib/util/fnmatch.c,
	lib/util/getentropy.c, lib/util/getgrouplist.c,
	lib/util/gethostname.c, lib/util/getline.c, lib/util/getopt_long.c,
	lib/util/gettime.c, lib/util/gidlist.c, lib/util/isblank.c,
	lib/util/key_val.c, lib/util/lbuf.c, lib/util/locking.c,
	lib/util/memrchr.c, lib/util/memset_s.c, lib/util/mksiglist.c,
	lib/util/mksigname.c, lib/util/mktemp.c, lib/util/nanosleep.c,
	lib/util/parseln.c, lib/util/pipe2.c, lib/util/progname.c,
	lib/util/pw_dup.c, lib/util/reallocarray.c,
	lib/util/regress/atofoo/atofoo_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c,
	lib/util/regress/vsyslog/vsyslog_test.c, lib/util/secure_path.c,
	lib/util/setgroups.c, lib/util/sha2.c, lib/util/sig2str.c,
	lib/util/strlcat.c, lib/util/strlcpy.c, lib/util/strndup.c,
	lib/util/strnlen.c, lib/util/strsignal.c, lib/util/strsplit.c,
	lib/util/strtobool.c, lib/util/strtoid.c, lib/util/strtomode.c,
	lib/util/strtonum.c, lib/util/sudo_conf.c, lib/util/sudo_debug.c,
	lib/util/sudo_dso.c, lib/util/term.c, lib/util/ttyname_dev.c,
	lib/util/ttysize.c, lib/util/utimens.c, lib/util/vsyslog.c,
	plugins/group_file/getgrent.c, plugins/group_file/group_file.c,
	plugins/group_file/plugin_test.c, plugins/sample/sample_plugin.c,
	plugins/sudoers/alias.c, plugins/sudoers/audit.c,
	plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/base64.c,
	plugins/sudoers/boottime.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/check.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/defaults.c,
	plugins/sudoers/digestname.c, plugins/sudoers/editor.c,
	plugins/sudoers/env.c, plugins/sudoers/env_pattern.c,
	plugins/sudoers/file.c, plugins/sudoers/filedigest.c,
	plugins/sudoers/find_path.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gc.c, plugins/sudoers/gentime.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getspwuid.c,
	plugins/sudoers/gmtoff.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/gram.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/hexchar.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/iolog_util.c, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_conf.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/logwrap.c,
	plugins/sudoers/match.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/mkdir_parents.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse_ldif.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/rcstr.c,
	plugins/sudoers/redblack.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/iolog_util/check_iolog_util.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/parser/check_hexchar.c,
	plugins/sudoers/regress/starttime/check_starttime.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/solaris_audit.c,
	plugins/sudoers/sssd.c, plugins/sudoers/starttime.c,
	plugins/sudoers/strlist.c, plugins/sudoers/stubs.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudo_printf.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timeout.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/timestr.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke_util.c, plugins/sudoers/tsdump.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c,
	plugins/system_group/system_group.c, src/conversation.c,
	src/env_hooks.c, src/exec.c, src/exec_common.c, src/exec_monitor.c,
	src/exec_nopty.c, src/exec_pty.c, src/get_pty.c, src/hooks.c,
	src/load_plugins.c, src/net_ifs.c, src/openbsd.c, src/parse_args.c,
	src/preload.c, src/preserve_fds.c,
	src/regress/noexec/check_noexec.c,
	src/regress/ttyname/check_ttyname.c, src/selinux.c, src/sesh.c,
	src/signal.c, src/solaris.c, src/sudo.c, src/sudo_edit.c,
	src/sudo_noexec.c, src/tcsetpgrp_nobg.c, src/tgetpass.c,
	src/ttyname.c, src/utmp.c:
	Add comments in .c files so PVS-Studio will check them.
	[64e5d34c5]

2018-10-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog_util.c:
	Simplify range checks. No need to check for ERANGE in the cases
	where we also check that the value is <= INT_MAX. Found by
	PVS-Studio.
	[45652e6d7]

2018-10-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/key_val.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/toke_util.c,
	src/preserve_fds.c:
	Avoid some PVS-Studio false positives.
	[8c94175ba]

	* src/sudo.c:
	Remove some calls to sudo_fatalx(); just propagate the error return.
	[e9dec0f8d]

	* src/sesh.c:
	No need to check if fd_dst is -1 in sudoedit mode. Failure to open
	the destination sudoedit file is fatal so there's no need to check
	that fd_dst != -1 later on. Found by PVS-Studio.
	[6a85992b3]

	* plugins/sudoers/timestamp.c:
	In timestamp_open() no need to free cookie on error, it is NULL.
	Found by PVS-Studio.
	[6786d53d4]

2018-10-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/ldap_util.c:
	Fix a memory leak on malloc() error in sudo_ldap_role_to_priv().
	Coverity CID 188804
	[deccfe68f]

	* plugins/sudoers/parse_ldif.c:
	Move the allocation of role to be immediately before in_role is set.
	This makes it clear that when in_role == true, role is non-NULL.
	Also remove two dead stores.
	[84ef50006]

	* plugins/sudoers/parse_ldif.c:
	Fix trimming of non-escaped trailing space in
	ldif_parse_attribute(). Found by PVS-Studio.
	[2ff8f8601]

	* plugins/sudoers/match.c:
	Simplify the logic surrounding sudoers_args in command_args_match().
	We only need to check that sudoers_args is non-NULL once. Found by
	PVS-Studio.
	[c2d93b8c9]

	* plugins/sudoers/ldap.c:
	If sudo_ldap_get_values_len() fails goto cleanup instead of oom.
	This is not strictly necessary as there's not anything to cleanup in
	this case but it is more consistent with the code that follows.
	[54784a234]

	* plugins/sudoers/policy.c:
	Fix handling of timeout values in sudoers. When passing the timeout
	back to the front end, ignore the user-specified timeout if it is
	not set (initialized to 0). Otherwise, sudo would choose a zero
	user-specified timeout over the sudoers-specified timeout
	(non-zero).
	[63afa569f]

2018-10-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_pwutil.c:
	Fix cut & pastos in cvtsudoers_make_gritem()
	[675fc34c3]

	* plugins/sudoers/regress/sudoers/test17.ldif2sudo.ok:
	Fix expected test output now that command_timeout is parsed
	correctly in LDIF.
	[60f0d65e2]

	* lib/util/event.c, lib/util/event_poll.c, lib/util/event_select.c:
	tv_nsec can never be negative after timespecsub. Found by PVS Studio
	[939585e90]

2018-10-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Avoid potentially undefined behavior. Found by PVS Studio.
	[25a58ba1c]

	* plugins/sudoers/ldap_util.c:
	sudo_ldap_parse_option() never returns '=' as the operator. When
	parsing command_timeout, role, type, privs and limitprivs, check
	that val is non-NULL instead. Found by PVS Studio.
	[e1a402f1d]

	* plugins/sudoers/Makefile.in, plugins/sudoers/toke.c:
	Fix up #line entries that reference lex.sudoers.c.
	[a9fd783f2]

2018-10-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog.h, plugins/sudoers/iolog_util.c:
	Fix workaround for broken sudo 1.8.7 timing files.
	[387672583]

	* plugins/sudoers/parse_ldif.c:
	Fix memory leak when reusing the runas list. We need to free the
	member list itself as well as its contents.
	[fa7e6f3f0]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Some DIAGNOSTICS updates: Update error message for when the user's
	uid does not exist in passwd. Remove "This error indicates" and some
	other cosmetic cleanups.
	[75d9c6f16]

	* src/sudo.c:
	If the user's passwd entry cannot be resolved via the uid, use the
	same error message as visudo.
	[fbf396e33]

2018-10-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Add a DIAGNOSTICS section with an explanation of the more
	non-trivial error messages.
	[ae7198a24]

	* plugins/sudoers/sudoreplay.c, src/exec_monitor.c,
	src/exec_nopty.c, src/exec_pty.c:
	Replace sudo_fatal(NULL) with an "unable to allocate memory" message
	that includes the function name.
	[b89cf34b5]

2018-10-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in, src/tgetpass.c:
	Make EOF handling while reading the password prompt more like
	getpass(3). We now return the password as long as at least one
	character has been read. Previously, EOF at the password prompt was
	treated as if nothing was entered.
	[9e269e0ac]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in:
	regen
	[7b395aad8]

	* src/tgetpass.c:
	Print a warning for password read issues. Issues include: timeout at
	the password prompt, read error while reading the password, and EOF
	reading the password.
	[ab2cba0f5]

2018-10-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/term.c, src/tgetpass.c:
	Handle EOF on password input when pwfedback is enabled.
	[2b5625221]

2018-10-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.ldap.mdoc.in:
	Fix remaining instances of "e.g." without a trailing ','.
	[013e0025c]

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in, doc/sudoers.cat,
	doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	doc/sudoers_timestamp.cat, doc/sudoers_timestamp.man.in,
	doc/sudoers_timestamp.mdoc.in:
	Use mdoc macros for BSD systems. All manuals now pass "make lint"
	[675802b71]

	* doc/Makefile.in:
	Use -Wstyle with -Tlint since sudo is not part of the base system.
	This avoids "referenced manual not found" and "operating system
	explicitly specified" warnings.
	[244be2330]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Document log_suspend() and fix the description of the
	change_winsize() return value.
	[5433eb546]

2018-10-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, doc/sudoers_timestamp.cat,
	doc/sudoers_timestamp.man.in, doc/sudoers_timestamp.mdoc.in,
	doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Fix problems found by igor. Bug #854
	[dd6a6e401]

	* doc/Makefile.in:
	Sort DOCS and DEVDOCS and remove extra sudoers entry (it was listed
	twice).
	[a814da673]

	* doc/Makefile.in:
	Add igor target to run igor(1) on the manuals.
	[ec2cc68c0]

2018-10-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	plugins/sudoers/sudoreplay.c:
	Add new -S option to sleep while the command was suspended. The
	default behavior is now to not consider the time the command was
	suspended as part of the normal inter-event delay.
	[a71eb86a7]

	* MANIFEST, include/sudo_plugin.h, plugins/sudoers/Makefile.in,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog.h,
	plugins/sudoers/iolog_event.h, plugins/sudoers/iolog_files.h,
	plugins/sudoers/iolog_util.c, plugins/sudoers/iolog_util.h,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/iolog_util/check_iolog_util.c,
	plugins/sudoers/sudoreplay.c, src/exec_pty.c:
	Add a suspend event type to the I/O log to log suspend/resume of the
	command so we can skip that delay during replay.
	[cf07dc075]

	* src/exec_pty.c, src/sudo.c, src/sudo.h:
	Initialize the pty rows/cols based on the values we stored in
	user_details. This fixes a minor issue where we would send an extra
	window size change event the first time the command was suspended.
	[e2570307e]

2018-09-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/sudo_ldap_conf.h:
	Add support for OpenLDAP's TLS_REQCERT setting in ldap.conf.
	[c0e8bde10]

2018-09-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_util.h, plugins/sudoers/defaults.c,
	plugins/sudoers/iolog_util.c,
	plugins/sudoers/regress/starttime/check_starttime.c:
	Move definition of TIME_T_MAX to sudo_util.h
	[212169387]

	* NEWS, doc/UPGRADE:
	Changes in 1.8.26 (so far).
	[4c4f44621]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/env.c:
	Treat LOGIN, LOGNAME and USER specially. If one is preserved or
	deleted we want to preserve or delete all of them.
	[d537daf78]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/env.c,
	plugins/sudoers/logging.c, plugins/sudoers/regress/visudo/test6.sh:
	Remove special handling of the USERNAME environment variable. It
	used to be set on old versions of Fedora but that hasn't been the
	case for some time. It's worth noting that ssh doesn't set USERNAME
	either.
	[5f61f2c0f]

	* configure, configure.ac:
	sudo 1.8.26
	[ce9a7dd25]

2018-09-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo.c:
	Remove unused system_maxgroups argument from fill_group_list().
	[9abcd6160]

	* lib/util/getgrouplist.c:
	Pass getgrouplist() NGROUPS_MAX+1, not NGROUPS_MAX so we have room
	for the primary gid.
	[d8870177c]

2018-09-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_json.c:
	In print_member_json_int() eliminate the need_newline variable and
	just move the non-alias expansion printing bits into the else
	clause, including the newline and comma printing.
	[72ce2c807]

	* MANIFEST, plugins/sudoers/regress/cvtsudoers/test30.out.ok,
	plugins/sudoers/regress/cvtsudoers/test30.sh:
	Add regress test for bug #853
	[8bf279b11]

	* plugins/sudoers/cvtsudoers_json.c:
	When expanding an alias in print_member_json_int() avoid printing an
	extra comma at the end of the entry. Bug #853.
	[8aad36508]

2018-09-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/CONTRIBUTORS:
	Add Kan Sasaki
	[8e1e46433]

	* NEWS, configure, configure.ac:
	sudo 1.8.25p1
	[365a1ecd4]

	* lib/util/event_poll.c:
	Fix a crash in the event system's poll() backend introduced with
	support for nanosecond timers. Only affects systems without ppoll().
	Bug #851
	[c639c965c]

2018-09-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot:
	regen
	[1a9b932ff]

2018-08-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c:
	Allow for some clock drift due to ntpd, etc.
	[27e549a3e]

	* plugins/sudoers/visudo.c:
	If sudo_lock_file() fails for a reason other than the file already
	being locked, give the user a chance to edit anyway.
	[470a7830d]

2018-08-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/cvtsudoers/test28.sh:
	Quick sort is not a stable sort; use distinct sudoOrder values so
	the output is predictable.
	[0715b5547]

	* lib/util/regress/atofoo/atofoo_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	plugins/sudoers/ldap.c,
	plugins/sudoers/regress/parser/check_base64.c:
	Fix warnings on OpenIndiana (Illumos)
	[a924b4610]

	* plugins/sudoers/ldap.c:
	Correct ldap_to_sudoers() return value.
	[765d99e1f]

	* NEWS:
	Bug #849
	[6e4f8c8cd]

	* plugins/sudoers/sssd.c:
	The sssd backend used to take the first match, assuming that entries
	were sorted in descending order by sudoOrder. That allowed it to
	avoid iterating over the entire list of rules. Now that we convert
	to a sudoers parse tree, we need to convert rules in ascending
	order, not descending. The simplest way to accomplish this is to
	simply iterate over the rules from last to first, reversing the sort
	order. Bug #849
	[ae04b40c0]

	* MANIFEST, plugins/sudoers/regress/cvtsudoers/test28.out.ok,
	plugins/sudoers/regress/cvtsudoers/test28.sh,
	plugins/sudoers/regress/cvtsudoers/test29.out.ok,
	plugins/sudoers/regress/cvtsudoers/test29.sh:
	Add some more ldif -> sudoers tests to verify sudoOrder.
	[2221fbe2f]

	* plugins/sudoers/ldap.c:
	For conversion to a sudoers parse tree, ldap_entry_compare() now
	needs to sort in ascending order, not descending. Bug #849
	[ea38e9d90]

2018-08-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c:
	No need to set input_file for stdin in parse_ldif(); noted by clang
	analyzer.
	[58445393a]

	* plugins/sudoers/iolog_util.c:
	Use TIME_T_MAX when parsing the I/O log file timestamp and disallow
	negative times.
	[e0b413eb1]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/iolog_util.c, plugins/sudoers/iolog_util.h,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/regress/iolog_util/check_iolog_util.c,
	plugins/sudoers/sudoreplay.c:
	When parsing an I/O log timing line, store the result in a timespec,
	not a double. The speed factor (for scaling the delay) in sudoreplay
	is still a double but we only need to adjust the delay if the factor
	is something other than 1.0.
	[e318f27fb]

	* plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c:
	Fix memory leak in test.
	[f1f632665]

	* doc/cvtsudoers.cat, doc/sudo.cat, doc/sudo.conf.cat,
	doc/sudo_plugin.cat, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers_timestamp.cat, doc/sudoreplay.cat, doc/visudo.cat:
	regen
	[f9b3223ed]

2018-08-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/env.c:
	Update conversion of DID_* to KEPT_* to match the new values of
	DID_* and KEPT_*.
	[2ff787026]

	* NEWS, plugins/sudoers/env.c:
	Set the LOGIN environment variable on AIX like we do LOGNAME.
	[8acc29dc0]

2018-08-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, m4/sudo.m4,
	plugins/sudoers/bsm_audit.c:
	Add a test for the 4-argument au_close() function found in Solaris
	11 instead of assuming it is present if __sun is defined. Fixes a
	compilation error on OpenIndiana and older Solaris versions.
	[fdd729612]

	* doc/CONTRIBUTORS:
	Add Miguel Sanders and Scott Cheloha
	[a22296788]

	* NEWS:
	testsudoers changes
	[5bac1e0dd]

	* plugins/sudoers/Makefile.in, plugins/sudoers/testsudoers.c:
	Add ldif support to testsudoers
	[901b2666f]

2018-08-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/parse.h,
	plugins/sudoers/parse_ldif.c:
	Move ldif -> sudoers conversion code into parse_ldif.c
	[4782b22a4]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/strlist.c,
	plugins/sudoers/strlist.h:
	Move string list functions to their own file.
	[52d54997e]

	* lib/util/Makefile.in:
	sync
	[5fea22e51]

2018-08-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_event.h, lib/util/event.c, lib/util/util.exp.in:
	Backward ABI compatibility for even functions that use a timeval.
	[63f7aa8fc]

	* lib/util/event.c, lib/util/event_poll.c, lib/util/event_select.c:
	Use a monotonic timer for the event subsystem.
	[6b76f9dbd]

	* config.h.in, configure, configure.ac, include/sudo_event.h,
	lib/util/event.c, lib/util/event_poll.c, lib/util/event_select.c,
	plugins/sudoers/iolog_util.h, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoreplay.c:
	Use struct timespec, not struct timeval in the event subsystem. Use
	ppoll() or pselect() if avaialble which use timespec.
	[04d1f56d9]

2018-08-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgignore:
	sync
	[1f248504a]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c:
	Eliminate most use of parsed_sudoers in cvtsudoers
	[5d1dddc46]

	* plugins/sudoers/alias.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers_json.c, plugins/sudoers/parse.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Make alias_apply() take 3 arguments, the first being a pointer to
	the struct sudoers_parse_tree.
	[b2e3adccf]

2018-08-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c:
	Handle systems where root's gid is not 0.
	[4b3c8a73a]

	* plugins/sudoers/iolog_util.c, plugins/sudoers/iolog_util.h:
	Add missing files from last commit.
	[2960e3963]

	* .hgignore, MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/po/sudoers.pot,
	plugins/sudoers/regress/iolog_plugin/check_iolog_plugin.c,
	plugins/sudoers/sudoreplay.c:
	Add regress test for I/O log plugin endpoints
	[aaad554cd]

	* plugins/sudoers/iolog.c:
	We cannot reuse last_time for the I/O log info file now that it is a
	monotonic timer. Just call time(3) in write_info_log() directly.
	[0d36ea932]

	* src/exec_pty.c:
	Move the loop to free the monitor_messages list into
	free_exec_closure_pty()
	[59e5e379b]

	* po/sudo.pot:
	regen
	[93fc7cf6d]

2018-08-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/getentropy.c:
	Fix typo in last commit.
	[fe965c3a3]

	* config.h.in, configure, configure.ac, lib/util/getentropy.c:
	Do not assume all Linux has linux/random.h. Add missing
	sys/syscall.h include
	[d876602db]

	* plugins/sudoers/policy.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/visudo.c, src/sudo_edit.c:
	Cast uid/gid to unsigned int before printing.
	[fe5806254]

	* include/sudo_compat.h:
	Only include stdarg.h if we need it.
	[10198ef6f]

	* plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/ldap.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/rcstr.c, plugins/sudoers/timestamp.c,
	src/sudo_noexec.c:
	Include stddef.h for offsetof() definition.
	[aaefdd757]

	* plugins/sudoers/bsm_audit.c, plugins/sudoers/timestamp.c:
	fix compiler warnings on Solaris 11
	[dcf168e70]

	* lib/util/getentropy.c:
	Fix setting of errno when gotdata() fails.
	[ad104a3e4]

	* NEWS:
	Bugs 846 and 847
	[6e4ec9180]

	* include/sudo_compat.h:
	We still need to include string.h for AIX (and possibly others) when
	we are not using the system memset_r() function and rsize_t is
	defined by the system headers.
	[5a0c86bb6]

	* configure, configure.ac, include/sudo_compat.h, mkpkg:
	Add --enable-package-build to give configure a hint that we are
	building a package. This can be used to avoid relying on libc
	functions that may not be present in all libc versions for a
	particular system. For instance, AIX 7.1 may or may not have
	memset_s() and getline() present.
	[957f284bb]

	* include/sudo_compat.h:
	AIX defines rsize_t in string.h, not stddef.h for use by the
	memset_s() prototype. We use our own memset_s() on AIX since it is
	not available on all BOS levels which makes package building
	problematic.
	[d9dec9327]

2018-08-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/defaults.c:
	Fix printing of T_TIMESPEC values.
	[9e6c14b09]

	* plugins/sudoers/iolog.c:
	Remove unused struct script_buf
	[31e065c6c]

2018-08-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Document when the I/O log timing file entry bug was introduced.
	[8d83bd5c0]

	* NEWS:
	sync
	[afca08c74]

	* config.h.in, configure, configure.ac, lib/util/gettime.c:
	HP-UX doesn't suport CLOCK_MONOTONIC but we can use gethrtime()
	instead.
	[df1c06252]

	* src/exec_monitor.c, src/exec_pty.c:
	Close the pty slave in the parent so that when the command and
	monitor exit, the pty gets recycled without our having to close it
	directly.
	[5cca42186]

	* lib/util/term.c, src/exec_monitor.c, src/exec_pty.c, src/sudo.h:
	Move updating of the window size to the monitor process. This will
	allow us to close the slave in the main sudo process in the future
	so only the command and monitor have it open.
	[6953e7fc7]

	* configure, configure.ac:
	sudo 1.8.25
	[db8a760b0]

	* plugins/sudoers/regress/sudoers/test19.ldif2sudo.ok:
	Fix test output for bug #845
	[3c562facc]

	* plugins/sudoers/ldap_util.c:
	Fix pasto when converting sudoNotAfter; from Miguel Sanders Bug #845
	[5af268228]

2018-08-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog.c:
	Use a monotonic timer that only runs while not suspended for the
	iolog timing values and write nsec-precision entries.
	[3f1470ebe]

	* aclocal.m4, config.h.in, configure, configure.ac,
	include/sudo_util.h, lib/util/gettime.c, lib/util/util.exp.in:
	Add sudo_gettime_uptime() to measure time while not sleeping.
	[b3227d3ed]

2018-08-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* mkpkg:
	Detect number of CPUs on AIX.
	[e74d7e872]

	* plugins/sudoers/iolog.c:
	Fix I/O log timing file on systems without a C99-compatible
	snprintf(). On those systems we use our own snprintf() that doesn't
	support floating point. We don't actually need floating point in
	this case since the we can print seconds and microseconds without
	using it.
	[afad4eb94]

	* NEWS:
	Fix for Bug #844
	[46ab293ce]

	* src/sudo_edit.c:
	Handle the case where O_PATH or O_SEARCH is defined but O_DIRECTORY
	is not. In theory, O_DIRECTORY is redundant when O_SEARCH is
	specified but it is legal for O_EXEC and O_SEARCH to have the same
	value. Bug #844
	[69541be94]

2018-08-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	sync
	[288f3f17a]

	* plugins/sudoers/starttime.c:
	Fix get_starttime() on HP-UX.
	[92975ee7c]

	* src/net_ifs.c:
	Avoid a compilation problem on HP-UX 11.31 with gcc and
	machine/sys/getppdp.h
	[7d014dfac]

	* mkpkg:
	Detect number of CPUs on HP-UX. Use MAKE environment variable if
	set.
	[d7e265939]

2018-08-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/Makefile.in:
	Add CHECK_SYMBOLS_LDFLAGS to check_symbols target. Non-ELF HP-UX
	executables don't support SHLIB_PATH or LD_LIBRARY_PATH unless ld is
	passed the +s flag. This lets the check_symbols test pass on systems
	where the ldap libraries aren't installed in the standard location.
	[9317367e2]

2018-08-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/Makefile.in:
	For the lint target, don't stop after the first manual that fails
	lint.
	[18ddabfeb]

	* plugins/sudoers/timestamp.c:
	Add debugging info so we can tell why a timestamp record doesn't
	match.
	[7a929ce13]

2018-08-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	typo
	[c0d60b9dd]

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po, po/da.mo,
	po/da.po:
	sync with translationproject.org
	[a7b42e9b2]

2018-08-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	sync
	[c5f64b741]

2018-08-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/iolog.c:
	Fix the return value of sudoers_io_change_winsize() on success.
	Otherwise, we only log a single window size change.
	[418bf793f]

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po:
	sync with translationproject.org
	[d02646928]

2018-08-07  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Fix ambiguity when talking about Aliases. We can't use User_Alias in
	the grammar as both the definition of the Alias as well as its name.
	This adds {User,Runas,Host,Cmnd}_Alias_Spec to help differentiate
	between the name of the alias and its definition. Bug #834
	[0484e3d6a]

	* doc/cvtsudoers.cat, doc/sudoreplay.cat:
	regen
	[9722b304b]

	* Makefile.in:
	Warn if unable to run xgettext or msgfmt.
	[78190bb9c]

2018-08-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/hr.mo,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/ja.mo,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pt_BR.mo,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/uk.mo,
	plugins/sudoers/po/vi.mo:
	sync with translationproject.org
	[0053b07ed]

2018-08-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/fmtsudoers.c, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_util.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/policy.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Refactor code to convert defaults to tags and do conversion on
	output for "sudo -l".

	Remove the short_list (was long_list) global in favor of a verbose
	argument.
	[1e5af3556]

2018-08-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/policy.c:
	Assign short_list true, not 1 now that it is a boolean.
	[413b53cda]

	* plugins/sudoers/fmtsudoers.c:
	fix typo
	[db387a53a]

2018-08-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/rcstr.c:
	Fix a warning on FreeBSD which has a fancier __containerof
	implementation.
	[9cc09e437]

	* plugins/sudoers/po/de.po, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/it.po, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/pl.po, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sv.po, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.po:
	sync with translationproject.org
	[6a692fec3]

2018-08-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* aclocal.m4, autogen.sh, config.h.in, configure:
	Regen with aclocal 1.15.1.
	[f4a5d2b3e]

	* plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/policy.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	For ldap/sssd, include defaults in the generate privilege unless we
	are listing in short mode (in which case we convert them to tags if
	possible). Fixes a problem where sudoOptions were not being applied
	to the command.
	[608574a21]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/parse.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	update_defaults() needs to be able to take a defaults_list for the
	ldap/sssd backends which support per-role defaults.
	[171686c42]

2018-07-31  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot:
	regen
	[34655148e]

2018-07-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Update
	[3b5723085]

2018-07-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/alias.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/file.c,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/ldap.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	o Move userspecs, defaults and aliases into a new struct
	sudoers_parse_tree. o The parse tree is now passed to the alias,
	match and defaults functions. o The nss API has been changed so that
	the nss parse() function returns a pointer to a struct
	sudoers_parse_tree which will be filled in by the getdefs() and
	query() functions.
	[70d519c8a]

	* lib/util/getgrouplist.c:
	Don't need to preallocate 4 x NGROUP_MAX on AIX or BSD/Linux. For
	BSD/Linux, getgrouplist(3) will tell us the number of groups if we
	don't have enough. For AIX, we can count the entries in the group
	set before allocating the group vector.
	[86413f95e]

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/auth/sudo_auth.h,
	plugins/sudoers/check.c, plugins/sudoers/sudoers.h:
	Ignore PAM_NEW_AUTHTOK_REQD and PAM_AUTHTOK_EXPIRED errors from
	pam_acct_mgmt() if authentication is disabled for the user. Bug #843
	[394524fd5]

2018-07-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	Work around a bug on AIX where closing the pty slave causes the main
	sudo process to lose its controlling tty (which was *not* the pty
	slave).
	[dc1e0e716]

	* src/sudo.c:
	Add missing aix_restoreauthdb() call to match the aix_setauthdb()
	added in b8a011be9af7. Fixes issues on AIX where local users/groups
	may not be resolved when some NIS/AD/LDAP is used for users.
	[5d31be96a]

	* lib/util/getgrouplist.c:
	Linux getgrouplist(3) returns the number of groups on success
	instead of 0 like BSD.
	[e7daff062]

2018-07-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* mkdep.pl, plugins/sudoers/Makefile.in:
	When both a .o and .lo file was used in a Makefile, we used to make
	the .o depend on the .lo. Unfortunately, this creates a race
	condition for parallel make since libtool is not atomic (it creates
	a .o and then renames it when building PIC objects for shared libs).

	We always link with libtool so the only reason to prefer the .o over
	the .lo file is to avoid mixing .o and .lo in the dependencies.
	That's not a good enough reason so change mkdep.pl to warn when both
	a .o and .lo are referenced in a Makefile and do nothing else.

	Bug #842
	[36e21a216]

2018-07-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/ldap.c:
	Avoid duplicate free when netgroup_base is invalid.
	[2270b1e89]

2018-07-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/arc4random.h:
	Use madvise(2) with MADV_WIPEONFORK if available.
	[33f96a034]

2018-07-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	po/eo.mo, po/eo.po:
	sync with translationproject.org
	[4b54799dd]

	* NEWS:
	Update.
	[c84c32d9e]

2018-06-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	sync with schema.OpenLDAP
	[4859b7879]

	* doc/schema.OpenLDAP:
	RFC 2849 specifies whitespace as the space character only so replace
	tabs with spaces. Bug #840
	[433a74d1d]

	* doc/schema.OpenLDAP:
	Fix typo; bug #839
	[dd3366106]

2018-06-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	Should no longer need to set max_groups.
	[e1ecc7142]

2018-06-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_pwutil.c,
	plugins/sudoers/pwutil_impl.c, src/sudo.c:
	Use new sudo_getgrouplist2() function instead of getgrouplist().
	[c57ca7440]

	* configure, configure.ac, include/sudo_compat.h,
	include/sudo_util.h, lib/util/Makefile.in, lib/util/getgrouplist.c,
	lib/util/util.exp.in:
	Add sudo_getgrouplist2() to dynamically allocate the group vector.
	This allows us to avoid repeatedly calling getgrouplist() with a
	statically sized vector on macOS, Solaris, HP-UX, and AIX.
	[0ae966283]

	* src/conversation.c:
	Fix fd leak introduced by SUDO_CONV_PREFER_TTY commit. Coverity CID
	186605.
	[138561379]

2018-06-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in, doc/sudoers.cat,
	doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	doc/sudoers_timestamp.cat, doc/sudoers_timestamp.man.in,
	doc/sudoers_timestamp.mdoc.in, doc/visudo.cat, doc/visudo.man.in,
	doc/visudo.mdoc.in:
	Fix some issues pointed out by mandoc -Tlint
	[b67915c6e]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/sudo_plugin.h, src/conversation.c:
	Add SUDO_CONV_PREFER_TTY flag for conversation function to tell sudo
	to try writing to /dev/tty first. Can be used in conjunction with
	SUDO_CONV_INFO_MSG and SUDO_CONV_ERROR_MSG.
	[6eadaddc9]

2018-06-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/LICENSE:
	Update for arc4random.c, arc4random_uniform.c and getentropy.c
	[89c83f032]

2018-06-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/regress/noexec/check_noexec.c:
	FreeBSD wordexp() returns WRDE_SYNTAX if it can't write to the shell
	process. Since we've prevented execve() from succeeding this is the
	error we get back from wordexp() on FreeBSD.
	[8b63ec654]

2018-06-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/starttime.c:
	Fix conversion of usec to nsec; from Scott Cheloha
	[ec2dae810]

2018-06-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* include/sudo_plugin.h:
	Fix typo.
	[dafb5f523]

2018-05-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	The getdefs() function now get called multiple times so use the
	cached data if present.
	[919b56722]

	* plugins/sudoers/sssd.c, plugins/sudoers/sudoers.c:
	Return an empty defaults list, not NULL if there is no global
	sudoers defaults entry in sss.
	[899aedfd1]

	* plugins/sudoers/file.c:
	Fix memory leak of handle pointer on close.
	[1202beafb]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Remove a needless copy when parsing options.
	[c990d93a4]

	* plugins/sudoers/file.c, plugins/sudoers/ldap.c,
	plugins/sudoers/parse.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudo_nss.h,
	plugins/sudoers/sudoers.c:
	Move cached userspecs and defaults into the handle object.
	[0b31f186c]

2018-05-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Quiet a clang analyzer warning. It should not be possible for
	pop_include() to be called when YY_CURRENT_BUFFER is NULL.
	[1ad2290a2]

	* plugins/sudoers/file.c, plugins/sudoers/ldap.c,
	plugins/sudoers/sssd.c:
	Reorder things to avoid the need to declare static functions.
	[e401f9283]

2018-05-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* lib/util/Makefile.in, lib/util/mktemp.c,
	plugins/sudoers/Makefile.in, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/insults.h:
	Use arc4random for mkstemp() and insults.
	[43003d29d]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_rand.h, lib/util/Makefile.in, lib/util/arc4random.c,
	lib/util/arc4random.h, lib/util/arc4random_uniform.c,
	lib/util/chacha_private.h, lib/util/getentropy.c,
	lib/util/util.exp.in, mkdep.pl:
	Import arc4random() from libressl. This takes an all-in-one approach
	instead of the one-file-per-OS approach that libressl takes. The
	fallback code does not have as many OS-specific bits as libressl.
	[ddd663a5f]

	* MANIFEST, configure, configure.ac, include/sudo_digest.h,
	lib/util/Makefile.in, lib/util/digest.c, lib/util/digest_gcrypt.c,
	lib/util/digest_openssl.c, lib/util/util.exp.in, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/digestname.c,
	plugins/sudoers/filedigest.c, plugins/sudoers/filedigest_gcrypt.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/ldap_util.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/sudo_ldap.h, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Move digest code into libutil
	[154a5f59a]

2018-05-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/regress/cvtsudoers/test25.sh,
	plugins/sudoers/regress/cvtsudoers/test26.out.ok,
	plugins/sudoers/regress/cvtsudoers/test26.sh,
	plugins/sudoers/regress/cvtsudoers/test27.out.ok,
	plugins/sudoers/regress/cvtsudoers/test27.sh:
	Check for invalid bas64 attributes.
	[1cd472c05]

	* plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/regress/parser/check_base64.c:
	Fix pointer sign warnings.
	[a04cb53e3]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Add missing variable declaration for SELinux and Solaris.
	[5c113e59e]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Handle empty string and treat it as safe.
	[03aa84ed0]

	* MANIFEST, plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/regress/cvtsudoers/test26.out.ok,
	plugins/sudoers/regress/cvtsudoers/test26.sh:
	Add support for base64-encoding non-safe strings in LDIF output.
	[1bc8e9abf]

2018-05-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/base64.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/parser/check_base64.c:
	Add base64_encode() by Jon Mayo.
	[574c9fcd7]

2018-05-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/regress/cvtsudoers/test25.out.ok,
	plugins/sudoers/regress/cvtsudoers/test25.sh:
	Add support for parsing base64-encoded attributes
	[1ab360601]

2018-05-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/regress/sudoers/test2.ldif.ok:
	rfc2253 says we need to escape " and leading and trailing space.
	[7d42a609d]

	* configure, configure.ac:
	Define ZLIB_CONST so we get the const version of the API.
	[dfb66044e]

2018-05-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/parse.c:
	Fix logic inversion when handing the authenticate Defaults option
	for "sudo -l" and "sudo -v" in long list mode.
	[1494f25ba]

	* plugins/sudoers/sssd.c:
	Set handle->pw before sss_to_sudoers() since sss_check_user() uses
	it. Coverity CID 185651
	[c30ad9710]

	* plugins/sudoers/ldap_util.c:
	Fix memory leak on error, CID 185602
	[8ce49ecb2]

	* plugins/sudoers/ldap.c:
	Some ldap_get_values_len -> sudo_ldap_get_values_len that were
	missed before.
	[8ad51fe08]

	* plugins/sudoers/ldap_util.c:
	When building up the cmndspec, add the actual command member last.
	This simplifies the logic regarding the SETENV tag and alsomakes
	"out of memory" cleanup simpler.
	[b7e6d0490]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Fix format string mismatch, sudo_order is unsigned.
	[210280082]

	* plugins/sudoers/pwutil.c:
	Add cppcheck annotation to suppress memory leak false positive.
	[b31656b7f]

	* plugins/sudoers/ldap_util.c:
	Sudo "ALL" implies the SETENV tag.
	[3ca0882d1]

	* src/parse_args.c:
	Only set MODE_PRESERVE_ENV when preserving the entire environment.
	Fixes a problem introduced in 1.8.23 where "sudo -i" could not be
	used in conjunction with --preserve-env=VARIABLE. Bug #835
	[cf9c0102d]

2018-05-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/file.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/ldap.c,
	plugins/sudoers/parse.h, plugins/sudoers/sssd.c:
	Add free_userspecs() and free_default() and use them instead of
	looping over the lists and calling free_userspec() and
	free_default().
	[f38317269]

	* configure, configure.ac:
	Depending on the bos level, AIX 6.1 may or may not include
	getline/getdelim and AIX 7.1 may or may not include memset_s. Since
	we need to build packages that will work on all AIX 6.1 and 7.1
	machines, use our getline() and memset_s emulation.
	[3a4c0e06c]

2018-05-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/ldap_util.c:
	Do not leak struct sudo_command when the command is ALL. Coverity
	CID 185602.
	[93eec5fb9]

	* NEWS, configure, configure.ac:
	Sudo 1.8.24
	[808ec34ab]

	* plugins/sudoers/sssd.c:
	Improve comments about why we need to do a user check and how it
	related to netgroups.
	[9f36ae62f]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Add checks for ldap/sss functions failing due to memory allocation
	errors.
	[d052f8a68]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Let the main sudoers lookup code check the host name. We still check
	the user name so it is possible to use a single userspec but this
	may change in the future.
	[904f37e03]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/file.c,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/sssd.c, plugins/sudoers/sudo_ldap.h,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudo_nss.h,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Simplify the nss interface such that each sudoers provider fills in
	a per-nss list of userspecs and defaults instead of using separate
	lookup and list functions. This makes it possible to have a single
	implementation of the code for sudoers lookup and listing.
	[f9be3a48a]

	* plugins/sudoers/alias.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/defaults.c,
	plugins/sudoers/filedigest.c, plugins/sudoers/filedigest_gcrypt.c,
	plugins/sudoers/filedigest_openssl.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_conf.c,
	plugins/sudoers/ldap_util.c, plugins/sudoers/match.c,
	plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/regress/parser/check_addr.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/visudo.c:
	Include parse.h in sudoers.h since it will soon be required.
	[71e98d949]

	* plugins/sudoers/ldap_util.c:
	Parse "ALL" as a command correctly.
	[cc3428398]

2018-05-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c:
	Add debug warning if lseek() fails (should not be possible).
	[4a3aa5f6e]

	* plugins/sudoers/match.c:
	Fix swapped args of lseek() when rewinding. This didn't cause a
	problem because the value of SEEK_SET is 0.
	[7b1e78d6d]

2018-05-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/parser/check_hexchar.c:
	Fix a format-truncation warning in newer gcc by avoiding using %0x
	and %0X in the test. We are formatting a single byte so just do it
	one nybble at a time.
	[6e290763c]

	* configure:
	Regen with autoconf git commit
	e17a30e987d7ee695fb4294a82d987ec3dc9b974 AC_HEADER_MAJOR: port to
	glibc 2.25
	[3359d7290]

2018-05-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_ldif.c:
	No need to explicitly free role on EOF, it will be freed after the
	loop is done.
	[7a940ce30]

	* plugins/sudoers/policy.c:
	Garbage collect the command argv, envp and info vectors since they
	are not available at policy close time.
	[29d188f4b]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Plug memory leaks on parse error or when an LDIF entry doesn't match
	the dn filter.
	[b0c13e995]

	* plugins/sudoers/cvtsudoers.c:
	Rename variables now that the string list functions are not
	ldap-specific.
	[620070f49]

2018-04-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	Fix typo
	[1a087ceba]

2018-04-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* configure, configure.ac:
	fix version
	[82dfbf458]

	* NEWS:
	sync
	[929396fbc]

	* configure, configure.ac, plugins/sudoers/po/zh_CN.mo,
	plugins/sudoers/po/zh_CN.po, po/zh_CN.mo, po/zh_CN.po:
	sync with translationproject.org
	[23b2879e0]

2018-04-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c:
	O_EXEC for fexecve() not O_SEARCH.
	[a18e81148]

	* doc/TROUBLESHOOTING:
	Document how to suppress the last login message on Solaris.
	[95fb4458d]

2018-04-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_json.c:
	Fix compilation error with older Sun Studio compilers.
	[f53e5e2bd]

	* NEWS:
	Update Bug #831 decription.
	[55869277b]

	* MANIFEST, doc/CONTRIBUTORS, po/zh_TW.mo, po/zh_TW.po:
	Add Chinese(Taiwan) translation for sudo.
	[f23d73dfe]

	* plugins/sudoers/match.c:
	Move the check for /dev/fd/N until *after* the digest has been
	checked. We still need to be able to check the digest even if there
	is no /dev/fd/N or fexecve().
	[cfdae3a4f]

2018-04-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c:
	Rewind the fd after calling sudo_filedigest(). Otherwise, when
	running a script via fexecve(), the interpreter may get EOF when
	reading /dev/fd/N. This only appears to affect BSD systems with
	fdescfs. Bug #831.
	[64c78a61c]

	* plugins/sudoers/match.c:
	In open_cmnd(), return true, not false, if we the /dev/fd/N pathname
	is not present. We don't want to fail a match because of this.
	[6e22da341]

	* NEWS:
	Bug #831.
	[3f1ec0c5f]

	* plugins/sudoers/match.c:
	We can only use fexecve() on a script if /dev/fd/N exists. Some
	systems, such as FreeBSD, don't have /dev/fd mounted by default. Bug
	#831
	[def2e761e]

2018-04-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/ca.mo, plugins/sudoers/po/ca.po,
	plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/el.mo, plugins/sudoers/po/el.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/eu.mo, plugins/sudoers/po/eu.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/fur.mo, plugins/sudoers/po/fur.po,
	plugins/sudoers/po/hu.mo, plugins/sudoers/po/hu.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/lt.mo, plugins/sudoers/po/lt.po,
	plugins/sudoers/po/nl.mo, plugins/sudoers/po/nl.po,
	plugins/sudoers/po/ru.mo, plugins/sudoers/po/ru.po,
	plugins/sudoers/po/sk.mo, plugins/sudoers/po/sk.po,
	plugins/sudoers/po/sl.mo, plugins/sudoers/po/sl.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/tr.mo, plugins/sudoers/po/tr.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/ca.mo,
	po/ca.po, po/da.mo, po/da.po, po/de.mo, po/de.po, po/eo.mo,
	po/eo.po, po/es.mo, po/es.po, po/eu.mo, po/eu.po, po/fi.mo,
	po/fi.po, po/fur.mo, po/fur.po, po/gl.mo, po/gl.po, po/hu.mo,
	po/hu.po, po/ko.mo, po/ko.po, po/nl.mo, po/nl.po, po/nn.mo,
	po/nn.po, po/ru.mo, po/ru.po, po/sk.mo, po/sk.po, po/sl.mo,
	po/sl.po, po/sr.mo, po/sr.po, po/vi.mo, po/vi.po, po/zh_CN.mo,
	po/zh_CN.po:
	sync with translationproject.org
	[16093ee8d]

2018-04-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/ca.mo, plugins/sudoers/po/ca.po,
	plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/el.mo, plugins/sudoers/po/el.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/eu.mo, plugins/sudoers/po/eu.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/fur.mo, plugins/sudoers/po/fur.po,
	plugins/sudoers/po/hu.mo, plugins/sudoers/po/hu.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/lt.mo, plugins/sudoers/po/lt.po,
	plugins/sudoers/po/nl.mo, plugins/sudoers/po/nl.po,
	plugins/sudoers/po/ru.mo, plugins/sudoers/po/ru.po,
	plugins/sudoers/po/sk.mo, plugins/sudoers/po/sk.po,
	plugins/sudoers/po/sl.mo, plugins/sudoers/po/sl.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/tr.mo, plugins/sudoers/po/tr.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/ca.mo,
	po/ca.po, po/da.mo, po/da.po, po/de.mo, po/de.po, po/eo.mo,
	po/eo.po, po/es.mo, po/es.po, po/eu.mo, po/eu.po, po/fi.mo,
	po/fi.po, po/fur.mo, po/fur.po, po/gl.mo, po/gl.po, po/hu.mo,
	po/hu.po, po/ko.mo, po/ko.po, po/nl.mo, po/nl.po, po/nn.mo,
	po/nn.po, po/ru.mo, po/ru.po, po/sk.mo, po/sk.po, po/sl.mo,
	po/sl.po, po/sr.mo, po/sr.po, po/vi.mo, po/vi.po, po/zh_CN.mo,
	po/zh_CN.po:
	sync with translationproject.org
	[388ef262d]

	* MANIFEST, plugins/sudoers/regress/cvtsudoers/test23.out.ok,
	plugins/sudoers/regress/cvtsudoers/test23.sh,
	plugins/sudoers/regress/cvtsudoers/test24.out.ok,
	plugins/sudoers/regress/cvtsudoers/test24.sh:
	Add tests for round-tripping cvtsudoers, sudoers -> LDIF -> sudoers
	and LDIF -> sudoers -> LDIF.
	[c64e57dad]

2018-04-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/regress/cvtsudoers/test22.out.ok,
	plugins/sudoers/regress/cvtsudoers/test22.sh:
	Test the -b option when converting from LDIF.
	[48f74db60]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Fix the -b option when converting from LDIF.
	[e1392cd28]

2018-04-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po, po/it.mo,
	po/it.po:
	sync with translationproject.org
	[109160df3]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in:
	Fix some more typos.
	[3dd7d9693]

	* doc/Makefile.in:
	mandoc now preserves the copyright notice, no need to do it
	ourselves
	[93a8ddca2]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Describe the special handling of LOGNAME, USER and USERNAME. Fix
	typos reported by aspell.
	[1e26c6043]

	* src/load_plugins.c:
	Fix a memory leak on the error path.
	[8eccfbd7b]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document that the editor setting is also used by sudoedit.
	[3194a00e9]

2018-04-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/load_plugins.c, src/sudo.c, src/sudo_plugin_int.h:
	Plug memory leak when an I/O plugin is specified in sudo.conf but
	the I/O plugin is not configured.
	[18e06825f]

	* INSTALL, MANIFEST, NEWS, config.h.in, configure, configure.ac,
	plugins/sudoers/Makefile.in, plugins/sudoers/ins_python.h,
	plugins/sudoers/insults.h:
	Monty Python insults from Philip Hudson
	[523f0eeea]

2018-04-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in:
	add examples
	[f9994f79d]

	* doc/sudo.conf.man.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	doc/sudoers.ldap.man.in, doc/sudoers.man.in,
	doc/sudoers_timestamp.man.in, doc/sudoreplay.man.in,
	doc/visudo.man.in:
	Update copyright year and regen man pages.
	[43ea752de]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po, po/cs.mo,
	po/cs.po, po/fr.mo, po/fr.po, po/hr.mo, po/hr.po, po/ja.mo,
	po/ja.po, po/nb.mo, po/nb.po, po/pl.mo, po/pl.po, po/pt_BR.mo,
	po/pt_BR.po, po/sv.mo, po/sv.po, po/tr.mo, po/tr.po, po/uk.mo,
	po/uk.po:
	sync with translationproject.org
	[9de8a0bd0]

	* MANIFEST, examples/sudoers, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/cvtsudoers/sudoers,
	plugins/sudoers/regress/cvtsudoers/sudoers.defs,
	plugins/sudoers/regress/cvtsudoers/test1.out.ok,
	plugins/sudoers/regress/cvtsudoers/test1.sh,
	plugins/sudoers/regress/cvtsudoers/test10.out.ok,
	plugins/sudoers/regress/cvtsudoers/test10.sh,
	plugins/sudoers/regress/cvtsudoers/test11.out.ok,
	plugins/sudoers/regress/cvtsudoers/test11.sh,
	plugins/sudoers/regress/cvtsudoers/test12.out.ok,
	plugins/sudoers/regress/cvtsudoers/test12.sh,
	plugins/sudoers/regress/cvtsudoers/test13.out.ok,
	plugins/sudoers/regress/cvtsudoers/test13.sh,
	plugins/sudoers/regress/cvtsudoers/test14.out.ok,
	plugins/sudoers/regress/cvtsudoers/test14.sh,
	plugins/sudoers/regress/cvtsudoers/test15.out.ok,
	plugins/sudoers/regress/cvtsudoers/test15.sh,
	plugins/sudoers/regress/cvtsudoers/test16.out.ok,
	plugins/sudoers/regress/cvtsudoers/test16.sh,
	plugins/sudoers/regress/cvtsudoers/test17.out.ok,
	plugins/sudoers/regress/cvtsudoers/test17.sh,
	plugins/sudoers/regress/cvtsudoers/test18.out.ok,
	plugins/sudoers/regress/cvtsudoers/test18.sh,
	plugins/sudoers/regress/cvtsudoers/test19.out.ok,
	plugins/sudoers/regress/cvtsudoers/test19.sh,
	plugins/sudoers/regress/cvtsudoers/test2.out.ok,
	plugins/sudoers/regress/cvtsudoers/test2.sh,
	plugins/sudoers/regress/cvtsudoers/test20.conf,
	plugins/sudoers/regress/cvtsudoers/test20.out.ok,
	plugins/sudoers/regress/cvtsudoers/test20.sh,
	plugins/sudoers/regress/cvtsudoers/test21.conf,
	plugins/sudoers/regress/cvtsudoers/test21.out.ok,
	plugins/sudoers/regress/cvtsudoers/test21.sh,
	plugins/sudoers/regress/cvtsudoers/test3.out.ok,
	plugins/sudoers/regress/cvtsudoers/test3.sh,
	plugins/sudoers/regress/cvtsudoers/test4.out.ok,
	plugins/sudoers/regress/cvtsudoers/test4.sh,
	plugins/sudoers/regress/cvtsudoers/test5.out.ok,
	plugins/sudoers/regress/cvtsudoers/test5.sh,
	plugins/sudoers/regress/cvtsudoers/test6.out.ok,
	plugins/sudoers/regress/cvtsudoers/test6.sh,
	plugins/sudoers/regress/cvtsudoers/test7.out.ok,
	plugins/sudoers/regress/cvtsudoers/test7.sh,
	plugins/sudoers/regress/cvtsudoers/test8.out.ok,
	plugins/sudoers/regress/cvtsudoers/test8.sh,
	plugins/sudoers/regress/cvtsudoers/test9.out.ok,
	plugins/sudoers/regress/cvtsudoers/test9.sh:
	cvtsudoers regress tests
	[4be8aba9f]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/match.c:
	Prune alias contents when pruning and expanding aliases. This abuses
	the userlist_matches_filter() and hostlist_matches_filter()
	functions. A better approach would be to call the correct function
	from user_matches() and host_matches().
	[1bfe03000]

2018-04-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in:
	Fix typo
	[f8f0c16c7]

	* plugins/sudoers/cvtsudoers.c:
	Fix cut & pasto that prevented "-d command" from working.
	[d85e244c6]

2018-04-13  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y:
	Fix a user after free crash as well as a memory leak when filtering
	Defaults.
	[38ff66162]

2018-04-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in:
	Document that a User_Alias or Host_Alias may be used in the match
	filter.
	[c1accd4b4]

	* plugins/sudoers/fmtsudoers.c:
	Don't always expand aliases when formatting a host-based Defaults
	line. This was missed when expand_aliases support was added.
	[df7a6ea4e]

	* plugins/sudoers/cvtsudoers.c:
	Allow host and user aliases to be specified in match filters.
	[2b2565b2c]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update copyright year.
	[aa900c0f2]

2018-04-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/hu.mo, plugins/sudoers/po/hu.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po, po/da.mo,
	po/da.po, po/hr.mo, po/hr.po, po/hu.mo, po/hu.po, po/pt_BR.mo,
	po/pt_BR.po, po/tr.mo, po/tr.po:
	sync with translationproject.org
	[7a3472cb0]

2018-04-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/alias.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/parse.h:
	When the -d option is used, remove aliases used by the non-converted
	Defaults settings if the aliases are not also referenced by
	userspecs.
	[9e91d3f45]

2018-04-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[8c64cd97d]

	* NEWS:
	update
	[9e0c75135]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in:
	Mention -p and -M options in the description of -m.
	[0b7abea16]

2018-04-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo_edit.c:
	Check sudoedit temporary directory for writability before using it.
	[5ae557e30]

	* plugins/sudoers/regress/starttime/check_starttime.c:
	Use btime in /proc/stat to determine system start time instead of
	/proc/uptime. Fixes the process start time test when run from a
	container where /proc/uptime is the uptime of the container but the
	process start time is relative to the host system boot time. Bug
	#829
	[512e0be83]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/match.c, plugins/sudoers/parse.h:
	Add option to prune non-matching entries from cvtsudoers output with
	-m option is used.
	[7663ae7b2]

2018-04-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h:
	Allow defaults types and suppression list to be specified in the
	config file.
	[5c1d9899e]

	* plugins/sudoers/alias.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/parse.h, plugins/sudoers/visudo.c:
	Refactor common alias code out of cvtsudoers and visudo and into
	alias.c.
	[18ba38ef4]

2018-03-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/cvtsudoers.c:
	Avoid NULL deref in an error path. CID 183467
	[dbd5613b1]

	* plugins/sudoers/cvtsudoers.c:
	No need to initialize the last pointer passed to strtok_r(). This
	was originally added to appease newer gcc but no longer seems to be
	required. CID 183466, CID 183468, CID 183469
	[18371cacb]

	* plugins/sudoers/cvtsudoers_json.c:
	Avoid false positive NULL dereference by uses value.u.string instead
	of name as the former is guaranteed not to be NULL. Fixes CID
	183465.
	[6f6621644]

2018-03-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot:
	regen
	[b4b5243bf]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Add a section on convertion from file-based sudoers.
	[e7ba359ab]

2018-03-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c:
	Add support for "cvtsudoers -d all"
	[dd545f38c]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h:
	Add -d option to control what type of Defaults entries are
	converted.
	[aa402cdc3]

2018-03-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	In pty_close() we still need to check whether the pty master and
	slave fds are open before closing them. When no tty is present but
	we are I/O logging pty_close() will be called when there is no
	actual pty in use.
	[a42cf67ac]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/sudo.conf.cat,
	doc/sudoers_timestamp.cat, doc/visudo.cat:
	regen
	[809c15d16]

2018-03-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgignore:
	ignore *.ldif2sudo regress output
	[693cdbd96]

	* src/exec_pty.c:
	In pty_close() there is no need to remove events associated with the
	pty slave as there are none. We also don't need to check for the pty
	fds being -1 since they are not closed elsewhere and pty_close() is
	only called if pty_setup() succeeds.
	[233649634]

2018-03-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/Makefile.in, doc/cvtsudoers.mdoc.in:
	Move cvtsudoers to section 1.
	[5e7ff154b]

	* src/exec_pty.c:
	In pty_close() close the slave and remove any events associated with
	it. Fixes a potential hang when performing the final flush on
	non-BSD systems.
	[4df454310]

2018-03-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/ldap_util.c:
	Fix typo in strcmp(), we are comparing var not val.
	[6da40a7b5]

	* MANIFEST:
	sync
	[22c9ed8e7]

	* NEWS:
	sync
	[7cdc79eb7]

2018-03-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot:
	regen
	[30f817408]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/sudoers.h:
	Add -M option to cvtsudoers to force the use of the local passwd and
	group databases when matching.
	[14ee65c52]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c:
	Add cvtsudoers command line option to suppress certain parts of the
	security policy. Can be used to suppress displaying of Defaults
	entries, aliases or privileges.
	[8a237eb07]

2018-03-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/parser/check_gentime.c:
	Silence a false positive from the clang static analyzer.
	[af6e1cd7c]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/parse.h:
	Silence a false positive from the clang static analyzer.
	[821e8a07d]

	* plugins/sudoers/cvtsudoers.c:
	Fix memory leak on error path.
	[fbed17e1a]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[e9512df6b]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_ldif.c:
	Move cvtsudoers string functions into cvtsudoers.c
	[bbd3e558b]

	* plugins/sudoers/Makefile.in:
	regen
	[9ab5dc5f7]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/alias.c,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/cvtsudoers_pwutil.c, plugins/sudoers/parse.h:
	Initial support filtering by user, group and host in cvtsudoers.
	Currently forces alias expansion when a filter is applied and the
	entire matching user or host list is printed, even the non-matching
	entries. This effectively allows you to grep sudoers by user, group
	and host.
	[ff79de859]

	* plugins/sudoers/defaults.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/parse.h:
	Add free_default() to free a struct defaults pointer so we have a
	single place where we free the defaults. A pointer to the previous
	Default's binding may be passed in to avoid freeing an already free
	binding.
	[bc5e2d06a]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Decrease bullet width to 1n.
	[b6c53ac84]

2018-03-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/sudo.c:
	Add aix_setauthdb() before the initial getpwuid() call.
	[b06e04683]

2018-03-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h:
	fix compilation on Solaris
	[910f28894]

2018-03-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	plugins/sudoers/sudoreplay.c:
	Make "sudoreplay -m 0" skip the pauses entirely.
	[1cb5ab8b9]

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in:
	Document that a negative value for -m will elmininate the pauses.
	[0ffd23945]

2018-03-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/testsudoers.c:
	Update copyright date, remove unneeded include and add a few
	comments.
	[24f8e62e7]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/sudoers/test1.out.ok,
	plugins/sudoers/regress/sudoers/test10.out.ok,
	plugins/sudoers/regress/sudoers/test11.out.ok,
	plugins/sudoers/regress/sudoers/test12.out.ok,
	plugins/sudoers/regress/sudoers/test13.out.ok,
	plugins/sudoers/regress/sudoers/test14.out.ok,
	plugins/sudoers/regress/sudoers/test15.out.ok,
	plugins/sudoers/regress/sudoers/test16.out.ok,
	plugins/sudoers/regress/sudoers/test17.out.ok,
	plugins/sudoers/regress/sudoers/test18.out.ok,
	plugins/sudoers/regress/sudoers/test19.out.ok,
	plugins/sudoers/regress/sudoers/test2.out.ok,
	plugins/sudoers/regress/sudoers/test20.out.ok,
	plugins/sudoers/regress/sudoers/test21.out.ok,
	plugins/sudoers/regress/sudoers/test22.out.ok,
	plugins/sudoers/regress/sudoers/test3.out.ok,
	plugins/sudoers/regress/sudoers/test4.out.ok,
	plugins/sudoers/regress/sudoers/test5.out.ok,
	plugins/sudoers/regress/sudoers/test6.out.ok,
	plugins/sudoers/regress/sudoers/test7.out.ok,
	plugins/sudoers/regress/sudoers/test8.out.ok,
	plugins/sudoers/regress/sudoers/test9.out.ok,
	plugins/sudoers/testsudoers.c:
	Use fmtsudoers functions in testsudoers.
	[e6c0d80fa]

	* MANIFEST, plugins/sudoers/regress/sudoers/test22.in,
	plugins/sudoers/regress/sudoers/test22.json.ok,
	plugins/sudoers/regress/sudoers/test22.ldif.ok,
	plugins/sudoers/regress/sudoers/test22.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test22.out.ok,
	plugins/sudoers/regress/sudoers/test22.sudo.ok,
	plugins/sudoers/regress/sudoers/test22.toke.ok:
	Add test for empty runas user list.
	[81a373677]

	* plugins/sudoers/testsudoers.c:
	Don't print an empty user list as ALL.
	[3e7db4828]

	* plugins/sudoers/fmtsudoers.c, plugins/sudoers/parse.h:
	In sudoers_format_userspecs make the separator optional and silence
	a printf format warning.
	[bb31544fc]

	* plugins/sudoers/starttime.c:
	Use correct defines when checking for sysctl kinfo_proc support.
	[f984de1ba]

	* plugins/sudoers/cvtsudoers_json.c:
	Fix crash when converting sudoers entry with a runas list that is
	present but empty.
	[bdbd102c9]

2018-03-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, plugins/sudoers/starttime.c,
	plugins/sudoers/sudoers.c, src/regress/ttyname/check_ttyname.c,
	src/tgetpass.c, src/ttyname.c:
	Less confusing sysctl checks for kinfo_proc.
	[217e0a9b4]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/ldap.c, plugins/sudoers/match.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/sssd.c:
	Add case_insensitive_group and case_insensitive_user sudoers
	options, which are enabled by default.
	[e26ef96a6]

2018-03-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/fmtsudoers.c:
	Kill dead store found by clang-analyzer.
	[6014b4075]

2018-03-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/sudoers/test1.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test14.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test15.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test16.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test17.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test19.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test2.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test20.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test21.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test3.ldif2sudo.ok,
	plugins/sudoers/regress/sudoers/test6.ldif2sudo.ok:
	Add tests for round-tripping sudoers -> ldif -> sudoers
	[487406807]

2018-03-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/Makefile.in, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/ldap.c, plugins/sudoers/ldap_util.c,
	plugins/sudoers/parse.h,
	plugins/sudoers/regress/sudoers/test2.ldif.ok,
	plugins/sudoers/regress/sudoers/test3.ldif.ok,
	plugins/sudoers/regress/sudoers/test6.ldif.ok,
	plugins/sudoers/sssd.c:
	Initial support for adding comments that will be emitted when
	sudoers is formatted. Currently adds a comment for the source
	sudoRole when converting from ldif -> sudoers.
	[5c36f9dec]

	* lib/util/lbuf.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/fmtsudoers.c, plugins/sudoers/parse.h:
	Special case comment lines in lbufs.
	[670d8e6d7]

2018-03-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/parse.h:
	When formatting as sudoers, flush the lbuf after each userspec.
	[c9b70940c]

2018-03-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_ldif.c:
	Handle escaped commas when skipping over the cn.
	[843213d3d]

2018-03-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_ldif.c:
	Add missing sudoOrder support to parse_ldif().
	[72dd971ee]

	* plugins/sudoers/ldap_util.c:
	Add missing support for converting LOG_INPUT/LOG_OUTPUT tags and
	expand support for NOMAIL tags.
	[8c7f3e791]

	* plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/regress/sudoers/test2.ldif.ok,
	plugins/sudoers/regress/sudoers/test3.ldif.ok,
	plugins/sudoers/regress/sudoers/test6.ldif.ok:
	Don't emit an empty sudoRole for global defaults if there are none.
	[44fc165e7]

	* plugins/sudoers/ldap_util.c:
	Avoid changing the order of non-negated hosts and commands. We still
	put negated hosts/commands at the end of the list.
	[e96398cac]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Handle parsing boolean options that have no explicit value.
	[e750bae75]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Refactor the code that actually converts the role to sudoers format
	into role_to_sudoers() now that it is more involved than just
	calling sudo_ldap_role_to_priv().
	[9af4447c3]

	* plugins/sudoers/cvtsudoers_ldif.c:
	When merging two privileges, use the runas lists of the previous
	privilege when possible. Otherwise, the generated sudoers line will
	include a runas list for commands that is not necessary.
	[9b20bb149]

2018-03-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/match.c:
	Use a case-insensitive comparison when matching user and group names
	in sudoers with the passwd or group database. This can be necessary
	when users and groups are stored in AD or LDAP.
	[fff4acc1f]

	* plugins/sudoers/Makefile.in:
	Fix clean target for *.sudo regress files
	[88bc4ba86]

	* .hgignore:
	ignore more binaries
	[0804cda64]

	* plugins/sudoers/cvtsudoers.c:
	Fix use of uninitialized variable (conf) if sudoers_debug_register()
	happens to fail.
	[8275ab873]

2018-02-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_ldif.c:
	Split conversion code out of parse_ldif() and into
	ldif_to_sudoers().
	[73b5f961e]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Quiet a clang analyzer warning.
	[8da213c8b]

	* MANIFEST, configure, configure.ac, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/ldap_util.c:
	rename ldap_common.c -> ldap_util.c
	[120bb6de7]

	* plugins/sudoers/cvtsudoers_ldif.c:
	When converting from ldif to sudoers, sudoRole objects with the same
	user if possible. If both user and host are the same, merge into a
	single privilege. This makes it possible to convert a sudoers entry
	like:

	aaron shanty = NOEXEC: /usr/bin/vi, /usr/bin/more, EXEC: /bin/sh

	to ldif and then back to sudoers as a single line. Currently, the
	ldif entries to be merged must have the same or adjacent sudoOrder
	attributes.
	[3a2ae844e]

	* plugins/sudoers/cvtsudoers_ldif.c:
	plug memory leaks
	[56bdde133]

	* src/parse_args.c:
	Restore line to set MODE_PRESERVE_ENV in flags when the -E command
	line option is used. The caller doesn't check MODE_PRESERVE_ENV
	these days but parse_args uses it to detect usage errors when -E is
	used along with a mutually excusive option. Problem found by Yuriy
	Vostrikov.
	[4b29e0bd7]

2018-02-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Add missing close parenthesis in "Including other files from within
	sudoers" section. Bug #824
	[12affcd5e]

2018-02-25  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/ldap_common.c:
	When converting from LDAP to sudoers, put negated hosts and commands
	at the end of the list. Since LDAP doesn't guarantee attribute order
	we need to make sure negated entries always override non-negated
	ones.
	[7919b9ad2]

2018-02-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c:
	We may need the hostname to resolve %h escapes in include files.
	[6f097eb02]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_ldif.c:
	Setting a sudoOrder start point of 0 will disable creation of
	sudoOrder attributes in the resulting LDIF output.
	[b3a0c3272]

	* plugins/sudoers/cvtsudoers.c:
	Don't need to fill in struct sudo_user since we don't do matching.
	[111d79b53]

	* MANIFEST, doc/cvtsudoers.cat, doc/cvtsudoers.man.in,
	doc/cvtsudoers.mdoc.in, pathnames.h.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers.h,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c:
	Add support for setting default options in a config file. In
	addition to expand_aliases, input_format and output_format, both the
	initial sudoOrder and the increment when updating sudoOrder for
	subsequent sudoRole objects can be specified. Command line options
	have also been added for the start order and increment.
	[5999cfb90]

2018-02-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	cvtsudoers can now read LDIF
	[fc82a1665]

	* doc/UPGRADE:
	Fix a typo.
	[bb0623324]

	* plugins/sudoers/fmtsudoers.c:
	Deal with user_name not being set in cvtsudoers.
	[19502307a]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_common.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_ldap.h:
	Initial support for parsing sudoers LDIF files in cvtsudoers. This
	makes it possible to convert from LDAP sudoers to a traditional
	sudoers file. Semantic differences between file sudoers and LDAP
	sudoers mean that LDIF -> sudoers is not completely equivalent.
	[ceea24b96]

2018-02-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/regress/sudoers/test14.ldif.ok:
	Fix LDIF conversion of commands with an associated digest.
	[8b22ed783]

	* plugins/sudoers/ldap_common.c:
	In array_to_member_list() use the correct type for netgroups and
	user groups.
	[91f97d2f2]

	* plugins/sudoers/fmtsudoers.c:
	Prepend digest to command if present. Fix printing of group IDs and
	non-unix groups.
	[337ace644]

	* plugins/sudoers/cvtsudoers_json.c:
	Fix gcc false positive for uninitialized variable
	[c13557b6c]

2018-02-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* pp:
	Update Polypkg to the latest version from git.
	[03f94d62f]

	* config.h.in, configure, configure.ac, src/sudo.c:
	Use setpassent() and setgroupent() on systems that support it to
	keep the passwd and group database open. Sudo does a lot of passwd
	and group lookups so it can be beneficial to just leave the file
	open.
	[faa5baac9]

2018-02-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c, plugins/sudoers/fmtsudoers.c:
	Add option to cvtsudoers to expand aliases in the output.
	[4f9296928]

	* plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/regress/sudoers/test1.json.ok,
	plugins/sudoers/regress/sudoers/test14.json.ok,
	plugins/sudoers/regress/sudoers/test15.json.ok,
	plugins/sudoers/regress/sudoers/test16.json.ok,
	plugins/sudoers/regress/sudoers/test17.json.ok,
	plugins/sudoers/regress/sudoers/test19.json.ok,
	plugins/sudoers/regress/sudoers/test2.json.ok,
	plugins/sudoers/regress/sudoers/test6.json.ok:
	Fix conversion of "ALL" in the JSON output format, which was being
	printed as an alias.
	[3f204c5eb]

	* INSTALL, configure, configure.ac:
	Clarify that --with-rundir and --with-vardir take sudo-specific
	directory, e.g. /var/run/sudo and not just /var/run. Bug #823
	[e48cbfc10]

	* src/exec_pty.c:
	In pty_cleanup() we need to call sudo_term_restore() even if no I/O
	plugins are present as long as /dev/tty exists. Fixes the use_pty
	case with no I/O plugins.
	[d5d170252]

	* include/sudo_event.h, lib/util/event.c, lib/util/util.exp.in,
	plugins/sudoers/sudoreplay.c, src/exec_monitor.c, src/exec_nopty.c,
	src/exec_pty.c:
	Add sudo_ev_dispatch(), a wrapper for ev_loop() with no flags.
	Similar the dispatch function in libevent.
	[42fe0409f]

	* INSTALL, configure, configure.ac, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, m4/sudo.m4:
	Use /run in preference to /var/run if it exists. Bug #822
	[525c6a3d9]

2018-02-14  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	mention common sudoers formatting changes
	[59086e9c8]

2018-02-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, configure, configure.ac, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_conf.c, plugins/sudoers/sudo_ldap.h,
	plugins/sudoers/sudo_ldap_conf.h:
	Move LDAP configuration bits into ldap_conf.c
	[43a3a23fe]

2018-02-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/ldap.c, plugins/sudoers/ldap_common.c:
	No longer need to include stddef.h
	[0c08de88c]

	* plugins/sudoers/iolog.c:
	Remove dead store, found by cppcheck.
	[e2213dc1e]

	* plugins/sudoers/ldap.c, plugins/sudoers/ldap_common.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudo_ldap.h:
	simplify iterator
	[34820c6b1]

	* plugins/sudoers/mkdir_parents.c:
	Silence a false positive from cppcheck.
	[6e2a26706]

	* plugins/sudoers/tsdump.c:
	Cast version to int when printing. Avoids a cppcheck warning.
	[d0d413d07]

2018-02-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/ldap.c, plugins/sudoers/ldap_common.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudo_ldap.h:
	Use an iterator instead of fragile pointer arithmetic to iterate
	over value arrays in sudo_ldap_role_to_priv().
	[4459ee42e]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/fmtsudoers.c,
	plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/sssd.c:
	Move sudoers formatting code into fmtsudoers.
	[64e99328e]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/parse.c:
	Clean up some XXX in parse.c
	[dda1d6cef]

	* plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/sssd.c:
	Rename sudo_file_append_default() -> sudo_lbuf_append_default() and
	use it for ldap and sssd too.
	[2522229e8]

	* MANIFEST, configure, configure.ac, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/ldap.c,
	plugins/sudoers/ldap_common.c, plugins/sudoers/parse.h,
	plugins/sudoers/sssd.c, plugins/sudoers/sudo_ldap.h:
	Move common bits of ldap to sudoers conversion into ldap_common.c
	and use it in sssd.c.
	[3226f7e28]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h:
	Convert ldap results into a sudoers userspec so we can use the "sudo
	-l" output functions in parse.c.
	[4e2402a8e]

2018-02-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* sudo.pp:
	Don't mark sudoers.dist volatile, it only gets used on systems that
	don't have the concept of volatile files.
	[787717755]

2018-02-05  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h:
	Refactor member freeing code into free_member(). Refactor userspec
	freeing code into free_userspec().
	[5cca4b690]

	* plugins/sudoers/cvtsudoers.c:
	Fix compilation with glibc where stdout is not constant.
	[9d49592f1]

2018-02-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/ldap.c:
	For "sudo -l", if a word includes spaces, print it in double quotes.
	Also escape spaces in the command path. This matches the sudoers
	quoting rules.
	[57e7b4b49]

2018-02-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/ldap.c:
	Display sudoNotBefore and sudoNotAfter in "sudo -l"
	[3189de5bb]

	* plugins/sudoers/parse.c:
	For "sudo -l", if a word includes spaces, print it in double quotes.
	Also escape spaces in the command path. This matches the sudoers
	quoting rules.
	[105ced47b]

	* plugins/sudoers/cvtsudoers.c:
	Add back printing of negation operator ('!') when printing a word
	with spaces in it.
	[40c200af1]

	* plugins/sudoers/Makefile.in:
	Use visudo to validate "cvtsudoers -f sudoers" output.
	[1aca11c78]

	* plugins/sudoers/regress/sudoers/test21.in,
	plugins/sudoers/regress/sudoers/test21.json.ok,
	plugins/sudoers/regress/sudoers/test21.ldif.ok,
	plugins/sudoers/regress/sudoers/test21.out.ok,
	plugins/sudoers/regress/sudoers/test21.toke.ok:
	Remove syslog_goodpri and syslog_badpri without a value that causes
	visudo to report an error.
	[f31ba6c22]

	* plugins/sudoers/cvtsudoers.c:
	When outputting sudoers, if a word includes spaces, print it in
	double quotes. Also escape spaces in the command path.
	[61b6ae64d]

2018-02-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/alias.c, plugins/sudoers/cvtsudoers.c,
	plugins/sudoers/parse.h, plugins/sudoers/visudo.c:
	Add sudoers output format to cvtsudoers. In the future this may be
	used with filters to emit a partial sudoers file instead of a full
	one.
	[3354cbd02]

	* plugins/sudoers/parse.c:
	When printing a member name, quote sudoers special characters unless
	it is a UID/GID, in which case we print the '#' unquoted.
	[df08d0d8f]

	* plugins/sudoers/parse.c, plugins/sudoers/parse.h:
	Move SUDOERS_QUOTED define to parse.h
	[f4ce2b25f]

2018-01-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/timestamp.c:
	Remove extraneous break statement and fix some whitespace.
	[07d9cec27]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	The max timeout for kernel time stamps is 60 minutes, not 3600
	minutes.
	[5de49b2d6]

2018-01-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/testsudoers.c:
	Check the return value of sudoers_debug_register(). Coverity CID
	182574
	[5e9e641b3]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Fix memory leak, su->count is now 0 when it is unused, not 1.
	Covertity CID 182573
	[f3ef0f509]

	* plugins/sudoers/cvtsudoers_ldif.c:
	Quiet a clang analyzer false positive.
	[776627803]

	* plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/regress/sudoers/test2.ldif.ok,
	plugins/sudoers/regress/sudoers/test6.ldif.ok:
	Quote special characters when creating the cn as per RFC2253
	[b374effcb]

	* NEWS, configure, configure.ac, doc/UPGRADE:
	Sudo 1.8.23
	[d2303d8b1]

	* doc/LICENSE:
	Remove the C-style comment charactes from the getopt_long.c and
	inet_pton.c license text as it was inconsistent with the rest of the
	file and messed up the html formatting.
	[9d49c9193]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/sudoers2ldif, sudo.pp:
	Remove sudoers2ldif, it has been replaced by cvtsudoers.
	[7f310d738]

2018-01-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_ldif.c:
	Add -b option to specify the base dn.
	[831de0fc8]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in:
	Document limitations of LDIF conversion.
	[b0abdd5a1]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c:
	Switch the default output format to LDIF
	[4acaa9c74]

	* plugins/sudoers/visudo.c:
	Execute cvtsudoers if the user runs "visudo -x" but also emit a
	warning.
	[7e5e1f6a6]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/stubs.c,
	plugins/sudoers/visudo.c:
	Revert 04ec05108b2b, change the default input source back to stdin.
	[63321f19a]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/sudoers/test1.ldif.ok,
	plugins/sudoers/regress/sudoers/test10.ldif.ok,
	plugins/sudoers/regress/sudoers/test11.ldif.ok,
	plugins/sudoers/regress/sudoers/test12.ldif.ok,
	plugins/sudoers/regress/sudoers/test13.ldif.ok,
	plugins/sudoers/regress/sudoers/test14.ldif.ok,
	plugins/sudoers/regress/sudoers/test15.ldif.ok,
	plugins/sudoers/regress/sudoers/test16.ldif.ok,
	plugins/sudoers/regress/sudoers/test17.ldif.ok,
	plugins/sudoers/regress/sudoers/test18.ldif.ok,
	plugins/sudoers/regress/sudoers/test19.ldif.ok,
	plugins/sudoers/regress/sudoers/test2.ldif.ok,
	plugins/sudoers/regress/sudoers/test20.ldif.ok,
	plugins/sudoers/regress/sudoers/test21.ldif.ok,
	plugins/sudoers/regress/sudoers/test3.ldif.ok,
	plugins/sudoers/regress/sudoers/test4.ldif.ok,
	plugins/sudoers/regress/sudoers/test5.ldif.ok,
	plugins/sudoers/regress/sudoers/test6.ldif.ok,
	plugins/sudoers/regress/sudoers/test7.ldif.ok,
	plugins/sudoers/regress/sudoers/test8.ldif.ok,
	plugins/sudoers/regress/sudoers/test9.ldif.ok:
	Add LDIF conversion to sudoers tests
	[6272829dc]

	* plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/cvtsudoers_ldif.c,
	plugins/sudoers/regress/sudoers/test19.json.ok:
	Add notbefore and notafter support to the backends.
	[7dd620981]

2018-01-27  Todd C. Miller  <Todd.Miller@sudo.ws>

	* README.LDAP:
	cvtsudoers instead of sudoers2ldif
	[ea7daee6f]

	* MANIFEST, doc/cvtsudoers.cat, doc/cvtsudoers.man.in,
	doc/cvtsudoers.mdoc.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_ldif.c:
	Add ldif backend to cvtsudoers, to replace sudoers2ldif
	[681fb2e76]

	* plugins/sudoers/Makefile.in:
	fix make check
	[7638e7173]

2018-01-26  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_json.c:
	Parse sudoers in the front end, not the back end.
	[cc31b3fd4]

	* doc/Makefile.in:
	install the cvtsudoers manual
	[c360ad460]

	* doc/cvtsudoers.cat, doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/stubs.c,
	plugins/sudoers/visudo.c:
	Use the built-in sudoers file location as the default sudoers file
	for cvtsudoers and move parse_sudoers_options() to stubs.c since it
	is shared between visudo.c and cvtsudoers.c.
	[98c19a68c]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/stubs.c,
	plugins/sudoers/visudo.c:
	Move common stub functions required by the parser out of visudo.c
	and cvtsudoers.c and into stubs.c.
	[0f3030d50]

	* plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_json.c:
	Rename export_sudoers() to convert_sudoers_json() and move the check
	for the same input and output file to the front-end.
	[02d917e60]

	* sudo.pp:
	add cvtsudoers
	[41bd9ae26]

	* MANIFEST, doc/Makefile.in, doc/cvtsudoers.cat,
	doc/cvtsudoers.man.in, doc/cvtsudoers.mdoc.in, doc/visudo.cat,
	doc/visudo.man.in, doc/visudo.mdoc.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/cvtsudoers.c, plugins/sudoers/cvtsudoers_json.c,
	plugins/sudoers/visudo.c:
	Move sudoers JSON conversion to cvtsudoers which will eventually
	output to other formats too.
	[80cb1b5da]

	* plugins/sudoers/defaults.c:
	Convert from time in minutes to timespec directly instead of
	converting to double via strtod(). This makes it easier to catch
	overflow.
	[bcfb092a4]

2018-01-24  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	document that kernel tty timestamps don't support negative timeouts
	[eb8b5c796]

2018-01-23  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/timestamp.c:
	Fall back to ppid time stamps if timestamp_type == kernel and no tty
	is present. This is consistent with timestamp_type == tty.
	[b3601253e]

	* plugins/sudoers/timestamp.c:
	Do not call the TIOCSETVERAUTH ioctl with a negative number of
	seconds. Also cap the max number of seconds at 3600 to avoid getting
	EINVAL from TIOCSETVERAUTH.
	[52409b9c7]

2018-01-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/defaults.c:
	Better conversion from double to nanoseconds.
	[2e37959fe]

	* plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/auth/sudo_auth.h,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/mkdefaults,
	plugins/sudoers/timestamp.c:
	Store passwd_timeout and timestamp_timeout as a struct timespec
	instead of as a float. Remove timeout argument to auth_getpass() as
	it was never used.
	[4c0c22506]

2018-01-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/mkdefaults:
	Don't rely on perl being installed in /usr/local/bin
	[44e4aac44]

2018-01-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* config.h.in, configure, configure.ac, lib/util/gettime.c,
	lib/util/mktemp.c, lib/util/nanosleep.c, lib/util/utimens.c,
	plugins/sudoers/boottime.c, plugins/sudoers/check.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/group_plugin.c, plugins/sudoers/iolog.c,
	plugins/sudoers/ldap.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/visudo.c, src/net_ifs.c, src/sesh.c, src/sudo.c,
	src/sudo_edit.c, src/utmp.c:
	Remove use of AC_HEADER_TIME, only obsolete platforms actually need
	this. Also stop removing sys/time.h unless the source file uses
	struct timeval.
	[a885b952f]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Remove duplicate options %type
	[b161ebe62]

2018-01-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/auth/API, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/check.c,
	plugins/sudoers/sudoers.h:
	Add an approval function to the sudo auth API which is run after the
	user's password has been verified. The approval function is run even
	if no password is required. This is currently only used for PAM (use
	pam_acct_mgmt) and BSD auth (auth_approval).
	[594c2d4ef]

2018-01-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/tsdump.c:
	treat uid as unsigned in error message
	[f7896025e]

	* MANIFEST, plugins/sudoers/po/fur.mo:
	Add missing plugins/sudoers/po/fur.mo file to repo.
	[aa516b0a5]

	* NEWS:
	Mention new sudoers_timestamp manual.
	[44fdb3228]

2018-01-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* .hgignore:
	ignore tsdump
	[b92a33ba3]

	* plugins/sudoers/tsdump.c:
	Convert from mono time to real time before displaying time stamps.
	[a47f47967]

2018-01-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/solaris_audit.c:
	Use PATH_MAX, not MAXPATHLEN.
	[da67a5490]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_util.h, lib/util/Makefile.in, lib/util/ttyname_dev.c,
	lib/util/util.exp.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/check.h, plugins/sudoers/tsdump.c, src/ttyname.c:
	Add tsdump, a simple utility to dump a timestamp file. To build, run
	"make tsdump" in the plugins/sudoers directory (it is not built by
	default). In order to map the tty device number to a name,
	sudo_ttyname_dev() has been moved into libsudo_util.
	[ff5ac3ef0]

2018-01-04  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po, po/uk.mo,
	po/uk.po:
	sync with translationproject.org
	[d5f4fdb81]

	* doc/LICENSE:
	Welcome to 2018
	[70f406d67]

2017-12-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/fur.po, plugins/sudoers/po/nb.mo,
	plugins/sudoers/po/nb.po, plugins/sudoers/po/zh_CN.mo,
	plugins/sudoers/po/zh_CN.po:
	sync with translationproject.org
	[636bfad02]

2017-12-22  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/logging.c:
	Silence a clang analyzer false positive.
	[f2fdda1aa]

	* doc/Makefile.in:
	Remove extra $(srcdir)/sudoreplay.man.in target added by mistake.
	[83ad5d9db]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/nl.mo, plugins/sudoers/po/nl.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po, po/ja.mo,
	po/ja.po:
	sync with translationproject.org
	[00016b17a]

	* plugins/sudoers/timestamp.c:
	Use a tty lock even for kernel time stamps so we can avoid
	simultaneous password prompts.
	[7f99af859]

	* NEWS:
	visudo changes
	[c4534798d]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in,
	plugins/sudoers/editor.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/visudo.c:
	Also honor SUDO_EDITOR in visudo. Previously is was only used by
	sudoedit.
	[23ac62cfb]

2017-12-21  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoers.c:
	Stop looking for an editor as soon as we find one. A similar fix was
	made to visudo some time ago.
	[fa2ab63da]

	* doc/sudoers_timestamp.cat, doc/sudoers_timestamp.man.in,
	doc/sudoers_timestamp.mdoc.in:
	The session ID was added in 1.8.6p7 to prevent a user in another
	session from re-using the time stamp file. Other minor cleanups.
	[740a47980]

	* plugins/sudoers/check.h:
	"time stamp" not "timestamp"
	[54158f691]

2017-12-20  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS, doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/timestamp.c:
	Add "kernel" as a possible value of timestamp_type. Currently only
	supported on OpenBSD.
	[feb48b8eb]

	* MANIFEST, doc/Makefile.in, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, doc/sudoers_timestamp.cat,
	doc/sudoers_timestamp.man.in, doc/sudoers_timestamp.mdoc.in,
	plugins/sudoers/check.h:
	Document the sudoers time stamp file format.
	[5f3797c75]

2017-12-19  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/starttime/check_starttime.c:
	Verify start time of the current process, allowing for some clock
	drift. For Linux, process start time is relative to boot time, not
	wallclock time.
	[ae8917a07]

2017-12-18  Todd C. Miller  <Todd.Miller@sudo.ws>

	* NEWS:
	sync
	[f41927488]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[e73a5574c]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/starttime/check_starttime.c:
	Trivial test for process start time. We don't try to check the
	resulting timespec as it differs by platform. On most it is
	wallclock time, on others it is relative to boot time (Linux).
	[6ce85b174]

	* lib/util/Makefile.in:
	regen
	[d93559e9c]

2017-12-17  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/starttime.c:
	Support start time on macOS and 4.4BSD
	[de2f455d3]

2017-12-16  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/regress/env_match/check_env_pattern.c:
	Include sys/types.h for mode_t used in sudoers.h.
	[428a487e0]

	* plugins/sudoers/starttime.c:
	Fix compilation error on FreeBSD
	[b78296197]

	* plugins/sudoers/starttime.c:
	Fix debug_decl(), it should be SUDOERS_DEBUG_UTIL Add debugging for
	the successful case For Linux, don't NUL out *ep before parsing with
	strtoull(). * * * Add missing debug info for the System V /proc
	version.
	[79caf1e68]

	* MANIFEST, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/check.h, plugins/sudoers/starttime.c,
	plugins/sudoers/timestamp.c:
	In the timestamp record, include the start time of the terminal
	session leader for tty-based timestamps or the start time of the
	parent process for ppid-based timestamps. Idea from Duncan
	Overbruck.
	[1709dc7f7]

2017-12-15  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/timestamp.c:
	If the lock record doesn't match the expected record size we need to
	seek to the end of the record as we otherwise may have gone too far
	(or not far enough). Fixes interop problems when the time stamp
	record changes size.
	[5cec5734c]

2017-12-12  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	No need for a loop around the recv() now that we don't have to worry
	about EINTR. CID 180697
	[cd0b70054]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Try to be clearer about sudo's exit value when the -l option is
	used.
	[bda2f4c44]

	* NEWS:
	sync
	[3604ff5bb]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, plugins/sudoers/ldap.c,
	plugins/sudoers/sssd.c:
	An empty RunAsUser means run as the invoking user, similar to how
	the sudoers files works.
	[6ca8447e0]

	* doc/sudoers.cat, doc/sudoers.man.in:
	regen
	[f869086ef]

2017-12-11  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/logging.c:
	Add authfail_message sudoers option to allow the user to override
	the default message of %d incorrect password attempt(s).
	[1350a3073]

	* plugins/sudoers/policy.c, src/parse_args.c:
	Allow the plugin to determine whether or not an empty timeout is
	allowed. For sudoers, an error will be returned for an empty
	timeout.
	[5106bfc13]

	* plugins/sudoers/timeout.c:
	Return an error for an empty timeout string. Just use strtol() for
	syntax checking instead of scanning with strspn().
	[b5463c280]

	* src/parse_args.c, src/sudo_edit.c:
	Change some _() into U_() since they are used for warn/fatal. We
	always want to issue warnings in the user's locale.
	[bbc43b5e3]

	* Makefile.in:
	update my email address
	[b68554b7c]

2017-12-10  Todd C. Miller  <Todd.Miller@sudo.ws>

	* log2cl.pl:
	Don't print mercurial branch info for merges.
	[3d13fe4fa]

	* log2cl.pl:
	Use log size instead of using a separator between the log entry and
	the file names.
	[a388ddbcf]

	* src/parse_args.c:
	Print usage and return an error when an empty argument is given for
	all command line arguments other than -p and -E. Bug #817
	[d322caf7a]

	* plugins/sudoers/policy.c:
	Better input validation of settings passed by the sudo front-end.
	Instead of ignoring an empty setting, throw an error.
	[00a00ebd1]

	* log2cl.pl:
	Treat a blank line in a commit message as a line break. There
	doesn't appear to be a way to make perl's format use a blank field
	but at least the line break happens now.
	[63209fe8f]

2017-12-09  Todd C. Miller  <Todd.Miller@sudo.ws>

	* MANIFEST, Makefile.in, log2cl.pl:
	Add script to generate ChangeLog from git log output.
	[5f5a60f82]

2017-12-08  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/defaults.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h:
	Don't include syslog.h from logging.h, just include it in the two .c
	files it is actually needed.
	[b16912da1]

2017-12-06  Todd C. Miller  <Todd.Miller@sudo.ws>

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Document that in check mode, visudo does not check the owner/mode on
	files specified with the -f flag.
	[e78283af9]

2017-12-03  Todd C. Miller  <Todd.Miller@sudo.ws>

	* Makefile.in, configure.ac, doc/HISTORY, doc/LICENSE,
	doc/Makefile.in, doc/fixman.sh, doc/fixmdoc.sh,
	doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in, doc/sudo.man.in,
	doc/sudo.mdoc.in, doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, doc/sudoreplay.man.in,
	doc/sudoreplay.mdoc.in, doc/visudo.man.in, doc/visudo.mdoc.in,
	examples/Makefile.in, include/Makefile.in,
	include/compat/charclass.h, include/compat/endian.h,
	include/compat/fnmatch.h, include/compat/nss_dbdefs.h,
	include/compat/sha2.h, include/sudo_compat.h, include/sudo_conf.h,
	include/sudo_debug.h, include/sudo_dso.h, include/sudo_event.h,
	include/sudo_fatal.h, include/sudo_gettext.h, include/sudo_lbuf.h,
	include/sudo_plugin.h, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/aix.c, lib/util/closefrom.c, lib/util/event.c,
	lib/util/event_poll.c, lib/util/event_select.c, lib/util/fatal.c,
	lib/util/getgrouplist.c, lib/util/gethostname.c, lib/util/getline.c,
	lib/util/getopt_long.c, lib/util/gettime.c, lib/util/gidlist.c,
	lib/util/glob.c, lib/util/isblank.c, lib/util/key_val.c,
	lib/util/lbuf.c, lib/util/locking.c, lib/util/memrchr.c,
	lib/util/memset_s.c, lib/util/mksiglist.c, lib/util/mksigname.c,
	lib/util/mktemp.c, lib/util/nanosleep.c, lib/util/parseln.c,
	lib/util/pipe2.c, lib/util/progname.c, lib/util/pw_dup.c,
	lib/util/regress/atofoo/atofoo_test.c,
	lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/glob/globtest.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c,
	lib/util/regress/vsyslog/vsyslog_test.c, lib/util/secure_path.c,
	lib/util/setgroups.c, lib/util/sha2.c, lib/util/sig2str.c,
	lib/util/snprintf.c, lib/util/strlcat.c, lib/util/strlcpy.c,
	lib/util/strndup.c, lib/util/strnlen.c, lib/util/strsignal.c,
	lib/util/strsplit.c, lib/util/strtobool.c, lib/util/strtoid.c,
	lib/util/strtomode.c, lib/util/strtonum.c, lib/util/sudo_conf.c,
	lib/util/sudo_debug.c, lib/util/sudo_dso.c, lib/util/term.c,
	lib/util/ttysize.c, lib/util/utimens.c, lib/util/vsyslog.c,
	lib/zlib/Makefile.in, m4/sudo.m4, mkdep.pl, mkpkg, pathnames.h.in,
	plugins/group_file/Makefile.in, plugins/group_file/getgrent.c,
	plugins/group_file/group_file.c, plugins/group_file/plugin_test.c,
	plugins/sample/Makefile.in, plugins/sample/sample_plugin.c,
	plugins/sudoers/Makefile.in, plugins/sudoers/alias.c,
	plugins/sudoers/audit.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/base64.c,
	plugins/sudoers/boottime.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/bsm_audit.h, plugins/sudoers/check.c,
	plugins/sudoers/check.h, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/digestname.c,
	plugins/sudoers/editor.c, plugins/sudoers/env.c,
	plugins/sudoers/env_pattern.c, plugins/sudoers/filedigest.c,
	plugins/sudoers/filedigest_gcrypt.c,
	plugins/sudoers/filedigest_openssl.c, plugins/sudoers/find_path.c,
	plugins/sudoers/gc.c, plugins/sudoers/gentime.c,
	plugins/sudoers/getspwuid.c, plugins/sudoers/gmtoff.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/hexchar.c, plugins/sudoers/ins_2001.h,
	plugins/sudoers/ins_classic.h, plugins/sudoers/ins_csops.h,
	plugins/sudoers/ins_goons.h, plugins/sudoers/insults.h,
	plugins/sudoers/interfaces.c, plugins/sudoers/interfaces.h,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog.h,
	plugins/sudoers/iolog_path.c, plugins/sudoers/ldap.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/linux_audit.h,
	plugins/sudoers/locale.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/logwrap.c,
	plugins/sudoers/match.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/mkdir_parents.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/po/sudoers.pot,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil.h,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/rcstr.c,
	plugins/sudoers/redblack.c, plugins/sudoers/redblack.h,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/parser/check_hexchar.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudo_nss.h,
	plugins/sudoers/sudo_printf.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers2ldif,
	plugins/sudoers/sudoers_debug.c, plugins/sudoers/sudoers_debug.h,
	plugins/sudoers/sudoers_version.h, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timeout.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/timestr.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/tsgetgrpw.h,
	plugins/sudoers/visudo.c, plugins/sudoers/visudo_json.c,
	plugins/system_group/Makefile.in,
	plugins/system_group/system_group.c, po/sudo.pot, src/Makefile.in,
	src/conversation.c, src/env_hooks.c, src/exec.c, src/exec_common.c,
	src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c, src/get_pty.c,
	src/hooks.c, src/load_plugins.c, src/net_ifs.c, src/openbsd.c,
	src/parse_args.c, src/preload.c, src/preserve_fds.c,
	src/regress/noexec/check_noexec.c,
	src/regress/ttyname/check_ttyname.c, src/selinux.c, src/sesh.c,
	src/signal.c, src/solaris.c, src/sudo.c, src/sudo.h,
	src/sudo_edit.c, src/sudo_exec.h, src/sudo_noexec.c,
	src/sudo_plugin_int.h, src/sudo_usage.h.in, src/tcsetpgrp_nobg.c,
	src/tgetpass.c, src/ttyname.c, src/utmp.c, sudo.pp:
	update my email to Todd.Miller@sudo.ws
	[48fba3c2c]

2017-12-02  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sudoreplay.c:
	Add missing carriage return before prompt when replay is done.
	[01587b1b1]

	* src/exec_pty.c:
	Track window size changes that happen while sudo is suspended
	[a2eff1150]

2017-12-01  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[988328393]

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo_plugin.cat,
	doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoreplay.cat,
	doc/visudo.cat:
	regen for sudo 1.8.22
	[276d83cc9]

	* NEWS, configure, configure.ac:
	Sudo 1.8.22
	[e8532bdce]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Background processes started by the command will no longer receive
	SIGHUP.
	[c2eee7904]

	* src/exec_monitor.c:
	When the command completes, make the monitor the foreground process
	group before informing the main sudo process of the command's exit
	status. This will prevent processes started by the command (which
	runs in a different process group) from receiving SIGHUP since the
	kernel sends SIGHUP to the foreground process group associated with
	the terminal session. The monitor has a SIGHUP handler installed so
	the signal is effectively ignored.
	[b561d0d7d]

	* src/sudo.c:
	Add debug printfs around group list retrieval.
	[4168668f5]

2017-11-30  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_pty.c:
	Move call to sudo_ev_loopcontinue() into schedule_signal() itself.
	We always want to prioritize signal forwarding.
	[116c5d7ef]

	* src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c:
	Don't loop over read/write, recv/send or tcgetpgrp/tcsetpgrp trying
	to handle EINTR. We now use SA_RESTART with signals so this is not
	needed and is potentially dangerous if it is possible to receive
	SIGTTIN or SIGTTOU (which it currently is not).
	[b9adb3dd5]

2017-11-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Better describe things when a command is run in a pty.
	[9298a2a42]

2017-11-29  Todd C. Miller  <Todd.Miller@sudo.ws>

	* src/exec_monitor.c, src/signal.c:
	Sprinkle some extra debugging printfs
	[486ced7c1]

	* src/exec_pty.c:
	Handle receipt of SIGTTIN/SIGTTOU when reading/writing from/to the
	tty. We can't use a signal event for these since that would restart
	the system call after the signal was handled and the callback would
	not get a chance to run. Fixes running a command in the background
	that write to the tty when the TOSTOP terminal flag is set.
	[54acf4f99]

	* src/exec_pty.c:
	We don't need to be the foreground process to be able to write to
	the terminal in most cases. If the background process tries to
	modify the terminal flags it will receive SIGTTOU which is relayed
	to the sudo front-end. This currently mishandles terminals with the
	TOSTOP local flag set.
	[5ccc7ab87]

2017-11-28  Todd C. Miller  <Todd.Miller@sudo.ws>

	* plugins/sudoers/sssd.c:
	Avoid a double free when ipa_hostname is set in sssd.conf and it is
	an unqualified host name. From Daniel Kopecek.

	Also move the "unable to allocate memory" warning into
	get_ipa_hostname() itself to make it easier to see where the
	allocation failed in the debug log.
	[93828eca6]

	* plugins/sudoers/ldap.c, plugins/sudoers/policy.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil.h,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/set_perms.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	When running a command as the invoking user we cannot use the gid
	list from the front-end since it may not correspond to the user's
	aux group vector as defined by the group database.
	[250209d7a]

	* lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/glob/globtest.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/parser/check_hexchar.c:
	Add missing initprogname() calls.
	[dd47a0a41]

2017-11-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Plug some memory leaks on error, some found by the clang static
	analyzer.
	[ca2e1a455]

2017-11-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.c:
	Avoid calling cmnd_matches() in list/verify mode if we already have
	a match.
	[bcc0eeb57]

	* plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/sssd.c:
	In list (-l) or verify (-v) mode, if we have a match but
	authentication is required, clear FLAG_NOPASSWD so that when
	listpw/verifypw is set to "all" and there are multiple sudoers
	sources a password will be required unless none of the entries in
	all sources require authentication. From Radovan Sroka of RedHat
	[88faa5873]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	When checking the results for "sudo -l" and "sudo -v", keep checking
	even after we get a match since the value of doauth may depend on
	evaluating all the results. From Radovan Sroka of RedHat.
	[2cbdc2654]

2017-11-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	If passwd_tries is less than 1, check_user() will always return
	false (since the user didn't authenticate). The normal reason for
	this is an authentication error but in this case no authentication
	was tries so no warning message has been displayed to the user. If
	the user wasn't given a chance to authenticate, set inform_user to
	true when calling log_denial() from sudoers_policy_main().

	An alternate approach would be for check_user() to return true in
	this case but seems more confusing.
	[a62cd4b4f]

2017-10-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/TROUBLESHOOTING:
	Document bash shell alias issue with "sudo -i".
	[4e8c037f2]

2017-10-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/policy.c:
	Return an error if the sudo front end doesn't set the user name,
	user ID, group ID or host name. Bug #807
	[53a8ad712]

	* lib/util/gethostname.c:
	Treat an empty hostname as a failure and return NULL.
	[2c45774a3]

2017-10-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers2ldif:
	Add support for #include and #includedir from Natale Vinto.
	[740c619d3]

2017-10-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS:
	Minor corrections from Tae Wong
	[c01774158]

2017-10-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Add a warning that for "sudo -i command" and "sudo -s command" the
	shell is not run in interactive mode which may change its behavior.
	[cece54ae8]

2017-09-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_compat.h, src/exec_pty.c:
	Fix stair-stepped output when the output of a sudo command is piped
	to another command and use_pty is set.
	[3b88cdfcd]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	env_keep and env_check are also taken into account with "sudo -i".
	Bug #806
	[1051cf1e6]

2017-09-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, config.h.in, configure, configure.ac,
	plugins/sudoers/ins_classic.h:
	Make PC insults the default and add new configure option,
	enable-offensive-insults, to enable the offensive insults.
	[749cdc9d9]

2017-09-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS:
	Add missing translators from recent updates and one name change.
	[dcb887807]

2017-09-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/fur.po, plugins/sudoers/po/hr.mo,
	plugins/sudoers/po/hr.po, plugins/sudoers/po/sv.mo,
	plugins/sudoers/po/sv.po, po/hr.mo, po/hr.po, po/sv.mo, po/sv.po:
	sync with translationproject.org * * * sync with
	translationproject.org
	[9ab1c9935]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	More accurately describe the use_pty option now that its behavior
	has changed with respect to interposition with a pipe. Also describe
	some caveats with log_input.
	[7e78fbccf]

	* doc/UPGRADE:
	Document changes in use_pty behavior when no terminal is present.
	[b4f4bb334]

	* src/exec_pty.c:
	Set ec->cmnd_pid to the correct value when receiving the command's
	process ID from the monitor.
	[894999204]

	* src/exec.c, src/exec_nopty.c, src/exec_pty.c, src/sudo_exec.h:
	If /dev/tty is not available and no I/O logging plugins are
	configured, fall back on exec_nopty() even if the policy plugin
	requested a pty. We never allocate a pty when sudo is not run from a
	terminal anyway.
	[84af812b8]

	* src/exec_pty.c:
	Do not set utmp_user if we did not actually allocate a pty.
	[2c2476f07]

2017-09-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.ac:
	sudo 1.8.21p2
	[87eba6c89]

	* src/exec.c:
	sudo_terminated() should not return true when SIGCHLD is pending.
	Bug #801
	[d85056d95]

	* src/tgetpass.c:
	Set SIGCHLD handler to SIG_DFL before forking the askpass command
	and restore after. Otherwise, SIGCHLD will end up in the list of
	pending signals and sudo_execute() will not execute the command.
	[4b5aeefeb]

	* lib/util/event.c:
	The read and write sides of signal_pipe[] were swapped, resulting in
	EBADF reading from and writing to the signal pipe on Linux and
	probably others. On systems with bidirectional pipes this was not an
	issue.
	[fdff345e0]

2017-09-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/pam.c:
	Fix a logic error in 96651906de42 which prevented sudo from using
	the PAM-supplied prompt. Bug #799
	[8e021c39f]

2017-09-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.ac:
	Sudo 1.8.21p1
	[f5425a80a]

	* mkpkg:
	The Fedora sudo package uses /etc/ldap.conf not /etc/sudo-ldap.conf.
	[171512b17]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	The fix for matching when no sudoRunAsUser is present in a sudoRole
	was incomplete. If no -g option was specified on the command line
	but sudoRunAsGroup is present in a sudoRole, we need to treat the
	group match as failed instead of missing.
	[06d52c97c]

	* plugins/sudoers/check.c, plugins/sudoers/defaults.c:
	Sprinkle a few more debugging printfs.
	[507ab6fdc]

	* plugins/sudoers/sudoreplay.c:
	Fix replaying sessions that contain input logs. When the
	inter-record timeout expires we need to read the next record if
	there is nothing to output.
	[e10025961]

	* doc/visudo.cat:
	regen
	[447c2c7e8]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Fix typo (Auguest vs. August). From David Pocock.
	[7652dad0d]

2017-08-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudo_nss.c:
	Go back to returning true from display_privs() on non-error. This
	results in "sudo -U otheruser -l" exiting with a status of 0 even
	when otheruser is not allowed to run commands. This is appropriate
	since the "sudo -l" command was successful. This does not change the
	exit value when otheruser runs "sudo -l" themselves, the exit status
	will be 1 since that user is not allowed to run commands. Requested
	by Radovan Sroka.
	[d5c41ae37]

	* plugins/sudoers/ldap.c:
	Fix the pass2 ldap query string when no search filter is defined.
	Due to the addition of "(sudoUser=*)" to the query we always need
	the AND operator, even if no search filter is present.
	[5cdee2c2c]

2017-08-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_nopty.c:
	Don't forward SIGINFO to the child when it is send by the kernel
	(not another user process). This is consistent with the handling of
	other keyboard-generated signals such as SIGINT, SIGQUIT and
	SIGTSTP. Bug #796
	[c3d098254]

2017-08-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Fix path to LICENSE and NEWS files that get used in the installer.
	Previously, the installed versions were used instead of the ones in
	the destdir.
	[0d31a1c30]

2017-08-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po, po/fi.mo,
	po/fi.po:
	sync with translationproject.org
	[0d243a882]

2017-08-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* po/es.mo, po/es.po:
	sync with translationproject.org
	[b7b00c26d]

2017-08-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po, po/it.mo,
	po/it.po:
	sync with translationproject.org
	[b45d73acb]

2017-08-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Preserving environment variables on the command line was bug #279
	[159f89f0d]

2017-08-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, NEWS, doc/CONTRIBUTORS, po/fur.mo, po/fur.po:
	Add Friulian translation for sudo from Fabio Tomat via
	translationproject.org
	[a01bbfacf]

2017-08-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/cs.mo,
	po/cs.po, po/fr.mo, po/fr.po, po/ko.mo, po/ko.po, po/nb.mo,
	po/nb.po, po/pl.mo, po/pl.po, po/pt_BR.mo, po/pt_BR.po, po/sr.mo,
	po/sr.po, po/sv.mo, po/sv.po, po/vi.mo, po/vi.po, po/zh_CN.mo,
	po/zh_CN.po:
	sync with translationproject.org
	[6696653e4]

2017-08-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	In the Runas example that uses "boulder" make it clear that
	"boulder" is a host name.
	[54860cf7f]

2017-08-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[deaeffe73]

	* NEWS, doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in,
	src/parse_args.c:
	Allow the user to specify a list of environment variables to
	preserve. This adds an option paramter to the --preserve-env option,
	a comma-separated list of variable names.
	[c18dde235]

2017-08-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, NEWS, config.h.in, configure, configure.ac,
	doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/timestamp.c:
	Replace tty_tickets option with timestamp_type which can be global,
	ppid or tty. Defaults to tty (no change in behavior). Some users
	want the ppid behavior.
	[63d954d1f]

	* lib/util/Makefile.in, plugins/sudoers/Makefile.in:
	regen
	[c3b3e501b]

	* plugins/sudoers/sudoers.c:
	Don't send email about an unresolvable host name if fqdn is enabled
	and the user specified the run host via the -h flag.
	[48459292f]

2017-07-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	fix playback of stdout/stderr without embedded carriage returns
	[5ab1d724a]

2017-07-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Avoid unused variable warning when sasl is not used.
	[98369bf98]

	* INSTALL, configure, configure.ac:
	Add support for --enable-sasl and --disable-sasl to make it possible
	to enable/disable support for LDAP with SASL authentication. Sudo
	compiles in support for SASL authentiation by default if the
	ldap_sasl_interactive_bind_s() function is detected. Bug #788
	[beece9171]

	* NEWS:
	List the correct pattern ("*=()*") in the env_delete description.
	Use pseudo-tty instead of pseudo terminal for consistency.
	[ad81862b0]

2017-07-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/closefrom.c:
	Include pathnames.h for /dev/fd on FreeBSD and Mac OS X.
	[5a6b8a78f]

	* NEWS:
	update for 1.8.21
	[ec45b77d0]

	* src/exec_pty.c:
	No need to call sudo_ev_del() before sudo_ev_free(); sudo_ev_free()
	will delete the event from its base before freeing it.
	[0849e2cac]

	* src/exec_pty.c:
	Terminate the command if an I/O log function returns 0 or -1. This
	was mistakenly removed by 25b7fd056614 in Sudo 1.8.18 with the
	removal of the ignore_iolog_errors variable.
	[1cfaf6c34]

	* plugins/sudoers/sudoreplay.c:
	Quiet a coverity false positive.
	[4b5162291]

	* plugins/sudoers/sudoreplay.c:
	Change to a single event loop in sudoreplay and use signal events.
	[2d30c42a0]

2017-07-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	start new sentences on a new line
	[9ea9ecb18]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Clarify how the variable prompt options interact with each other and
	PAM.
	[d76d5eaeb]

	* plugins/sudoers/sudoers.c:
	Don't set passprompt_override when SUDO_PROMPT is present. This
	effectively reverts ed77d255f383.

	We treat the SUDO_PROMPT environment variable similar to passprompt
	in sudoers: it will only override a PAM prompt if the PAM prompt is
	either "Password:" or "username's Password:".
	[879ba6887]

2017-07-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/logging.c:
	Add syslog_pid sudoers option to log sudo's process ID when logging
	via syslog. This is disabled by default to match historic behavior.
	[d129f306e]

	* plugins/sudoers/auth/pam.c:
	When deciding which prompt to use (PAM's or sudo's) treat the PAM
	prompt "username's Password:" as equivalent to "Password:". Some PAM
	modules (on AIX at least) use this prompt.
	[43cbcbc24]

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.in:
	Add missing argument to a few of the defaults strings in the "sudo
	-V" output.
	[5923a2811]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/visudo.c:
	When examining environment variables or variables passed in from the
	front-end, ignore variables with no value specified.
	[52b25940c]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Document that "-p prompt" overrides SUDO_PROMPT.
	[6b4d871b1]

	* plugins/sudoers/sudoers.c:
	Enable passprompt_override by default if SUDO_PROMPT is present in
	the environment. This is consistent with how "sudo -p prompt" is
	handled.
	[37f591d2d]

2017-07-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	When reading a single character via a switch() use "default: instead
	of "case 1:" to quiet a coverity warning.
	[1918ec4a5]

	* plugins/sudoers/sudoreplay.c:
	Initialize ch in getsize_cb() in case we are called with the wrong
	initial state.
	[6509482bf]

	* plugins/sudoers/sudoreplay.c:
	remove unused variable
	[58858513f]

	* plugins/sudoers/visudo.c:
	Call install_sudoers() even when doedit is false. If a file in a
	#includedir has a syntax error it will still have been edited and we
	need to install the edited temp file.
	[034132774]

	* plugins/sudoers/visudo.c:
	Reparse sudoers if a new #include file was added. Otherwise the new
	file will not get its syntax checked. Bug #791
	[5bc80d3dd]

2017-07-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	don't restore the cursor when setting terminal size, we don't want
	the cursor to move
	[28fe33501]

	* plugins/sudoers/sudoreplay.c:
	Read the xterm terminal size using an event so we can easily time
	out if needed.
	[dbddf1bc3]

	* lib/util/event.c, src/exec_nopty.c, src/exec_pty.c:
	If we free the default base in sudo_ev_base_free(), reset the
	default base to NULL.
	[7f8765d32]

2017-07-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_event.h, lib/util/event.c, lib/util/util.exp.in,
	src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c:
	Add the ability to set a default event base, to be used by plugins
	which don't have access to the event base.
	[d2a0bfbb1]

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	plugins/sudoers/sudoreplay.c:
	Allow sudoreplay to adjust the window size on xterm-like terminals.
	[9a7667831]

2017-07-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c, plugins/sudoers/sudoreplay.c:
	Log window size change events in the sudoers I/O plugin. Let
	sudoreplay parse a timing file with window change events (currently
	ignored).
	[f79a23653]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/sudo_plugin.h, src/exec_pty.c:
	Pass window size change events to the plugin.
	[8898ec1f9]

	* lib/util/term.c:
	Clear input, output, control and local flags before copying them
	from the source terminal. Otherwise, flags that are disabled in the
	source terminal may still be enabled in the destination.
	[6505d0580]

	* Makefile.in, doc/Makefile.in, examples/Makefile.in,
	include/Makefile.in, lib/util/Makefile.in, lib/zlib/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Remove pointless subshells in targets that simply change the
	directory and execute a command. The command is already run in a
	shell so there is no need to execute a subshell in this case.
	[e70a953fb]

2017-07-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo.c:
	Store the debug instance ID for I/O plugins too. Now iolog_open() is
	consistent with policy_open().
	[a7759b626]

2017-06-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/event.c:
	Move the bits to fill in the new event base to sudo_ev_base_init(),
	which is not currently exported.
	[88bf0337e]

2017-06-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.ac, lib/util/mktemp.c:
	Use getentropy() in mkstemp/mkdtemp replacement.
	[c00018968]

	* configure, configure.ac, lib/util/closefrom.c, lib/util/mktemp.c,
	pathnames.h.in, src/exec_pty.c, src/get_pty.c, src/ttyname.c:
	Use _PATH_DEV consistently
	[6d4d4594b]

2017-06-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/term.c:
	When copying terminal settings from one tty to another only copy a
	subset of the flags. Sudo now copies the same set of flags that
	OpenSSH uses, which should be safe.
	[c77c5d026]

	* src/exec_monitor.c, src/exec_nopty.c:
	Add debug warning when we have wait status but don't overwrite the
	existing cstat.
	[f5b60ef74]

	* src/exec_monitor.c:
	Better handling of SIGCONT from in command in the monitor. It is
	useful to know when the command continued but we don't want to
	inform the parent or store the wait status in this case. Fixes a
	hang after multiple suspends on Linux.
	[c8c586ee0]

2017-06-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.h:
	avoid padding in struct cmndspec
	[022ac87d6]

2017-06-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in:
	Fix the man section of sudo_plugin in cross-references.
	[60146c295]

2017-06-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_edit.c:
	Don't treat an unchanged file as an error. From Xin Li.
	[ab59834a0]

	* src/sudo_edit.c:
	sudo_edit() must return a wait status but if there is an error, or
	even if no changes were made to the file, it was returning 1 instead
	which would be interpreted as the command having received SIGHUP.
	Use the W_EXITCODE() to construct a proper wait status in the error
	case too.
	[0d70e868f]

2017-06-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	Avoid sign extension when assigning the value of tty_nr in
	/proc/self/stat on Linux. It is an unsigned int value that is
	printed as a signed int but dev_t is unsigned long long. We need to
	cast to unsigned int before assigning to a dev_t.
	[26d9043bf]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/env.c:
	Instead of hard-coding a check for bash functions in
	env_should_delete(), use a "*=()* " pattern in
	initial_badenv_table[] to match them instead. This allows the user
	to remove the check via env_delete.
	[e1e2162dc]

2017-06-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL.configure, configure.ac, doc/sudo_plugin.cat,
	doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, mkpkg, sudo.pp:
	Mac OS X -> macOS
	[0ab00964e]

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	devsearch is ignored on BSD, macOS and Solaris
	[7526869d8]

2017-05-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Sudo 1.8.20p2
	[13633ae5a]

	* src/ttyname.c:
	A command name may also contain newline characters so read
	/proc/self/stat until EOF. It is not legal for /proc/self/stat to
	contain embedded NUL bytes so treat the file as corrupt if we see
	any. With help from Qualys.

	This is not exploitable due to the /dev traversal changes in sudo
	1.8.20p1 (thanks Solar!).
	[c13ebffbc]

2017-05-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	Use /proc/self consistently on Linux. As far as I know, only AIX
	doesn't support /proc/self.
	[15901c948]

	* INSTALL, configure, configure.ac, doc/sudo.conf.cat,
	doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in, include/sudo_conf.h,
	lib/util/sudo_conf.c, lib/util/util.exp.in, pathnames.h.in,
	src/ttyname.c:
	Add a new "devsearch" Path setting to sudo.conf for configuring the
	/dev paths to traverse instead of hard-coding a list in ttyname.c
	The default value can be set at configure time.
	[cc71b9984]

	* src/selinux.c:
	After opening a tty device, fstat() and error out if it is not a
	character device.
	[777abca38]

2017-05-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure:
	Sudo 1.8.20p1
	[71e496a90]

	* src/ttyname.c:
	Fix for CVE-2017-1000367, parsing of /proc/pid/stat on Linux when
	the process name contains spaces. Since the user has control over
	the command name this could be used by a user with sudo access to
	overwrite an arbitrary file. Thanks to Qualys for investigating and
	reporting this bug.

	Also stop performing a breadth-first traversal of /dev when looking
	for the device. Only the directories specified in search_devs[] are
	checked.
	[b3fe46ce6]

2017-05-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/event_select.c:
	Fix potential memory leak on reallocarray() error. Coverity CID
	169639
	[20a0fa128]

	* plugins/sudoers/bsm_audit.c:
	Only fall back to deprecated getaudit() on FreeBSD. Fixes compiler
	warnings on macOS.
	[b2770313c]

	* mkpkg:
	Use clang on macOS if present
	[f794de950]

	* sudo.pp:
	fix paths to LICENSE and NEWS files for macOS packages
	[b53a531cc]

2017-05-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c:
	To avoid overwriting existing command status, check for CMD_INVALID
	instead of CMD_ERRNO or CMD_WSTATUS.
	[ad8c1ae07]

	* plugins/sudoers/regress/env_match/data:
	Add some patterns that could result in exponential run time for
	poorly written '*' matching.
	[47df575f6]

2017-05-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/ttysize.c, src/exec_pty.c:
	On HP-UX 11.0, sys/ioctl.h is not sufficient to make struct winsize
	visisble, we need termios.h too.
	[c91b6777d]

	* lib/util/ttysize.c:
	Always used TIOCGWINSZ.
	[ea9120ee2]

	* src/exec.c, src/sudo.c, src/sudo.h:
	Move exec_setup(), unlimit_nproc() and restore_nproc() from sudo.c
	to exec.c.
	[6a8eaef4b]

	* src/sudo_edit.c:
	No need to include selinux.h here.
	[befa862f7]

	* plugins/sudoers/regress/env_match/check_env_pattern.c:
	Fix compilation error on macOS
	[f60030b90]

2017-05-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/ldap.c:
	Avoid a clang analyzer false positive.
	[7db97c783]

	* Makefile.in:
	Add cov-build and cov-submit targets for checking with coverity.
	[1dc39e9d9]

	* plugins/sudoers/iolog.c, plugins/sudoers/mkdir_parents.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/visudo.c:
	Use debug logging instead of ignore_result() where possible.
	[a842913aa]

	* config.h.in, configure, configure.ac, include/sudo_compat.h,
	lib/util/term.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/visudo.c, src/exec_monitor.c, src/exec_nopty.c,
	src/exec_pty.c, src/signal.c, src/sudo.c, src/tcsetpgrp_nobg.c,
	src/tgetpass.c:
	Remove use of non-standard sigaction_t
	[d979898e7]

	* include/sudo_compat.h, plugins/sudoers/timestamp.c,
	src/tcsetpgrp_nobg.c, src/tgetpass.c:
	Remove use of the non-standard SA_INTERRUPT
	[b5c88e52b]

	* configure, configure.ac:
	sudo 1.8.21
	[9c3783a17]

	* MANIFEST, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/env.c, plugins/sudoers/env_pattern.c,
	plugins/sudoers/regress/env_match/check_env_pattern.c,
	plugins/sudoers/regress/env_match/data, plugins/sudoers/sudoers.h:
	Add support for multiple '*' in env_keep, env_check and env_delete
	entries.
	[17514b55e]

	* src/signal.c:
	Add SIGCHLD to the list of signals we install sudo_handler() for.
	Otherwise, it is possible for the command to exit before the SIGCHLD
	handler is installed. POSIX says that signals that are ignored by
	default are still ignored even if the signal mask would block them.
	We need to have a handler installed for SIGCHLD before the fork().
	[15790b69c]

	* lib/util/event.c:
	Activate the sigevents inside the signal pipe callback itself and
	call signal_pipe_cb() directly if the backend returns EINTR and the
	signal_caught flag is set. This has the side effect of processing
	signal events in the current pass of the event loop instead of the
	next one.
	[95e92bfe4]

	* src/exec.c, src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c,
	src/signal.c, src/sudo.h, src/sudo_exec.h:
	Use SUDO_EV_SIGNAL and SUDO_EV_SIGINFO instead of managing the
	signal_pipe explicitly.
	[1186f3984]

	* include/sudo_event.h, lib/util/event.c:
	Handle the possibility of the siginfo parameter in sa_sigaction
	handler being NULL.
	[9d4a92b9b]

	* include/sudo_event.h, lib/util/event.c:
	Add support for signal events in sudo's event subsystem
	[2a5580877]

	* plugins/sudoers/sudoreplay.c:
	Restore the error message for sudo_ev_add() failure.
	[e453c9797]

	* include/sudo_queue.h:
	Add workaround for clang static analyzer being confused by
	LIST_REMOVE and TAILQ_REMOVE.
	[a2a83557e]

2017-05-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Fix "make check" when openssl or gcrypt is used. Bug #787
	[246ed8777]

2017-05-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	Only display string version of errno if sudo_ev_add() fails for now
	[0244f931d]

2017-05-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	update
	[75f5f4934]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Be clear that #includedir diverts control to the files in the
	specified directory and, when parsing of those files is complete,
	returns control to the original file. Bug #775
	[e51831fab]

2017-05-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po, po/sr.mo,
	po/sr.po:
	sync with translationproject.org
	[93c029f4f]

2017-05-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	update
	[6f3cc3f10]

	* src/exec_monitor.c:
	Fix a hang introduced in the last commit. Don't close the pty slave
	until after we have the controlling tty.
	[e18a5c7d7]

	* src/exec_monitor.c, src/exec_pty.c:
	If any of std{in,out,err} are not hooked up to a tty only interpose
	ourselves with a pipe if the plugin will actually log the data. This
	avoids a problem with non-interactive commands where no tty is
	present where sudo will consume stdin even when log_input is not
	enabled in sudoers.
	[44dc15d02]

	* NEWS:
	update
	[62730d13d]

	* doc/TROUBLESHOOTING:
	Update based on information from Michael Felt.
	[01228b735]

2017-05-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	In check_input() when switch()ing on the return value of read(), use
	the default label instead of 1 for the success case. It is only
	reading a single byte so the two are equivalent but it reads better
	using default.
	[4e67ac56b]

	* plugins/sudoers/sudoreplay.c:
	Check sudo_ev_add() return value. Coverity CID 168362
	[1a047b156]

	* plugins/sudoers/iolog.c:
	Add io_open() wrapper for open(2) that retries with PERM_IOLOG if
	open(2) fails with EACCES. Use io_open() instead of duplicate copies
	of the same fallback code.
	[1d1ebb611]

	* plugins/sudoers/iolog.c:
	Don't retry the open() if set_perms() fails.
	[8757691fc]

	* plugins/sudoers/iolog.c:
	Fix typo (fd2 vs. fd) caught by coverity, CID 168359.
	[237eddd95]

	* po/hu.mo, po/hu.po:
	sync with translationproject.org
	[32ebb4a38]

2017-05-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	Warn people not to use --enable-asan in production.
	[280d5ac69]

	* configure, configure.ac, src/Makefile.in:
	Move the invocation of check_noexec into the main "check" target but
	only run it if not cross compiling and whe CHECK_NOEXEC is not
	empty.
	[80f8960fc]

	* src/Makefile.in:
	Move @CHECK_NOEXEC@ to TEST_PROGS so it gets cleaned up properly.
	[ecbf89509]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Move syslog_maxlen to the "Integers" section. Move syslog_goodpri
	and syslog_badpri to the "Strings at can be used in a boolean
	context" section.
	[8468f13c6]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Fix a pasto that resulted in an extra (empty) syslog_goodpri list
	entry.
	[d9bfaa386]

	* MANIFEST, plugins/sudoers/regress/sudoers/test20.in,
	plugins/sudoers/regress/sudoers/test20.json.ok,
	plugins/sudoers/regress/sudoers/test20.out.ok,
	plugins/sudoers/regress/sudoers/test20.toke.ok,
	plugins/sudoers/regress/sudoers/test21.in,
	plugins/sudoers/regress/sudoers/test21.json.ok,
	plugins/sudoers/regress/sudoers/test21.out.ok,
	plugins/sudoers/regress/sudoers/test21.toke.ok:
	Add tests for parsing tuples and syslog options.
	[c37966555]

	* plugins/sudoers/defaults.c:
	Allow the syslog Defaults option to be used in a "true" boolean
	context and use the compiled in default log facility in this case.
	[2d8717bdd]

	* plugins/sudoers/defaults.c:
	Allow a tuple to be set to boolean true. Regression introduced by
	refactor of set_default_entry() in sudo 1.8.18.
	[631d458b6]

2017-05-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/TROUBLESHOOTING:
	Replace the list of "dangerous" environment variables and explain
	how sudo handles the environment instead.
	[ddf1fa16f]

2017-04-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/glob.c:
	Fix exponential behavior in glob() with respect to multiple '*'. See
	https://research.swtch.com/glob Adapted from
	https://perl5.git.perl.org/perl.git/commit/33252c318625f3c6c89b816ee
	88481940e3e6f95
	[6af6f8467]

	* src/exec_pty.c:
	We no longer need to write to the tty if the command was killed by a
	signal. Sudo will terminate itself with the same signal the command
	died from. Unfortunately, we lose the "core dumped" bit since sudo
	itself will not dump core, but there doesn't appear to be a way
	around that.
	[dab8651ed]

2017-04-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo.c:
	On Linux, if the command we ran dumped core, set PR_SET_DUMPABLE to
	0. This will prevent sudo itself from dumping core in this case.
	[f57629c95]

	* INSTALL:
	Update path to sudo_noexec.so
	[f0425ca81]

	* src/sudo.c:
	If the command terminated due to a signal, sudo will send that same
	signal to itself so the parent shell knows the command died from a
	signal. However, we don't want sudo itself to dump core.
	[91aec9730]

2017-04-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	sync
	[2d13bf356]

	* src/sudo.c:
	The fix for Bug #722 contained a typo/thinko that resulted in the
	exit status being 0 when a command was killed by a signal other than
	SIGINT. This fixes the signal handler setup so sudo will terminate
	with the same signal as the command. Bug #784.
	[9ee50beaa]

	* sudo.pp:
	Better check for /etc/rc.d/rc2.d/S90sudo on AIX
	[2180eab1f]

	* src/Makefile.in:
	Don't install the rc.d link when installing to a DESTDIR. DESTDIR is
	generally only set when installing to a temporary directory for
	packaging in which case the link should be made in a post-install
	script.
	[54a23d2c5]

	* plugins/sudoers/Makefile.in, sudo.pp:
	In "make install", install sample sudoers file as /etc/sudoers.dist
	and copy it to /etc/sudoers if there is no existing /etc/sudoers.
	Packages either contain /etc/sudoers (RPM and Debian) or
	/etc/sudoers.dist (everything else).
	[9bccceaea]

	* Makefile.in, mkdep.pl:
	Allow "make dist" and "make depend" to work for out of tree builds.
	[495931f4a]

2017-04-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/zlib/Makefile.in:
	Add missing $(srcdir) prefix to shlib_exp definition.
	[f7df25062]

2017-04-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_compat.h:
	Fix typo in killpg macro.
	[11c82e2f1]

	* include/sudo_compat.h:
	Fix the killpg macro for systems without killpg() in libc.
	[18c8ce10e]

2017-04-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Use the standard idiom for popping all entries from a tail queue.
	The llvm checker gets confused by TAILQ_REMOVE and generate
	use-after-free false positives.
	[9f1afe23f]

	* src/exec_monitor.c, src/exec_nopty.c:
	rewrite errpipe callbacks
	[c60259bd6]

	* src/exec_monitor.c, src/exec_nopty.c:
	use pipe2() with O_CLOEXEC instead of pipe() + fcntl() and
	FD_CLOEXEC
	[c2176c32a]

	* src/exec_pty.c:
	init io_pipe[][] to -1, not 0
	[6e7517952]

2017-04-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sssd.c:
	In sudo_sss_check_user() it is not possible for handle to be NULL.
	[f3daaba1c]

	* plugins/sudoers/sssd.c:
	Fix a use after free when the fqdn sudoOption is set and no hostname
	value is present in sssd.conf.
	[583fac17e]

	* src/sudo.c:
	Avoid unused variable when getgrouplist_2() is available. It would
	be nicer to just provide getgrouplist_2() (or the equivalent) and
	avoid the ugly #ifdefs.
	[a245fedc2]

	* plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po, po/nb.mo,
	po/nb.po:
	sync with translationproject.org
	[871b912f4]

2017-04-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	regen
	[7c63dbf65]

2017-04-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	In sudo_ttyname_scan() if dir is the empty string, set errno to
	ENOENT before returning.
	[d989f8af3]

2017-04-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Try to make it clear that when match_group_by_gid is enabled, groups
	in sudoers are looked up by group name instead of group ID. This
	doesn't usually cause problems, but if there are conflicting group
	entries (for example, from a local /etc/group file and an LDAP or AD
	group database), whether the group is resolved by name or ID can be
	used to work around conflicts.
	[0b81e0b19]

2017-04-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po, po/ja.mo,
	po/ja.po:
	sync with translationproject.org
	[f7251f806]

	* plugins/sudoers/regress/parser/check_digest.c:
	plug memory leak in check_digest
	[491e6ae9f]

	* src/exec.c:
	Check return value of dispatch_pending_signals() in case we received
	SIGINT or SIGQUIT before executing the command.
	[c6f9f06c4]

2017-03-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	back out unintentional change to the version number
	[ec5b78335]

2017-03-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/cs.mo,
	po/cs.po, po/da.mo, po/da.po, po/de.mo, po/de.po, po/fr.mo,
	po/fr.po, po/hr.mo, po/hr.po, po/it.mo, po/it.po, po/pl.mo,
	po/pl.po, po/pt_BR.mo, po/pt_BR.po, po/tr.mo, po/tr.po, po/uk.mo,
	po/uk.po, po/vi.mo, po/vi.po, po/zh_CN.mo, po/zh_CN.po:
	sync with translationproject.org
	[04d83c41c]

2017-03-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_digest.out.ok:
	Make check_digest test sudo_filedigest() itself instead of the
	underlying SHA2 functions. That way we can test it regardless of
	whether we use sudo's SHA2 functions or a library version.
	[bdc925118]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document that commands matched by "sudo ALL" are not affected by
	fdexec.
	[272a9c8e9]

2017-03-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update for 1.8.20
	[ba15306c9]

	* plugins/sudoers/po/sudoers.pot:
	regen for restricted_env_file
	[a58c7d7db]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Mention that iolog_user is useful for NFS.
	[7f2633807]

2017-03-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Only retry mkdir or create with PERM_IOLOG if errno is EACCES. Also
	always use PERM_IOLOG for mkdtemp() since we cannot retry if it
	fails. Since we are guaranteed to create a new directory there's no
	real need to try w/o PERM_IOLOG in this case.
	[4df6b62b5]

2017-03-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Add fallback to PERM_IOLOG when making the final componenet of
	iolog_dir.
	[31b16fd3e]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/env.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Add restricted_env_file which is like env_file but subject to the
	same restrictions as the user's own environment.
	[b3af85ddc]

	* plugins/sudoers/iolog.c:
	quiet a warning on older zlib
	[4621e4367]

	* plugins/sudoers/iolog.c, plugins/sudoers/timestamp.c:
	cast mode_t to unsigned int when printing with %o
	[8d1e994d8]

2017-03-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot:
	regen
	[7f1fa00be]

	* plugins/sudoers/iolog.c, plugins/sudoers/mkdir_parents.c,
	plugins/sudoers/timestamp.c:
	Set umask temporarily when creating files instead of changing the
	mode after the fact. This is slightly less error prone.
	[7668b4b42]

	* plugins/sudoers/iolog.c:
	remove now-useless variable
	[2a37590b7]

	* plugins/sudoers/mkdir_parents.c:
	Don't set owner/mode on directories that already exist, only on
	newly-created ones.
	[2caddff3f]

	* plugins/sudoers/iolog.c, plugins/sudoers/mkdir_parents.c:
	Explicitly set the file mode of I/O log files so the mode is not
	affected by the invoking user's umask.
	[1bd90d8ff]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/iolog.c, plugins/sudoers/mkdir_parents.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/timestamp.c:
	Add PERM_IOLOG so we can create I/O log files on an NFS-mounted
	filesystem where root is remapped to an unprivileged user.
	[8d57491dc]

	* plugins/sudoers/mkdir_parents.c:
	Restore the '/' in the path before returning if we encounter an
	error.
	[cfb15106e]

2017-03-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/timestamp.c:
	When creating the timestamp directory, use the group of the
	timestamp owner instead of inheriting the group of the parent
	directory.
	[2dbd09144]

2017-03-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sssd.c:
	zero out nss->handle after it has been freed to make sure we cannot
	free it twice
	[a1322d7dd]

2017-03-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/iolog.c:
	Add iolog_flush option.
	[c4e703696]

2017-03-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/iolog.c:
	Don't allow the user to specify an I/O log file mode that sudo can't
	read or write to. I/O logs must always be readable and writable by
	the owner.
	[8c8d078f6]

2017-03-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo_plugin.cat,
	doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoreplay.cat,
	doc/visudo.cat:
	Regenerate the cat pages with newer mandoc which formats double
	quotes as "foo" instead of ``foo''.
	[8b3845c1c]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Make it clear that I/O logs will be complete even if the command run
	by sudo is terminated by a signal. The I/O log buffering just
	prevents the logs from being displayed in real-time as the command
	is running.
	[4bdbc6b29]

2017-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_monitor.c, src/signal.c, src/sudo.h:
	Replace pipe_nonblock() with pipe2()
	[35e4bd3e9]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/Makefile.in, lib/util/pipe2.c,
	mkdep.pl:
	Emulate pipe2() on systems without it.
	[7aa89c49b]

2017-03-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/kerb5.c:
	Fix declaration of sudo_krb5_verify() in the case where
	krb5_verify_user() is not present. Bug #777
	[b63df21ba]

	* plugins/sudoers/rcstr.c:
	Use HAVE_STDBOOL_H to detect systems w/o stdbool.h. Bug #778
	[453360666]

2017-03-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[a86d399ef]

	* src/exec_monitor.c, src/exec_nopty.c, src/exec_pty.c:
	Move SIGCHLD handling into handle_sigchld() functions and move the
	remaining bits of dispatch_signal() into signal_pipe_cb()
	[867fd1634]

2017-03-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/utmp.c:
	e_termination should be set to the value of WTERMSIG not WEXITSTATUS
	[78f3f8bb9]

2017-03-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, src/Makefile.in, src/exec_nopty.c, src/sudo.h,
	src/tcsetpgrp_nobg.c:
	Add tcsetpgrp_nobg() which acts like tcsetpgrp() but returns -1 for
	a background process. This is safer than blocking SIGTTOU which
	would cause tcsetpgrp() to succeed in the background.
	[af1482f48]

2017-03-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_nopty.c:
	Prevent sudo from receiving SIGTTOU when it tries to restore the
	controlling terminal. There appears to be a race with the shell
	(bash) which we may lose.
	[2f074d33a]

2017-03-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/timestamp.c, src/exec_monitor.c:
	Add some casts to quiet gcc warnings on Solaris and remove a
	now-useless debug printf.
	[00b4732c9]

	* src/exec_pty.c:
	change debug info when suspending sudo
	[a78814409]

	* MANIFEST, src/Makefile.in, src/exec.c, src/exec_monitor.c,
	src/exec_nopty.c, src/exec_pty.c, src/sudo_exec.h:
	Reorganize the command execution code to separate out the pty and
	non-pty code paths into their own event loops. The non-pty exec code
	is now contained in exec_nopty.c and the pty exec code is split
	between exec_pty.c (parent process) and exec_monitor.c (session
	leader). This results in a small bit of duplicated code but improves
	readability. Some of the duplicated code will fall out in future
	changes to the event subsystem (the signal pipe).
	[6dba84dca]

2017-02-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/ttysize.c, src/exec_pty.c:
	Remove support for the TIOCGSIZE ioctl. Systems that use this rather
	than TIOCGWINSZ are too old for sudo to build on anyway.
	[4b1f0c417]

2017-02-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_pty.c:
	Set the child pid to -1 after we've waited for it and take care to
	avoid killing pid -1. This makes it a bit more explicit and removes
	the need for a separate variable to track the child's status. Sudo
	already stops processing signals after it receives SIGCHLD so it is
	not vulnerable to CVE-2017-2616.
	[13fcdb4f5]

2017-02-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Update the description of strict mode to current reality. Aliases
	haven't needed to be defined before they are used since sudo 1.7.
	[05e52c7b8]

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in,
	plugins/sudoers/regress/visudo/test2.err.ok,
	plugins/sudoers/regress/visudo/test3.err.ok,
	plugins/sudoers/visudo.c:
	Go back to using a Warning/Error prefix in the message printed to
	stderr for alias problems. Requested by Tomas Sykora.
	[daa728fd8]

2017-02-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/filedigest.c,
	plugins/sudoers/filedigest_openssl.c:
	fix copyright years
	[143620bb2]

2017-02-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, MANIFEST, configure, configure.ac, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/filedigest_gcrypt.c:
	Add support for using the message digest functions in libgcrypt
	instead of sudo's own SHA2 implementation.
	[b9954fb9b]

	* INSTALL, MANIFEST, configure, configure.ac, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/filedigest_openssl.c:
	Add support for using the message digest functions in OpenSSL
	instead of sudo's own SHA2 implementation.
	[199a594f4]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/digestname.c, plugins/sudoers/filedigest.c,
	plugins/sudoers/ldap.c, plugins/sudoers/match.c,
	plugins/sudoers/parse.h, plugins/sudoers/sssd.c,
	plugins/sudoers/visudo_json.c:
	Move the file digest code out of match.c and into filedigest.c.
	Inspired by RedHat changes that used libgcrypt. Also add
	digest_type_to_name() to map a sudo digest type (int) to a name
	(string) and use it.
	[b5e7b7bd2]

	* plugins/sudoers/gmtoff.c:
	Check for gmtime() or localtime() returning NULL and just use a zero
	offset in that case. Should not be possible.
	[00b76afe4]

2017-02-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers2ldif:
	Add support for ROLE, TYPE, PRIVS, LIMITPRIVS, TIMEOUT, NOTBEFORE
	and NOTAFTER.
	[b3fdb26c4]

	* config.h.in, configure, configure.ac, plugins/sudoers/timestr.c:
	strftime() was in C89 so use it unconditionally.
	[fd40d88ba]

	* MANIFEST, config.h.in, configure, configure.ac, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, include/sudo_debug.h,
	lib/util/sudo_debug.c, lib/util/util.exp.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/gentime.c,
	plugins/sudoers/gmtoff.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/parser/check_gentime.c,
	plugins/sudoers/regress/sudoers/test19.in,
	plugins/sudoers/regress/sudoers/test19.json.ok,
	plugins/sudoers/regress/sudoers/test19.out.ok,
	plugins/sudoers/regress/sudoers/test19.toke.ok,
	plugins/sudoers/regress/visudo/test10.out.ok,
	plugins/sudoers/regress/visudo/test10.sh,
	plugins/sudoers/sudoers_version.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add NOTBEFORE and NOTAFTER command options similar to what is
	already available in LDAP.
	[e5dee1557]

2017-02-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[3b19d05fe]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/sudo_plugin.h:
	Bump version to 1.11 for timeout entry in settings[]
	[31540e622]

	* doc/sudo.conf.cat, doc/sudo_plugin.cat, doc/sudoers.ldap.cat,
	doc/sudoreplay.cat, doc/visudo.cat:
	regen
	[b030c96a8]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/parse_args.c, src/sudo_usage.h.in:
	Add a command line option to specify the command timeout, as long as
	sudoers does not specify a shorter time limit.
	[c86a6a23a]

2017-02-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Better error message when the timeout value does not parse.
	[9b0622b58]

	* plugins/sudoers/timeout.c:
	set errno to ERANGE not EOVERFLOW on range error
	[8bffd0988]

2017-02-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	regen
	[635f330a4]

	* plugins/sudoers/Makefile.in:
	Only inhibit ASAN leak detector for tests that result in a parse
	error. The parser cannot currently clean up completely on error.
	[e5266f9eb]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Plug some memory leaks found by ASAN.
	[0f3f4e028]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	List SELinux role/type for "sudo -l" with LDAP and SSSd backends.
	Also fix printing of the timeout.
	[e954facb9]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Only inherit SELinux role/type and Solaris privilege sets if the
	command does not include any. Previously, a command with only a role
	would inherit a type from the previous command which is not what was
	intended.
	[d7f7cf7a7]

	* doc/fixman.sh, doc/fixmdoc.sh, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/parse.h:
	Split out tags again so they must precede the command and not allow
	them to be mixed in with options.
	[24cdbb8de]

	* MANIFEST, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/ldap.c, plugins/sudoers/mkdefaults,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/policy.c, plugins/sudoers/regress/sudoers/test17.in,
	plugins/sudoers/regress/sudoers/test17.json.ok,
	plugins/sudoers/regress/sudoers/test17.out.ok,
	plugins/sudoers/regress/sudoers/test17.toke.ok,
	plugins/sudoers/regress/sudoers/test18.in,
	plugins/sudoers/regress/sudoers/test18.json.ok,
	plugins/sudoers/regress/sudoers/test18.out.ok,
	plugins/sudoers/regress/sudoers/test18.toke.ok,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timeout.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/visudo_json.c:
	Add support for command timeouts in sudoers. After the timeout, the
	command will be terminated.
	[3980f1531]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/parse.h:
	Merge command tags, SELinux type/role and Solaris privs settings
	into "command options". This relaxes the order of things so tags and
	other options can be interspersed.
	[4f9dcd726]

	* plugins/sudoers/rcstr.c:
	supress cppcheck memory leak false positive
	[fb419ba06]

	* lib/util/strtoid.c:
	fix typo that prevented compilation on FreeBSD
	[47b82acd7]

2017-02-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/Makefile.in:
	Link vsyslog.lo directly into vsyslog_test to make sure the syslog()
	stub gets called. Otherwise, the real syslog will get called via
	libutil on AIX.
	[4dad181be]

	* lib/util/regress/vsyslog/vsyslog_test.c:
	Fix final test with a format > 2048 bytes. Keep track of tests run
	in the syslog() stub so we can detect if the stub is not being
	called.
	[f59327bc5]

	* lib/zlib/deflate.c:
	avoid redefining the MIN macro
	[6263cc55a]

	* plugins/sudoers/parse.h, plugins/sudoers/timestr.c:
	Include parse.h in timestr.c which is where function prototype
	lives.
	[09438e5b4]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix for including a sudoers file that begins with the letter 'i'.
	The hack to determine whether we are parsing an include or
	includedir is no longer safe now that relative include paths are
	permitted. Bug #776.
	[359cacc40]

2017-02-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.in:
	Display the value of syslog_maxlen in sudo -V output.
	[8c1da9b69]

2017-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c:
	Add ignore_unknown_defaults flag to ignore unknown Defaults entries
	in sudoers instead of producing a warning.
	[3742f7a46]

2017-01-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match.c:
	Always set the close-on-exec bit on the fd used to generate the
	digest (i.e. the command to run) on systems that lack fexecve(2).
	That way we don't need to explicitly close it using #ifdefs.
	[ba8f75669]

	* plugins/sudoers/po/ca.mo, plugins/sudoers/po/ca.po,
	plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po, po/ca.mo,
	po/ca.po, po/eo.mo, po/eo.po, po/sv.mo, po/sv.po:
	sync with translationproject.org
	[1a8957e30]

	* NEWS:
	first updates for 1.8.20
	[ca89a0a91]

	* configure, configure.ac:
	sudo 1.8.20
	[c392e469d]

2017-01-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/LICENSE, lib/zlib/adler32.c, lib/zlib/compress.c,
	lib/zlib/crc32.c, lib/zlib/deflate.c, lib/zlib/deflate.h,
	lib/zlib/gzguts.h, lib/zlib/gzlib.c, lib/zlib/gzread.c,
	lib/zlib/gzwrite.c, lib/zlib/infback.c, lib/zlib/inffast.c,
	lib/zlib/inflate.c, lib/zlib/inflate.h, lib/zlib/inftrees.c,
	lib/zlib/trees.c, lib/zlib/uncompr.c, lib/zlib/zconf.h.in,
	lib/zlib/zlib.exp, lib/zlib/zlib.h, lib/zlib/zutil.c,
	lib/zlib/zutil.h:
	update zlib to version 1.2.11
	[8e3613340]

2017-01-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match.c:
	Fix fdexec=never when a digest is present.
	[26b8dc11b]

2017-01-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/match.c:
	Add new fdexec sudoers setting to allow choose whether execve() or
	fexecve() is used.
	[413e1100b]

	* src/exec.c, src/exec_pty.c:
	Close execfd in parent processes where it is not needed.
	[dde2b5eb2]

2017-01-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match.c:
	Add support for digest matching when the command is a glob-style
	pattern or a directory. For example:

	millert ALL = sha224:TmUvLkp3a2txliSC2X6CiK42626qdKsH72m/PQ== /bin/
	millert ALL = sha224:TmUvLkp3a2txliSC2X6CiK42626qdKsH72m/PQ== /bin/*

	would only match /bin/ls (assuming the digest matches).

	Previously, only explicit path matches checked the digest.
	[5514ea685]

2017-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, plugins/sudoers/ldap.c:
	Add support for SASL_MECH in ldap.conf; Bug #764
	[df03020c4]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Fix documentation bug, the contents of env_file have never been
	subject to env_keep or env_check. However, variables are only added
	if they have not already been preserved.
	[34ba901ba]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	examples/sudoers:
	Safer example for rule that can change non-root passwords. GNU
	getopts allows options to follow arguments so we need to be able to
	deny things like "passwd root -q". From Paul "Joey" Clark. Bug #772
	[57933a8ff]

2017-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Don't overwrite the return value of ldap_sasl_interactive_bind_s()
	by the subsequent call to sudo_set_krb5_ccache_name(). From Paul
	Zirnik of SUSE.
	[b4f524fe7]

	* plugins/sudoers/env.c:
	In sudo_unsetenv_nodebug(), decrement envp.env_len after removing
	the variable. From Paul Zirnik of SUSE.
	[deb4c3b19]

2017-01-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/Makefile.in:
	only run vsyslog_test if it exists
	[1a59ab8b7]

	* MANIFEST, configure, configure.ac, lib/util/Makefile.in,
	lib/util/regress/vsyslog/vsyslog_test.c:
	Add regress for vsyslog replacement.
	[63deb7770]

2017-01-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Define HAVE_NANOSLEEP if we find nanosleep in librt
	[09698b8a3]

	* configure, configure.ac:
	sudo_nanosleep not nanosleep in util.exp.in
	[f589897f8]

	* configure, configure.ac:
	add nanosleep to util.exp.in if needed
	[e636f96c4]

	* NEWS, configure, configure.ac:
	sudo 1.8.19p2
	[08b662bf0]

	* lib/util/vsyslog.c:
	Double the size of new_fmt[] and remove an extraneous break in the
	%m handling that was leftover from an earlier edit.
	[a957a657b]

	* lib/util/vsyslog.c:
	Fix typo, want vsnprintf not snprintf.
	[921ad88ab]

	* plugins/sudoers/logging.c:
	move va_start() in mysyslog()
	[414b28dc4]

	* plugins/sudoers/sudoers.c:
	Only treat failure of expand_iolog_path() as fatal if
	ignore_iolog_errors is not set.
	[269b8602d]

2017-01-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/Makefile.in, lib/util/nanosleep.c,
	mkdep.pl, src/exec_pty.c:
	When waiting for the parent to grant us the tty, use nanosleep
	instead of spinning to avoid hogging the CPU.
	[2f0295373]

	* src/sudo.c:
	Use ROOT_UID instead of 0
	[0ef26ff0b]

2017-01-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	regen
	[fabb38c91]

2017-01-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/interfaces.c,
	plugins/sudoers/regress/visudo/test9.out.ok,
	plugins/sudoers/regress/visudo/test9.sh, plugins/sudoers/visudo.c:
	Fix crash in visudo introduced in sudo 1.8.9 when an IP address or
	network is used in a host-based Defaults entry. Bug #766
	[90e1f4ec3]

2017-01-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac, doc/LICENSE:
	Avoid using the system strnlen/strndup on AIX < 6. Even if configure
	correctly detects it is working on the build machine, the sudo
	package may be run on a system with an old libc were it is broken.
	[0c3a8085b]

2016-12-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.ac:
	sudo 1.8.19p1
	[6c2cb6cb9]

	* plugins/sudoers/defaults.c:
	Fix logic bug when matching syslog priority and facility.
	[0d9255b2f]

	* doc/HISTORY:
	Dell spun off Quest so simplify the history by just talking about
	Quest and not Dell.
	[87d02bfe2]

2016-12-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/LICENSE:
	Fix copyright year
	[f847570ba]

	* NEWS:
	typo
	[f9ea84383]

2016-12-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_compat.h:
	HAVE_DECL_GETGROUPLIST_2 is always defined if HAVE_GETGROUPLIST_2
	is, we need to check its value, not whether it is defined.
	[6aa43ff1e]

2016-12-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po:
	sync with translationproject.org
	[cc0305480]

2016-12-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/sr.mo,
	po/sr.po:
	sync with translationproject.org
	[2eeb191b9]

	* config.h.in, configure.ac, include/sudo_compat.h,
	plugins/sudoers/pwutil_impl.c, src/sudo.c:
	Use getgrouplist_2() on macOS if available.
	[ae76e1a22]

2016-12-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot:
	regen
	[56cc9aa02]

	* plugins/sudoers/interfaces.c:
	In set_interfaces() treat a parse error as fatal.
	[c62b7dc2e]

2016-12-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/regress/atofoo/atofoo_test.c:
	Fix a clang warning on macOS
	[e8f612ead]

2016-12-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po, po/ko.mo,
	po/ko.po, po/vi.mo, po/vi.po:
	sync with translationproject.org
	[2884816c8]

	* NEWS:
	update for 1.8.19b2
	[4fc0c36ef]

	* plugins/sudoers/timestamp.c:
	Ignore a boot time that is in the future, which can happen when the
	clock is corrected down after boot. Otherwise, the timestamp file
	will be unlinked each time sudo is run and a password is always
	required.
	[852ffa593]

2016-11-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/logging.c:
	Allow syslog priority to be negated or set to "none" to disable
	logging successes or failures.
	[00b6be9df]

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	plugins/sudoers/sudoreplay.c:
	Allow stdin and ttyin to be displayed too. The only one that is
	really useful in sudoreplay is stdin when input is from a pipe.
	[cb1f04401]

	* src/regress/noexec/check_noexec.c:
	Solaris 10 wordexp() returns 127 on execve() failure like popen()
	does.
	[52d6a5e40]

	* config.h.in, configure, configure.ac, include/sudo_debug.h,
	lib/util/regress/atofoo/atofoo_test.c, lib/util/strtoid.c,
	lib/util/sudo_debug.c, lib/util/util.exp.in:
	id_t is 64-bits on FreeBSD so use strtoll() there. Fixes the strtoid
	regress.
	[334350af4]

2016-11-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	fix typo
	[70d3e0e98]

	* plugins/sudoers/sudoers.c:
	Fix the "all" setting for verifypw and listpw; nopass would never be
	true even if all the user's entries had the NOPASSWD tag. Regression
	introduce in sudo 1.8.17. Bug #762
	[aaf6fff73]

2016-11-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/ca.mo, plugins/sudoers/po/cs.mo,
	plugins/sudoers/po/cs.po, plugins/sudoers/po/da.mo,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/el.mo, plugins/sudoers/po/eo.mo,
	plugins/sudoers/po/eu.mo, plugins/sudoers/po/fi.mo,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/hr.mo,
	plugins/sudoers/po/hr.po, plugins/sudoers/po/hu.mo,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/ko.mo, plugins/sudoers/po/ko.po,
	plugins/sudoers/po/lt.mo, plugins/sudoers/po/nb.mo,
	plugins/sudoers/po/nb.po, plugins/sudoers/po/nl.mo,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/ru.mo, plugins/sudoers/po/sk.mo,
	plugins/sudoers/po/sl.mo, plugins/sudoers/po/sr.mo,
	plugins/sudoers/po/tr.mo, plugins/sudoers/po/uk.mo,
	plugins/sudoers/po/uk.po, plugins/sudoers/po/zh_CN.mo,
	plugins/sudoers/po/zh_CN.po, po/cs.mo, po/cs.po, po/de.mo, po/de.po,
	po/es.mo, po/es.po, po/fr.mo, po/fr.po, po/hr.mo, po/hr.po,
	po/it.mo, po/it.po, po/ja.mo, po/ja.po, po/ko.mo, po/ko.po,
	po/nb.mo, po/nb.po, po/pl.mo, po/pl.po, po/pt_BR.mo, po/pt_BR.po,
	po/tr.mo, po/tr.po, po/uk.mo, po/uk.po, po/zh_CN.mo, po/zh_CN.po:
	sync with translationproject.org
	[7bcd0285e]

2016-11-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c, src/openbsd.c:
	Just use malloc_options "S" on OpenBSD instead of "AFGJPR".
	[1aea3f6e3]

2016-11-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update year in license
	[4d06a612f]

2016-11-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[0382a2d47]

	* doc/sudo.conf.cat, doc/sudoers.ldap.cat, doc/sudoreplay.cat:
	regen
	[94b844ebb]

	* include/sudo_debug.h, lib/util/sudo_debug.c,
	plugins/sudoers/iolog.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/visudo.c, src/sudo.c:
	Add SUDO_DEBUG_INSTANCE_ERROR return value for sudo_debug_register()
	and check for it in places where we check the return value of
	sudo_debug_register().
	[6c5936296]

2016-11-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	update for 1.8.19
	[de0c5c48a]

2016-11-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.ac, plugins/sudoers/getspwuid.c:
	Add support for getpwnam_shadow() on OpenBSD
	[695784e6e]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, plugins/sudoers/policy.c, src/sudo.c:
	Add umask to user_info passed in from the front end to the plugin.
	[f70f595b5]

	* plugins/sudoers/auth/rfc1938.c:
	Fix sign compare warning.
	[0cde3f5de]

	* MANIFEST, aclocal.m4, configure, configure.ac,
	m4/ax_append_flag.m4, m4/sudo.m4:
	Use AX_APPEND_FLAG instead of SUDO_APPEND_CPPFLAGS and direct
	modification of LDFLAGS.
	[cb7e82acc]

	* MANIFEST, configure, configure.ac, plugins/sudoers/aixcrypt.exp:
	Remove aixcrypt.exp, it was a remnant of the 90's crypto wars where
	crypt() was not exported.
	[a77ecca7d]

	* doc/TROUBLESHOOTING:
	Remove obsolete solaris issue with snprintf
	[80217f0bb]

	* INSTALL:
	SunOS 4.x is no longer supported
	[c3373f03b]

2016-11-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/regress/sudo_conf/test1.in, lib/util/sudo_conf.c:
	Plug memory leak when a particular Path is set more than once.
	[e797fc643]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Add sudo_ldap_is_negated() and sudo_ldap_is_negated() functions and
	use them to parse negated entries instead of doing it manually.
	[d6c30ba27]

	* plugins/sudoers/ldap.c:
	Fix printing of sudoedit_follow in "sudo -l"
	[da7373372]

	* plugins/sudoers/sssd.c:
	For "sudo -l" print sudoOption sudoedit_follow as FOLLOW.
	[c7d6521b4]

	* config.h.in, configure, configure.ac, include/sudo_conf.h,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_conf/test1.out.ok, lib/util/sudo_conf.c,
	lib/util/util.exp.in, plugins/sudoers/policy.c, src/exec_common.c,
	src/load_plugins.c, src/parse_args.c:
	Always define _PATH_SUDO_NOEXEC, _PATH_SUDO_SESH,
	_PATH_SUDO_PLUGIN_DIR, even if only defined to NULL. This means the
	accessors can always be present.

	Use RTLD_PRELOAD_VAR instead of _PATH_SUDO_NOEXEC to tell when
	noexec is available.

	Add ENABLE_SUDO_PLUGIN_API and use it instead of
	_PATH_SUDO_PLUGIN_DIR to tell when the plugin API is available.

	Add sudo_conf_clear_paths() to clear the path values so the regress
	tests are not affected by compile-time settings.
	[6dff4ac7f]

	* plugins/sudoers/ldap.c:
	Use readline() in sudo_ldap_read_secret()
	[8820ff3ef]

2016-11-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/sudo_conf.c:
	Get rid of struct sudo_conf_paths and just use #defined index values
	to access the path values. Make all accessors available even when
	the feature is not enabled.
	[8cb9f298b]

	* configure, configure.ac, lib/util/Makefile.in,
	lib/zlib/Makefile.in, mkdep.pl, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Add ASAN_CFLAGS and ASAN_LDFLAGS and use -Wc prefix in ASAN_LDFLAGS
	to prevent libtool from strippign them out. Avoid using ASAN flags
	when building sudo_noexec.so.
	[bdbb3e985]

2016-11-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Disable noexec for HP-UX 10.x which probably doesn't support
	LD_PRELOAD
	[589e129c8]

	* config.h.in, configure, configure.ac, plugins/sudoers/getspwuid.c:
	Remove SunOS 4 support, it is not modern enough to run sudo.
	[08a4a2859]

	* config.h.in, configure, configure.ac, plugins/sudoers/getspwuid.c:
	Remove HP-UX 9 support, it is not modern enough for sudo.
	[b56bce312]

	* config.h.in, configure, configure.ac,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/getspwuid.c:
	Remove Ultrix support, modern sudo can't run on Ultrix anyway.
	[9d11b725c]

	* MANIFEST, configure, configure.ac, lib/util/sudo_conf.c,
	src/Makefile.in, src/exec_common.c,
	src/regress/noexec/check_noexec.c, src/sudo_exec.h:
	Add regress for noexec functionality
	[66af45eb2]

	* src/Makefile.in:
	Unbreak sudo_noexec on macOS where shared libraries and dynamic
	modules are different. We still want to install sudo_noexec.so
	without the "lib" prefix so some hackery is required.
	[068f96a21]

	* configure, configure.ac:
	Don't enable noexec for AIX 5.0-5.2, we need 5.3 and above.
	[60bf13945]

2016-11-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/Makefile.in:
	Need to link sudo_noexec.so with -ldl for dlsym() on some platforms.
	Otherwise, the wordexp(3) wrapper will fail due to an undefined
	symbol. Bug #761
	[07cc9d815]

	* plugins/sudoers/visudo.c:
	In strict mode, go to the file/line with an undefined aliases or
	aliases cycle directly.
	[deb625976]

2016-11-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in,
	plugins/sudoers/alias.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/parse.h,
	plugins/sudoers/regress/visudo/test2.err.ok,
	plugins/sudoers/regress/visudo/test3.err.ok,
	plugins/sudoers/visudo.c:
	Store the file/lineno for alias and userspec entries so we can
	provide that info if there is an error.
	[7524c231c]

2016-11-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/rcstr.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_json.c:
	Add simple reference-counted string allocator and use it for passing
	around references to the sudoers path. This lets us avoid making
	copies of the sudoers path for the errorfile as well as each
	Defaults entry.
	[90995c0ac]

	* lib/util/sha2.c:
	Cast len from size_t to uint64_t before bit shifting since we are
	adding to count which is also uint64_t. Quiets a PVS-Studio warning.
	[b5e3a7aef]

2016-11-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/regress/visudo/test7.out.ok,
	plugins/sudoers/regress/visudo/test7.sh,
	plugins/sudoers/regress/visudo/test8.err.ok,
	plugins/sudoers/regress/visudo/test8.out.ok,
	plugins/sudoers/regress/visudo/test8.sh:
	Add checks for sudoers_locale early Defaults
	[52e136863]

2016-11-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h,
	plugins/sudoers/regress/parser/check_fill.c, plugins/sudoers/sssd.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_json.c:
	Go back to parsing Defaults entries in update_defaults instead of as
	sudoers is read. Otherwise, we cannot properly support early
	defaults like sudoers_locale.
	[79ca75280]

2016-11-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/parse_args.c, src/sudo.c, src/sudo.h:
	Add the argument vector allocated for -s and -i mode to the garbage
	collector list. Avoids an ASAN warning on exit when the -s or -i
	flags are used.
	[efe957544]

2016-11-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	add missing sudo_pw_delref/sudo_gr_delref to plug memory leak
	[cefcb6f50]

	* mkpkg:
	Use expr instead of POSIX sh numerical expression to avoid a syntax
	error on older shells.
	[dbf07431d]

2016-11-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/sudo_plugin.h:
	Bump plugin minor version to 10 for sudo_mode, sudo_group and
	sudo_user.
	[541ffbeec]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Fix a bug in host matching where a negated sudoHost entry would
	prevent other sudoHosts following it from matching.
	[17868f89d]

	* plugins/sudoers/defaults.c:
	Zero out sd_un before calling parse_default() so we don't try to
	free stack garbage in the ldap/sssd backends.
	[1d9b8ca32]

2016-11-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Use "ret", not "rc" for the function return value.
	[738c3cbf3]

	* include/sudo_compat.h, lib/util/strtomode.c,
	plugins/sudoers/defaults.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/logging.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/visudo.c, src/sesh.c, src/sudo.c, src/sudo_edit.c:
	Use sys/stat.h defines instead of bare octal values.
	[8133cdfdf]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, plugins/sudoers/iolog.c,
	plugins/sudoers/policy.c:
	Pass iolog mode, group and user from policy plugin to I/O log
	plugin.
	[2b020c9f1]

2016-11-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/ldap.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/parser/check_fill.c, plugins/sudoers/sssd.c:
	Instead of parsing sudoers Defaults twice, parse once while reading
	sudoers and then just set the parsed value in update_defaults().
	[df8404dbd]

	* plugins/sudoers/defaults.c:
	Use "struct defaults *d" instead of "struct defaults *def"
	throughout for consistency and to avoid confusino with "struct
	def_values *def". Use "str" not "var" for the string argument to
	convert and store in sd_un for the store_* functions.
	[1f2410896]

	* plugins/sudoers/parse.c:
	In display_bound_defaults() rename dtype arg -> deftype.
	[4ca0838ba]

2016-11-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/regress/sudo_conf/test4.err.ok,
	lib/util/regress/sudo_conf/test5.err.ok,
	plugins/sudoers/regress/visudo/test2.err.ok,
	plugins/sudoers/regress/visudo/test3.err.ok:
	Update error output to match quoting changes.
	[f3c7e0f83]

	* plugins/sudoers/defaults.c:
	Avoid passing in a struct sudo_defs_types pointer to the store
	functions. Pass in a pointer to the union to fill instead.
	[4f532dcc5]

	* plugins/sudoers/defaults.h:
	no longer need struct defaults forward referebce
	[3c28810fe]

2016-11-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/sudo_conf.c, plugins/sudoers/alias.c,
	plugins/sudoers/defaults.c, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_json.c, src/load_plugins.c:
	Use "double quotes" in messages instead of a combination of the
	accent (grave) mark and apostrophe.
	[7c56179c7]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Add file:linenumber prefix to all Defaults warnings so we can see
	them when running sudo too. For LDAP/SSSD we print the sudoRole
	instead of the file name and omit the line number.
	[75e29f163]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Use sudoedit in examples instead of "sudo vi"
	[a9715211a]

2016-11-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_json.c:
	Only treat an unknown Defaults entry as a parse error in visudo, not
	in sudo itself.
	[f6ce83ea7]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/visudo.c:
	Instead of checking Defaults values after the fact, check them at
	sudoers parse time. This makes it possible to display the file and
	line number with the problem and for visudo to go right to the
	error.
	[8a4808518]

	* plugins/sudoers/alias.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/parse.h:
	Refactor freeing of a member_list into free_members().
	[0aa216ed5]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	add_defaults() now calls sudoerserror() itself instead of the caller
	assuming any error means out of member.
	[9de491dc2]

	* plugins/sudoers/defaults.c, plugins/sudoers/mkdir_parents.c:
	s/rval/ret/g -- old habits die hard
	[484b5718d]

2016-10-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Remove inaccurate XXX comment, sudo_file_parse() sends mail on parse
	error.
	[2dbe50d1e]

	* plugins/sudoers/visudo.c:
	The fix for Bug #408 broke editing of files in an include dir that
	have a syntax error. Normally, visudo does not edit those files, but
	if a syntax error is detected in one, the user gets a chance to fix
	it.
	[b5f444111]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/sudoers.h, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_json.c:
	Make a copy of the current sudoers path when assigning errorfile.
	Fixes a potential use after free in visudo when there is an error in
	one of the include files.
	[5a8b60e4b]

	* plugins/sudoers/sudoers_debug.c:
	sudoers_debug_register() was not setting the active debug instance
	to sudoers_debug_instance when called from the I/O log plugin. This
	is because it relied on sudo_debug_register to do that but
	sudoers_debug_parse_flags() doesn't set debug_files[]
	sudoers_debug_instance is already set (we can only init sudoers
	debug once).

	To work around this, just make sudoers_debug_instance the active
	debug instance in sudoers_debug_register() when it is already set.
	[a3a545e41]

	* src/load_plugins.c:
	Fix pasto when setting I/O plugin debug files
	[e8af335eb]

	* plugins/sudoers/iolog.c:
	use cp instead of *cur when comparing against plugin_path
	[1fdcce7fa]

2016-10-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/mkdir_parents.c:
	In sudo_mkdir_parents() inherit the gid of / instead of using gid 0
	for the first component.
	[9f903d3bd]

	* plugins/sudoers/iolog.c:
	We want to inherit the gid from the parent directory when not
	setting permissions on intermerdiate directories.
	[cf707cf5f]

2016-10-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/iolog.c,
	plugins/sudoers/mkdir_parents.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/timestamp.c:
	Move io_mkdir_parents() to its own file and use it in ts_mkdirs().
	[bf62530ac]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Make the I/O log file/dir permissions and owner configurable.
	[271a07ff0]

	* lib/util/Makefile.in, mkdep.pl:
	Add vsyslog.lo
	[b058ac529]

	* configure, configure.ac:
	sudo 1.8.19
	[43bf2fdb9]

2016-10-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/defaults.c:
	Don't try to syntax check an unrecognized Defaults value in visudo.
	[3423d0af7]

2016-10-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Create I/O log files with the same gid as the parent directory.
	[7122a733a]

	* plugins/sudoers/ldap.c:
	Check for sudo_ldap_result_last_search() returning NULL. This can't
	happen in practice because we always call
	sudo_ldap_result_add_search() first which guarantees there is a
	result to be found. Quiets a PVS-Studio warning.
	[a40110756]

	* src/exec_pty.c:
	Quiet a PVS-Studio warning about the spin loop when waiting for the
	parent to assign us the terminal pgrp.
	[5a7936209]

	* plugins/sudoers/env.c:
	Fix incorrect strncmp() lengths. The check for USERNAME was only
	looking at the first 5 characters (copy and paste error). The check
	for SUDO_PS1 was not checking the trailing '=' character (off by one
	error). Found by PVS-Studio.
	[dbd525279]

	* plugins/sudoers/env.c:
	When checking for old-style bash functions in the environment, check
	for values starting with "() " (note the trailing space) rather than
	"()". Bash will only treat the value as a function if the space
	after "()" is present. The trailing space was already present in the
	compare string but when it was added, the length passed to strncmp()
	was not updated from 3 to 4. Found by PVS-Studio. No security
	impact.
	[4c8988d48]

	* plugins/sudoers/set_perms.c:
	Add some missing casts from uid_t/gid_t to int when printing uid/gid
	values. We print these as signed so a value of -1 (no change) is
	obvious. Quiets PVS-Studio warnings.
	[63adb21ce]

	* plugins/sudoers/timestamp.c:
	def_timestamp_timeout is a double so compare against 0.0 not 0 to
	avoid making it appear to be an integer type.
	[cf5a12c09]

	* plugins/sudoers/defaults.c:
	When checking syslog facility or priority, move the string compare
	into the body of the loop and return if it matches. If we finish the
	loop it means we didn't find a match. This makes the code a little
	bit more readable.
	[e3825cbed]

	* lib/util/strlcpy.c, lib/util/strnlen.c,
	plugins/sudoers/defaults.c, plugins/sudoers/env.c,
	plugins/sudoers/logging.c, plugins/sudoers/visudo_json.c,
	src/env_hooks.c, src/exec_pty.c:
	Replace bare ";" in the body of for() loops with "continue;" for
	improved readability.
	[fc1b4155d]

2016-10-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.guess, config.sub:
	Update from http://git.savannah.gnu.org/gitweb/?p=config.git
	[f9d677775]

	* config.guess, config.sub, configure, ltmain.sh, m4/libtool.m4,
	m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4:
	Update to libtool 2.4.6
	[17d873458]

2016-10-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/vsyslog.c:
	Use a static buffer if possible.
	[d078450fb]

	* MANIFEST, configure, configure.ac, include/sudo_compat.h,
	lib/util/vsyslog.c, plugins/sudoers/logging.c:
	add vsyslog() for systems without it.
	[19c96da44]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	There are now 14 tag values, not 10. Don't bother mentioning the
	number since it keeps increasing. Bug #759
	[6fa59b741]

2016-10-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.ac, plugins/sudoers/logging.c:
	Use vsyslog() if available.
	[c18ff022e]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/logging.c:
	Add syslog_maxlen to control the max size of syslog messages.
	[44c2679f8]

2016-10-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/tgetpass.c:
	Don't generate SIGTOU when restoring the terminal modes. It doen't
	make sense to suspend the process only to restore the terminal
	settings since in this case the shell has already taken ownership of
	the tty.
	[f632e0a63]

	* plugins/sudoers/sudoreplay.c, src/exec_pty.c, src/tgetpass.c:
	The flush parameter of sudo_term_restore() is bool, not int.
	[9b886f6b2]

2016-10-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	Add wordexp() to the list of functions wrapped by sudo_noexec.so.
	[afcdc2853]

2016-10-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_noexec.c:
	Need RTLD_NEXT for wordexp() on dlopen() systems. It is missing on
	AIX 5.1 at least.
	[ddbbcb944]

	* src/sudo_noexec.c:
	add missing guard around wordexp()
	[9dbd45ff6]

	* NEWS:
	expand on 1.8.18p1 changes
	[bea34c9e6]

2016-10-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.ac:
	sudo 1.8.18p1
	[45b396598]

	* config.h.in, configure, configure.ac, src/sudo_noexec.c:
	Fix configure check for seccomp filter on Linux
	[8e49ce07f]

2016-10-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.ac, src/sudo_noexec.c:
	Use a seccomp filter on Linux to disable execve(2) and execveat(2).
	This still relies on LD_PRELOAD to work so it has the same issues as
	the existing mether with respect to running 32-bit binaries on a
	64-bit kernel.
	[237e2f964]

	* src/Makefile.in:
	regen
	[d24b9246a]

	* plugins/sudoers/Makefile.in:
	regen
	[b5f1d4e25]

2016-10-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4, config.h.in, configure, configure.ac,
	src/sudo_noexec.c:
	Wrap wordexp(3) in sudo_noexec.
	[d0ccd947d]

2016-09-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Clean .json files created by "make check"
	[96580de20]

2016-09-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* po/ca.mo, po/da.mo, po/eo.mo, po/es.mo, po/eu.mo, po/fi.mo,
	po/gl.mo, po/hr.mo, po/hu.mo, po/ko.mo, po/nl.mo, po/ru.mo,
	po/sk.mo, po/sl.mo, po/sr.mo, po/tr.mo:
	recompile .po files
	[90e4538c0]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Fix matching when no sudoRunAsUser is present in a sudoRole. If only
	a sudoRunAsGroup is present, match on the invoking user if the -g
	option was specified and the group matched. If no sudoRunAsGroup is
	present and the -g option was specified, allow it if it matches the
	passwd gid of the runas user. This matches the behavior of the
	sudoers backend.
	[0a68d6799]

	* plugins/sudoers/match.c:
	runas_pw can no longer be NULL
	[1bccd1418]

2016-09-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	RunAsGroup without RunAsUser issues
	[25f90b481]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	user_matched and group_matched must be type int, not bool
	[9a55c0c25]

	* plugins/sudoers/ldap.c, plugins/sudoers/match.c,
	plugins/sudoers/parse.h, plugins/sudoers/sssd.c:
	Use RUNAS_USER_SPECIFIED and RUNAS_GROUP_SPECIFIED when deciding
	whether to check runas user/group instead of checking runas_pw or
	runas_gr.
	[b165a5ff7]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	When matching against runas_default use userpw_matches() instead of
	just strcasecmp().
	[0ff95dfaa]

	* plugins/sudoers/testsudoers.c:
	Set RUNAS_USER_SPECIFIED when -u is specified and/or
	RUNAS_GROUP_SPECIFIED when -g is specified.
	[a750bebf1]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Fix printing of the default runas user when a RunAsGroup is
	specified but no RunAsUser is present.
	[d64153967]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Only match against runas_default if both sudoRunAsUser and
	sudoRunAsGroup are missing.
	[fb32867e4]

	* plugins/sudoers/match.c:
	runas_pw can no longer be NULL here
	[d2af18c1f]

	* plugins/sudoers/ldap.c, plugins/sudoers/match.c,
	plugins/sudoers/parse.h, plugins/sudoers/sssd.c:
	Update check for whether or not the runas user was set in the ldap
	and sssd backends to match the sudoers file backend. Introduces the
	runas_user_set() macro to improve readability. Previously, runas_pw
	was set late, now it is set before checking sudoers.
	[ef82f792a]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Document that negated sudoHosts are only supported by 1.8.18 and
	higher.
	[db7ce3c21]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/testsudoers/test4.sh,
	plugins/sudoers/regress/testsudoers/test5.sh:
	Disable Address Sanitizer leak detection for tests which generate
	parse errors. The parser leaks a bit on error.
	[50d0191de]

	* plugins/sudoers/sssd.c:
	Fix underflow in get_ipa_hostname() when trimming trailing
	whitespace.
	[37099a6e7]

2016-09-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Document negated sudoHost entries.
	[394485f27]

	* plugins/sudoers/sssd.c:
	Support negated sudoHost entries.
	[ff753d1e1]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Document negated sudoHost entries.
	[7fd6edb6d]

	* plugins/sudoers/ldap.c:
	Support negated sudoHost entries.
	[f51fbfa40]

2016-09-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match.c:
	Don't check the username when matching a host netgroup unless
	def_netgroup_tuple is enabled.
	[ca2a1f310]

	* plugins/sudoers/match.c:
	Move valid domain name check into a new valid_domain() function. Fix
	memory leak if getdomainname(2) fails and avoid using heap garbage
	for the domain name matching in this case.
	[c73dec723]

2016-09-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po, po/it.mo,
	po/it.po:
	sync with translationproject.org
	[7687dd652]

2016-09-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Add back line mistakenly removed in 0cf2a9351740
	[533c9ce10]

	* plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po, po/nb.mo,
	po/nb.po:
	sync with translationproject.org
	[86ce2f89f]

2016-09-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Bug #757
	[f7bd14f70]

	* plugins/sudoers/sudoers.c:
	Fix typo that broke short host name matching when the fqdn flag is
	enabled. Bug #757
	[ead485b96]

2016-09-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_debug.h, lib/util/aix.c, lib/util/fnmatch.c,
	lib/util/getgrouplist.c, lib/util/secure_path.c,
	lib/util/setgroups.c, lib/util/strtoid.c, lib/util/sudo_conf.c,
	lib/util/sudo_debug.c, plugins/sample/sample_plugin.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/check.c,
	plugins/sudoers/env.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/interfaces.c, plugins/sudoers/iolog.c,
	plugins/sudoers/ldap.c, plugins/sudoers/logging.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.c,
	plugins/sudoers/policy.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_json.c, src/env_hooks.c, src/exec.c,
	src/exec_pty.c, src/get_pty.c, src/hooks.c, src/load_plugins.c,
	src/regress/ttyname/check_ttyname.c, src/selinux.c, src/signal.c,
	src/sudo.c, src/sudo_edit.c, src/tgetpass.c, src/ttyname.c,
	src/utmp.c:
	Be consistent with the naming of the variable used to store the
	function return value. Previously, some code used "rval", some used
	"ret". This standardizes on "ret" and uses "rc" for temporary return
	codes.
	[3f022419a]

2016-09-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/ca.po, plugins/sudoers/po/cs.mo,
	plugins/sudoers/po/cs.po, plugins/sudoers/po/da.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/el.po, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/eu.po, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/fr.po, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/hu.po, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/ko.po, plugins/sudoers/po/lt.po,
	plugins/sudoers/po/nb.po, plugins/sudoers/po/nl.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/ru.po, plugins/sudoers/po/sk.po,
	plugins/sudoers/po/sl.po, plugins/sudoers/po/sr.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/tr.po, plugins/sudoers/po/uk.mo,
	plugins/sudoers/po/uk.po, plugins/sudoers/po/vi.mo,
	plugins/sudoers/po/vi.po, plugins/sudoers/po/zh_CN.mo,
	plugins/sudoers/po/zh_CN.po, po/ca.po, po/cs.mo, po/cs.po, po/da.po,
	po/de.mo, po/de.po, po/eo.po, po/es.po, po/eu.po, po/fi.po,
	po/fr.mo, po/fr.po, po/gl.po, po/hr.po, po/hu.po, po/it.po,
	po/ja.mo, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/pl.mo,
	po/pl.po, po/pt_BR.mo, po/pt_BR.po, po/ru.po, po/sk.po, po/sl.po,
	po/sr.po, po/sv.mo, po/sv.po, po/tr.po, po/uk.mo, po/uk.po,
	po/vi.mo, po/vi.po, po/zh_CN.mo, po/zh_CN.po:
	sync with translationproject.org
	[33fb814e8]

	* MANIFEST, NEWS, doc/CONTRIBUTORS, po/nn.mo, po/nn.po:
	Norwegian Nynorsk translation of sudo from translationproject.org
	[6eb1b8c7e]

	* NEWS:
	Fix for Bug #756
	[fc7e2a98f]

2016-09-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	In sudoers_main() avoid setting rval prematurely. Prevents a crash
	when auditing fails after successfully authenticating. Bug #756
	[b80309e6d]

	* plugins/sudoers/defaults.c:
	Apply match_group_by_gid early.
	[43084d8f9]

2016-09-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	update
	[0181bf2c2]

	* src/ttyname.c:
	Don't disable large file support for Linux, just SVR4-style /proc.
	Otherwise, stat(2) may fail on Linux when running a 32-bit sudo on a
	64-bit machine. Bug #755
	[40d0ecc7d]

2016-09-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_util.h:
	Make sudo_parseln() flags hex to make it more obvious that they are
	bit flags.
	[5b86d2d29]

	* plugins/sudoers/env.c:
	Don't try to support line continuation in /etc/environment.
	[881814c9f]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, plugins/sudoers/ldap.c:
	No line continuation support in ldap.conf.
	[c0db5c123]

	* include/sudo_util.h, lib/util/parseln.c:
	Add flag to sudo_parseln() to disable line continuation support.
	[2a4ba64c8]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	A comment character ('#') is only special at the beginning of the
	line.
	[852fe25bc]

	* include/sudo_util.h, lib/util/parseln.c,
	lib/util/regress/sudo_parseln/parseln_test.c, lib/util/sudo_conf.c,
	lib/util/util.exp.in, plugins/sudoers/env.c, plugins/sudoers/ldap.c,
	plugins/sudoers/sudo_nss.c:
	Add a flags option to sudo_parseln() and a flag to only mach
	comments at the beginning of the line. Use the flag when parsing
	ldap.conf.
	[17ad75d50]

	* src/sudo.c:
	If get_process_ttyname() fails for errno != ENOENT, just warn
	instead of making it a fatal error. Bug #755
	[04340eea6]

2016-08-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/mkdefaults:
	use strict
	[c9572db75]

	* plugins/sudoers/def_data.h, plugins/sudoers/mkdefaults:
	Define def_foo in terms of the I_FOO index instead of a bare number.
	[7a54b49fc]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po:
	sync with translationproject.org
	[8ee6f0d1d]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Mention that match_group_by_gid has no effect when sudoers is stored
	in LDAP.
	[dba28a945]

	* include/sudo_compat.h, src/sudo.c:
	Use W_EXITCODE to construct the wait status if sudo could not
	execute the command. Fixes the sudo exit value for exec(3) failure.
	[e147ba1fe]

	* src/exec.c:
	fix brace style
	[a9570e64f]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[b610137ef]

	* src/sudo.c:
	It is possible for get_user_info() to fail for reasons other than
	ENOMEM so print the warning message there rather than in main().
	[ef4e80810]

2016-08-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	match_group_by_gid is only available in sudo 1.8.18 and above
	[edcb137f6]

	* doc/UPGRADE:
	Mention match_group_by_gid
	[7aeb11a92]

	* NEWS, doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document match_group_by_gid
	[c57979bfb]

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/pwutil.c:
	Add match_group_by_gid Defaults option to allow sites with slow
	group lookups and a small number of groups in sudoers to match
	groups by group ID instead of by group name.
	[9cfd55685]

2016-08-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Mention "sudo -l command" bug fix.
	[12ab1383a]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Fix "sudo -l command" in the LDAP and SSS backends when the command
	is not allowed.
	[5b51b7f11]

2016-08-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/defaults.c:
	Use sudo_strsplit() instead of doing the equivalent manually.
	[7918f7e7e]

2016-08-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Move SIGPIPE bug fix to 1.8.18 where it belongs
	[c50b83525]

	* plugins/sudoers/defaults.c:
	Fix memset size typo in previous commit.
	[a246c9570]

	* plugins/sudoers/regress/visudo/test6.out.ok,
	plugins/sudoers/regress/visudo/test6.sh:
	Add regress for check_defaults() use-after-free bug.
	[c5cfc9584]

	* MANIFEST, plugins/sudoers/defaults.c:
	Fix use-after-free in check_defaults(), reported by Radovan Sroka of
	RedHat.
	[99b969979]

2016-08-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	SIGPIPE bug fix
	[403b904ab]

	* src/signal.c:
	Now that we ignore SIGPIPE in sudo we need to restore it at exec
	time. Problem reported by Radovan Sroka of RedHat.
	[7625f0684]

2016-08-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	Fix appending to make_opts
	[d54148bbd]

	* NEWS:
	Add Bug #753 and fix reference to Bug #752.
	[5a432b961]

2016-08-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po, po/da.mo,
	po/da.po, po/pt_BR.mo, po/pt_BR.po:
	sync with translationproject.org
	[8d89d8395]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen pot files
	[ba91ebb14]

2016-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update with logging changes.
	[8f9869df7]

	* plugins/sudoers/logging.c:
	Avoid duplicate warnings when we cannot write to the log file. Also
	send the warning in mail if possible.
	[d8a65715d]

	* plugins/sudoers/iolog.c, src/exec_pty.c, src/sudo.c, src/sudo.h:
	Move the ignoring of I/O log plugin errors into the I/O log plugin
	itself.
	[3e4c7eed3]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/iolog.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, src/exec_pty.c, src/sudo.c, src/sudo.h:
	Make the behavior when we cannot write to a log or audit file
	configurable. File log failures are ignored by default for
	consistency with syslog. Audit errors are ignored by default to
	allow the admin to fix the issue. I/O log file errors are still
	fatal by default since if I/O logging is activated it is usually to
	have an audit trail. Bug #751
	[ed18d0d5f]

2016-08-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.c:
	Make sure we print an error message to stderr (and not just send
	mail) if do_logfile() fails. Bug #751
	[9ccd26084]

2016-08-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/pwutil.c:
	Separate out the supplemental group ID checks from the supplemental
	group name checks in user_in_group(). We now call sudo_get_gidlist()
	only when the group name in sudoers begins with a '#' (which is
	seldom used).
	[043b3d223]

	* plugins/sudoers/ldap.c, plugins/sudoers/policy.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil.h,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/set_perms.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Cache the user's group IDs and group names separately and only
	resolve group IDs -> names when needed. If the sudoers file doesn't
	contain groups we will no longer try to resolve all the user's group
	IDs to names, which can be expensive on some systems.
	[985ab1dd3]

2016-08-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/defaults.c:
	Remove the "op" parameter from all the store_foo() functions except
	store_list() where it is actually needed. For the others, a NULL
	value indicates the setting was negated. This unconfuses static
	analyzers (and perhaps humans too).
	[c3b8e97a6]

	* plugins/sudoers/defaults.c:
	Flags always have a NULL value. Regression introduced by refactor of
	set_default_entry().
	[8c2b6fb34]

	* plugins/sudoers/defaults.c:
	Set rc to true when setting a flag Defaults value.
	[1ca261c30]

	* src/utmp.c:
	suppress a cppcheck false positive
	[25f39ff31]

	* plugins/sudoers/defaults.c:
	Refactor the error parts of set_default_entry() so the switch() is
	mostly just calls to store_foo() functions. Avoids a lot of
	duplicated error checking and silences a cppcheck false positive.
	[caf064e17]

	* plugins/sudoers/defaults.c:
	In set_default_entry() check for unsupported Defaults type.
	[9051c92cb]

	* lib/util/aix.c:
	Add missing break in switch that sets the max limit for
	RLIMIT_NOFILE. Found by cppcheck.
	[f17f9ba9b]

	* plugins/sudoers/defaults.c:
	Check sudoers_initlocale return value and treat as oom. Coverity CID
	141832
	[7ac77b094]

2016-08-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/match.c, plugins/sudoers/parse.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c:
	Set runas_pw early and adjust runaslist_matches() to deal. Since we
	now set runas_default early there is no need to call update_defaults
	with SETDEF_RUNAS after sudoers has been parsed.
	[a08ea1b14]

2016-08-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/defaults.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	Load sudoers group plugin via an early callback.
	[56ead7388]

	* sudo.pp:
	System Integrity Protection on Mac OS X won't allow us to write
	directly to /etc or /var. We must install in /private/{etc,var}
	instead.
	[a9973c2e6]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document that fqdn, runas_default and sudoers_locale are parsed
	early.
	[d17bc132d]

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo_plugin.cat,
	doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoreplay.cat,
	doc/visudo.cat:
	Regen for 1.8.18
	[ac20b8ddf]

2016-08-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/defaults.h, plugins/sudoers/ldap.c,
	plugins/sudoers/sssd.c:
	Avoid passing around struct defaults when it is not needed. As a
	result, we no longer need to include gram.h in the LDAP and SSSD
	backends.
	[9d94ee11c]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Instead of deferring setting early defaults until we have traversed
	the entire defaults list, just defer running the callbacks.
	Otherwise, if the last early default setting we see has a bad value
	we won't set any defaults of that type even if there was an earlier
	one that was valid.
	[0bf2d9b16]

	* plugins/sudoers/defaults.c:
	Run callbacks once in set_default_entry() instead of each of the
	store_foo() functions.
	[e5a7891ec]

2016-08-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	Use /proc/cpuinfo on Linux instead of running lscpu
	[14c9d203e]

	* mkpkg:
	If using GNU make on a multi-cpu system, use the -j flag to run make
	jobs in parallel, up to the number of cpus/cores.
	[820934082]

2016-07-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	Only check SUDO_USER if euid is 0
	[54efa54c0]

2016-07-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	Initialize sudo_user based on the SUDO_USER environment variable if
	present. This allows things like :Defaults:username editor=foo" to
	work when visudo is run via sudo.
	[f85e95329]

2016-07-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Add function name in "command resumed" debug message
	[4352bb9ca]

	* src/exec_pty.c:
	If waitpid() returns 0 or -1, display a warning, this should never
	happen. Add a check for unhandled wait status (also should never
	happen).
	[383debee9]

	* plugins/sudoers/defaults.c:
	Flag settings have a NULL value so we can't use that to test whether
	an entry in struct early_default is set or not. Add a "set" member
	and use that instead.
	[2b150925d]

2016-07-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Explicitly check for a continued process with waitpid(2). Otherwise,
	waitpid() will return 0 when the command is resumed after being
	suspended, which we were treating the same as -1. Fixes suspend and
	resume on Linux and probably others.
	[4f47a2ad7]

	* plugins/sudoers/defaults.c:
	Fix --with-fqdn, the value should be NULL since it is a flag.
	[a014a2abd]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Add support for early defaults to the ldap and sssd backends.
	[16551031f]

2016-07-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_edit.c:
	Repair symlink check in sudo_edit_openat_nofollow() on systems
	without O_NOFOLLOW, it must be done relative to dfd. Previously the
	lstat() would always fail, possibly leading to a false positive.
	Also add an early symlink check like in sudo_edit() while here.
	[cc31c2b24]

	* src/sudo_edit.c:
	On systems that lack the O_NOFOLLOW open(2) flag, check in
	sudo_edit_open() whether the path to be opened is symlink before
	opening it. This is racey but we detect losing the last post-open
	and it is better to fail early if possible. When editing a link to a
	non-existent file, a zero-length file will be left behind but it is
	too dangerous to try and remove it after the fact. Bug #753
	[bf82b3f2b]

	* src/sudo_edit.c:
	Update debug_decl for sudo_edit_openat_nofollow() Remove unused
	variables when O_NOFOLLOW is not present.
	[266357511]

2016-07-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/defaults.c, plugins/sudoers/visudo.c:
	Split set_default_entry() out of set_default() so we can call it
	from check_defaults() to validate the defaults value. In visudo,
	suppress warnings from update_defaults() and rely on
	check_defaults() to provide warnings.
	[2c21663b2]

	* plugins/sudoers/defaults.c:
	Split binding match code out of default_type_matches() into
	default_binding_matches(). We can now use default_type_matches() in
	check_defaults().
	[29d842dba]

	* plugins/sudoers/visudo.c:
	Pass quiet flag to init_parser() and update_defaults() when doing
	first parse of sudoers.
	[e0ac76647]

2016-07-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Update defaults in visudo after sudoers has been edited so we pick
	up locale changes. The init_defaults() function will now re-init the
	sudoers locale.
	[256ca993b]

2016-07-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/testsudoers.c:
	Set sudoers locale before calling sudoersparse(). We don't need to
	restore the user's locale since warnings are displayed in the user's
	locale anyway.
	[65579b69e]

	* plugins/sudoers/visudo.c:
	Set the locale to the sudoers locale when parsing and restore the
	user's locale afterward. Also set the warn/fatal locale helper
	function so warning messages during a sudoers parse are displayed in
	the user's own locale.
	[ef24bd5c3]

	* plugins/sudoers/logging.h:
	Add forward decl of union sudo_defs_val to silence a gcc warning.
	[6ba2769ba]

	* plugins/sudoers/sudoers.c:
	Set the warn/fatal locale helper function in sudoers_policy_init()
	so warning messages during sudoers loading are displayed in the
	user's own locale.
	[e257f2c9e]

	* plugins/sudoers/locale.c, plugins/sudoers/logging.h,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	Move sudoers locale callback function to locale.c and user it in
	visudo and testsudoers.
	[b5c2ca2fe]

	* plugins/sudoers/sudoers.c:
	In cb_sudoers_locale() actually set the locale in addition to
	storing its name. Otherwise, it won't take effect until sudoers
	lookup time.
	[30f7ecca1]

	* plugins/sudoers/defaults.c:
	Fix regression that would cause early defaults entries to be set
	multiple times.
	[684161618]

	* NEWS, configure, configure.ac:
	sudo 1.8.18
	[1349bb760]

2016-07-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/defaults.c, plugins/sudoers/sudoers.c:
	Only set early defaults once, regardless of how many times the
	variable is set in sudoers. This avoids running an early callback
	more than once. For example, we don't want to call cb_fqdn() if sudo
	is compiled with FQDN set but sudoers has "Defaults !fqdn".
	[6daf3c5ce]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h:
	Make strings const in functions that set defaults as they are not
	modified.
	[5e9173df7]

	* plugins/sudoers/sudoers.c:
	In cb_fqdn() just return if the fqdn flag is set to false.
	[08e369572]

2016-07-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/defaults.c:
	Implement callbacks for defaults flags (T_FLAG).
	[7218dbe54]

	* plugins/sudoers/sudoers.c:
	add debug_decl for cb_runas_default and cb_sudoers_locale
	[d92a396da]

	* plugins/sudoers/defaults.c, plugins/sudoers/sudoers.c:
	Convert fqdn to a callback and add it to the list of early defaults.
	[36b18c6e6]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c:
	Change defaults callbacks to take a union sudo_defs_val * instead of
	a char *.
	[9b42640ef]

	* plugins/sudoers/defaults.c:
	When updating defaults, process certain values fist since they can
	influence how other defaults are parsed. Currently, runas_default
	and sudoers_locale are processed early.
	[6ddc95a47]

2016-07-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke_util.c:
	Fix typo introduced in last commit to fix fill_args() overflow
	check.
	[eae8bc9d5]

	* plugins/sudoers/toke_util.c:
	Fix underflow checl in fill_args().
	[73b0ac4bc]

	* plugins/sudoers/toke_util.c:
	Make sure we account for the trailing NUL when computing arg_size in
	fill_args(). Bug #752
	[88ba54f47]

	* plugins/sudoers/toke_util.c:
	Make arg_size and arg_len unsigned since we do bitwise operations on
	them.
	[0f816c440]

2016-07-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/Makefile.in, lib/zlib/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Only remove backup files as part of "make uninstall" when
	INSTALL_BACKUP is set.
	[6f5b8cf75]

	* configure, configure.ac, lib/util/Makefile.in,
	lib/zlib/Makefile.in, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Only keep backups of installed files on HP-UX where you cannot
	unlink a shared library that is in use.
	[144e3bb53]

2016-07-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Ignore a missing or insecure #includedir, it is not a fatal error.
	[19c80f8ae]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Make sure we always call sudoerserror() on error in
	read_dir_files(), otherwise sudo will not treat it as a fatal error.
	[026b403f2]

2016-06-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Set the sudoers locale before opening the sudoers file. Previously
	the sudoers locale was used when evaluating sudoers but not during
	the inital parse. Bug #748
	[7bfe2e796]

	* plugins/sudoers/locale.c:
	Add debugging
	[5a176e850]

	* plugins/sudoers/Makefile.in:
	Don't link test programs with the sudoers-specific locale code if we
	don't need to.
	[c56d52ea6]

	* plugins/sudoers/Makefile.in:
	sudoreplay does not need to link with the sudoers-specific locale
	code.
	[cbd2cf290]

2016-06-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	new_digest was prototyped as static but not explicitly declared
	static.
	[81e33e1f5]

	* configure, configure.ac:
	Some versions of HP-UX 11.11 do not expose struct sockaddr_ext if
	_XOPEN_SOURCE_EXTENDED is defined. Only define
	_XOPEN_SOURCE_EXTENDED if we can still compile net/if.h.
	[9cc354aae]

	* plugins/sudoers/Makefile.in:
	Some versions of HP-UX make will ignore suffix rules if they are
	empty.
	[9c7680e01]

2016-06-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Don't skip debug printfs in handle_sigchld() just because execve()
	returned an error.
	[66ab525f1]

	* include/compat/charclass.h, include/sudo_compat.h, lib/util/aix.c,
	lib/util/getaddrinfo.c, lib/util/sudo_debug.c,
	plugins/sudoers/insults.h,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/sudoers_debug.c:
	Add definition of nitems for those without it and use it throughout.
	[f683cbd58]

2016-06-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Update copyright year.
	[ff2cd3cf2]

	* NEWS, configure, configure.ac:
	Sudo 1.8.17p1
	[c4118f66f]

	* src/sudo.c, src/sudo.h:
	Set user groups in exec_setup() if they were not already set by
	policy_init_session(). Bug #749
	[ed9b457eb]

2016-06-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	Point the reader to the sudoers manual for the list of supported
	arguments after the plugin path.
	[f98b481af]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	forgot to update date in last commit
	[3a85a8892]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Fix typo; cn=default should be cn=defaults
	[6c7eb07e0]

2016-06-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/Makefile.in, lib/zlib/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Fold lines at 80 characters for the clean: target
	[72f18cff9]

	* lib/util/Makefile.in:
	Remove mksiglist, siglist.c, mksigname, signame.c as part of
	"distclean"
	[5348d32ab]

2016-06-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po:
	sync with translationproject.org
	[ea23932af]

	* plugins/sudoers/sssd.c:
	LDAP sudoers doesn't support negated users, groups or netgroups.
	[d9e14bc65]

2016-06-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Bug #746
	[63a242889]

	* plugins/sudoers/match.c:
	When matching paths with glob(3), check returned matches against
	user_cmnd first if it is fully-qualified. This avoids a lot of
	needless stat(2) calls and avoids a mismatch between safe_cmnd and
	argv[0] if there are multiple matches with the same inode/dev due to
	links. Bug #746.
	[e2de0027d]

	* NEWS:
	Add execve failure in pty bug fix.
	[74c2dc780]

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po:
	sync with translationproject.org
	[ce28b15ec]

	* src/exec_pty.c:
	In handle_sigchld() fix the return value when we've already received
	an exec error. We don't want to overwrite the error status but we do
	need to indicate that the command is no longer running. Fixes as
	hang on execve(2) error when running in a pty.
	[8a86233c1]

	* src/exec.c, src/exec_common.c:
	Move sudo_debug_execve() call into sudo_execve().
	[1ec4d9918]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/sr.mo,
	po/sr.po, po/sv.mo, po/sv.po:
	sync with translationproject.org
	[12ab5b810]

2016-06-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	update for 1.8.17 final
	[bd8e3b5fb]

	* lib/util/aix.c:
	Fix setting of hard stack limit when stack_hard is not specified in
	/etc/security/limits. When 64-bit resource limits are supported we
	can use the default value of 8388608 512-byte blocks directly. We
	should only resort to using RLIM_SAVED_MAX for 32-bit resource
	limits.
	[1052a7205]

2016-06-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot:
	regen
	[734b43c6b]

2016-06-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sssd.c:
	Ignore empty ipa_hostname
	[316925982]

	* plugins/sudoers/sssd.c:
	Better martching of ipa_hostname in sssd.conf
	[c6a21bd53]

2016-06-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, configure, configure.ac, pathnames.h.in,
	plugins/sudoers/sssd.c:
	Use the value of ipa_hostname from /etc/sssd/sssd.conf if present
	instead of the system hostname.
	[9b027676c]

2016-06-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sssd.c:
	When matching host, short-circuit the loop when we get a match. Only
	check username as part of the netgroup when netgroup_tuple is
	enabled.
	[ccf88d3bb]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Avoid using !strcmp()
	[a71cac91f]

2016-06-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sssd.c:
	SSSD doesn't handle netgroups, we have to ensure they are correctly
	filtered in sudo. The rules may contain mixed sudoUser specification
	so we have to check not only for netgroup membership but also for
	user and group matches. Adapted from a patch from Daniel Kopecek.
	[b6beccf19]

2016-06-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/pam.c:
	Return PAM_CONV_ERR from the conversation function if getpass
	returns NULL or the user pressed ^C.
	[a24f4b824]

	* plugins/sudoers/base64.c:
	Make base64 decoding table-driven.
	[7a35bab8c]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Back out cfa26b99228f, it was already fixed differently. Caught by
	regress checks.
	[fc517ba9f]

2016-05-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Allow double-quoted groups and netgroups to be part of a Defaults
	spec. From Daniel Kopecek.
	[6c3c03ea2]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	The sudoers.ldap manual is installed in section 4 or 5, not 1m or 8.
	Also fix the section for ldap.conf cross-references.
	[638acc28c]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Fix copy pasta, "sudoNotAfter" not "sudoNotBefore". Add missing word
	"order" in a sentence describing sudoOrder.
	[77331392e]

	* plugins/sudoers/sssd.c:
	For sudo -ll (long list) print the SSSD role just like we do for the
	LDAP backend. Adapted from sudo-1.8.6p3-sssdrulenames.patch
	[461a419d0]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Setting timestamp_timeout less than zero only lasts until the next
	reboot. Adapted from a RedHat patch.
	[c6b41b165]

	* po/it.mo, po/it.po, po/nb.mo, po/nb.po:
	sync with translationproject.org
	[77179d69d]

2016-05-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/conversation.c:
	fputs() is now specified as returning non-negative on success, not
	explicitly zero. Fixes a failure on glibc.
	[53ebf69af]

	* src/conversation.c:
	Don't try to dereference replies[] if it is a NULL pointer.
	[e93b4aa68]

	* plugins/sudoers/policy.c:
	sudo_version should be unsigned
	[db2c73293]

	* plugins/sudoers/po/ca.mo, plugins/sudoers/po/ca.po,
	plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/hr.po,
	plugins/sudoers/po/sv.mo, plugins/sudoers/po/sv.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/ca.mo,
	po/ca.po, po/cs.mo, po/cs.po, po/da.mo, po/da.po, po/de.mo,
	po/de.po, po/fr.mo, po/fr.po, po/hr.mo, po/hr.po, po/ja.mo,
	po/ja.po, po/pl.mo, po/pl.po, po/sk.mo, po/sk.po, po/sv.mo,
	po/sv.po, po/uk.mo, po/uk.po, po/vi.mo, po/vi.po, po/zh_CN.mo,
	po/zh_CN.po:
	sync with translationproject.org
	[4d36fbec2]

	* MANIFEST, NEWS, doc/CONTRIBUTORS, plugins/sudoers/po/ko.mo,
	plugins/sudoers/po/ko.po, po/ko.mo, po/ko.po:
	Korean translation for sudo and sudoers from translationproject.org.
	[63dbb7425]

	* NEWS, plugins/sudoers/auth/pam.c:
	Ignore PAM_SESSION_ERR from pam_open_session() since this can
	apparently happen on systems using Solaris-derived PAM. Other errors
	from pam_open_session() are treated as fatal. This avoids the
	"policy plugin failed session initialization" error message seen on
	some systems.
	[5e1084c08]

2016-05-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, src/exec_pty.c:
	Don't read from stdin when flushing final buffers in blocking mode.
	Reading from the pipe can block too if the other end is not closed.
	[356e74e1d]

2016-05-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Mention visudo -x change.
	[e3514817d]

	* plugins/sudoers/regress/sudoers/test1.json.ok,
	plugins/sudoers/regress/sudoers/test14.json.ok,
	plugins/sudoers/regress/sudoers/test15.json.ok,
	plugins/sudoers/regress/sudoers/test16.json.ok,
	plugins/sudoers/regress/sudoers/test2.json.ok,
	plugins/sudoers/visudo_json.c:
	There's no need to escape forward slashes in JSON output. While it
	is legal to escape a forward slash, it is not required.
	[58ffab1df]

	* doc/UPGRADE:
	Document that in 1.8.12 sudo started being able to check the NIS
	domain on Solaris.
	[ab861b92d]

2016-05-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Better description of the I/O logging pipe issue.
	[ccece8c01]

	* src/exec_pty.c:
	In del_io_events(), avoid reading from the pty master in blocking
	mode. We now do two passes, one with SUDO_EVLOOP_NONBLOCK and
	another that could block if stdin is a pipe. This ensures we consume
	the pipe until EOF.
	[8f694cc22]

	* lib/util/event.c:
	Improve debug info in sudo_ev_add() and sudo_ev_del()
	[223b251c1]

	* src/exec_pty.c:
	In pty_close(), call del_io_events with the SUDO_EVLOOP_ONCE flag so
	the event loop will exit after a single run through. Otherwise, we
	may hang at exit on non-BSD systems.
	[994f86b40]

2016-05-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* po/sudo.pot:
	regen
	[d8cfe6211]

2016-05-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Bump I/O buffer size to 64K. We don't use PIPE_BUF or _PC_PIPE_BUF
	for this because that corresponds to the value for atomic pipe
	writes. The actual pipe buffer is much larger on modern systems and
	64K is what BSD and Linux support for large pipe buffers.
	[38f4ba224]

	* NEWS:
	I/O logging bug fix
	[fb247aa76]

	* src/exec_pty.c:
	Don't use SUDO_EVLOOP_NONBLOCK when flushing buffers at pty close
	time, only when the user suspends sudo. Fixes a problem where all
	buffers might not get flushed at exit when logging I/O. Reproducible
	via "sudo tar cf - foo | (cd /tmp && sudo tar xf -)" on OpenBSD.
	[3b6cb9d65]

2016-05-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo_json.c:
	Don't try to fflush(export_fp) or ferror(export_fp) if export_fp is
	NULL, which can happen on the error path.
	[eb4510597]

	* plugins/sudoers/sudoers.c, src/exec.c, src/exec_pty.c, src/sudo.c,
	src/tgetpass.c:
	O_NOCTTY has no effect when opening /dev/tty as the open can only
	succeed if there is already a controlling tty.
	[a2e541aef]

	* src/sudo.c:
	Do not need to open /dev/tty with O_NONBLOCK, it doesn't block on
	first open like a physical terminal. By definition, if you have a
	controlling tty, the first open (which might block) has already
	occurred.
	[3b3937724]

	* src/selinux.c:
	Use O_NOCTTY when opening a tty.
	[4e6b6fd0f]

	* src/Makefile.in:
	regen
	[3161c05a0]

	* plugins/sudoers/auth/sudo_auth.c:
	No need to set pass to NULL after freeing at the end of the loop it
	since it is already set to NULL each time through the loop.
	[b9dde1480]

2016-05-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	SELinux fixes in 1.8.17.
	[67eb6dad0]

	* plugins/sudoers/logging.h, plugins/sudoers/logwrap.c:
	Check fprintf() return value in writeln_wrap() and return the number
	of characters actually written, or -1 on error.
	[787912fa9]

	* src/conversation.c:
	Check fputs() return value.
	[009f3e645]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Do not write directly to stdout/stderr, use sudo_printf which calls
	the conversation function.
	[9d526c1af]

	* plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/securid5.c:
	Do not write directly to stdout/stderr, use sudo_printf which calls
	the conversation function.
	[90fdb6a31]

	* plugins/sudoers/iolog.c, plugins/sudoers/visudo_json.c:
	Use ferror() after fflush() to check the error status of the stdio
	stream we wrote to.
	[578af5af4]

2016-05-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.c:
	printf() returns < 0 on error, not explicitly -1
	[6d63ed8a9]

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo_plugin.cat,
	doc/sudoers.ldap.cat, doc/sudoreplay.cat, doc/visudo.cat:
	Regen for 1.8.17
	[7461dcf9a]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document that you need to preserve EDITOR and/or VISUAL for
	env_editor to be useful.
	[d25500afa]

	* src/selinux.c:
	Fix last commit, now that argc is not reset we need to explicitly
	start the copy from argv[1]. From Daniel Kopecek
	[a2085809f]

2016-05-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/selinux.c:
	cosmetic change to warning string
	[ea5bd18b9]

	* plugins/sudoers/auth/pam.c:
	Avoid adding an extraneous warning string to sudoers.pot.
	[4f46e0720]

	* lib/util/snprintf.c:
	Use EOVERFLOW, not ENOMEM for overflow conditions. For snprintf()
	and vsnprintf(), POSIX says we should return -1 and set errno to
	EOVERFLOW if the size param is > INT_MAX; also zero out the string
	in this case (not mandated by POSIX) for safety.
	[e014159fe]

2016-05-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/pam.c:
	Now that pam_open_session() failure is fatal we should print and log
	an error from it. Bug #744
	[b0be9895d]

	* src/selinux.c:
	Repair SELinux support, broken by 397722cdd7ec. From Daniel Kopecek.
	[d3622b0f2]

	* plugins/sudoers/iolog.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Remove sudo_mkpwcache() and sudo_mkgrcache(). We now create the
	caches as needed on demand. Also remove calls to sudo_freepwcache()
	and sudo_freegrcache() that are immediately followed by execve(),
	they are not needed.
	[05db5aa3b]

	* plugins/sudoers/iolog.c, plugins/sudoers/logging.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	Eliminate use of setpwent()/endpwent() and setgrent()/endgrent().
	Sudo never iterates over the passwd or group file. Rename
	sudo_set{pw,gr}ent() -> sudo_mk{pw,gr}cache() and use
	sudo_free{pw,gr}cache() instead of sudo_end{pw,gr}ent().
	[23d288563]

2016-05-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.h:
	Remove unnecessary NULL checks in the RUNAS_CHANGED macro. The only
	place where the pointers could be NULL is in visudo_json.c but we
	already check for "next" being NULL there. Quiets a cppcheck
	warning.
	[8b4de8404]

2016-05-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	In replay_session() free iov at the end of the function (if needed)
	instead of after processing each line from the timing file. Coverity
	CID 104843.
	[398ddd046]

	* plugins/sudoers/sudoreplay.c:
	Add io_log_read() and io_log_gets() to hide differences between
	gzread/fread and gzgets/fgets. Check for premature EOF and error
	from io_log_read(). Also sanity check the index in the timing file.
	Coverity CID 104630.
	[e528cad79]

	* src/exec_pty.c:
	Break up io_callback() into read_callback() and write_callback() to
	make it clear that we can't get an event with both read and write
	set.
	[b04c49dbd]

2016-05-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	In io_callback() make sure we clear SUDO_EV_READ if we close the fd.
	It should not be possible for SUDO_EV_READ to be set when revent is
	non-NULL but this makes static analyzers happier. Coverity CID
	104124.
	[094854adf]

	* plugins/sudoers/ldap.c:
	In sudo_krb5_copy_cc_file() move the close(ofd) to the done: label
	so we only have to cleanup in one place. Coverity CID 104577.
	[194c7c806]

	* plugins/sudoers/ldap.c:
	Fix memory leak in sudo_netgroup_lookup() in the non-error case.
	Coverity CID 104572, 104573, 104574, 104575.
	[0568fa90c]

	* plugins/sudoers/ldap.c:
	Fix fd leak in sudo_krb5_copy_cc_file() if restore_perms() fails.
	Coverity CID 104571.
	[334b8f36a]

	* plugins/sudoers/sudoreplay.c:
	Free the events and event base before returning from
	replay_session(). Coverity CID 104116, 104117.
	[b84b2e680]

	* src/sudo_edit.c:
	In sudo_edit_create_tfiles(), fix fd leak if sudo_edit_mktemp()
	fails. Coverity CID 104114.
	[e99e3c26c]

	* src/sudo_edit.c:
	Fix fd leak in sudo_edit_open_nonwritable() if dir_is_writable()
	returns an error. Coverity CID 104113.
	[355cce457]

	* src/sudo_edit.c:
	Fix memory leak of sesh_args in selinux_edit_copy_tfiles(). Coverity
	CID 104112.
	[d733dd778]

	* plugins/sudoers/visudo.c:
	Fix memory leak in get_editor() if resolve_editor() fails with an
	error. Coverity CID 104107.
	[bbda2e7b5]

	* src/sudo.c:
	Fix memory leak on error if sudo_new_key_val() fails. Coverity CID
	104103.
	[0f359e038]

	* plugins/sudoers/visudo.c:
	Ignore the return value of the initial sudoersparse(), before we
	have actually edited any files. Coverity CID 104078.
	[96f5fe4cd]

	* src/exec.c:
	Ignore the result of send() on exec error, if it fails the other end
	of the pipe is gone and we are headed for exit. Coverity CID 104066.
	[00727a310]

	* plugins/sudoers/toke_util.c:
	In fill_args() clean up properly if there is an internal overflow
	(which should not be possible). Coverity CID 104569.
	[edd1a1cac]

	* plugins/sudoers/gc.c:
	Fix logic inversion in sudoers_gc_remove(), currently unused.
	Coverity CID 104568
	[0ecc6025a]

2016-05-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	In io_mkdirs(), change the order from stat then mkdir, to mkdir then
	stat. This more closely matches what "mkdir -p" does. Coverity CID
	104120.
	[c56a812ea]

	* plugins/sudoers/timestamp.c:
	In ts_mkdirs(), change the order from stat then mkdir, to mkdir then
	stat. This more closely matches what "mkdir -p" does. Coverity CID
	104119.
	[602ed0c74]

	* plugins/sudoers/sudoers.c:
	Newer versions of Ubuntu have switched from using the "admin" group
	to the "sudo" group to align with Debian.
	create_admin_success_flag() now accepts either one.
	https://bugs.launchpad.net/ubuntu/+source/sudo/+bug/1387347
	[5ee1e5bbc]

	* plugins/sudoers/timestamp.c:
	Cast off_t printed via printf(3) instead of assuming it is long
	long.
	[7a86430d4]

	* plugins/sudoers/sudoers.c:
	Instead of using stat(2) to see if the admin flag file exists and
	creating it if not, just try to create the file and treat EEXIST as
	a non-error. Coverity CID 104121.
	[151e03fb5]

	* MANIFEST, plugins/sample/README:
	README file for the sample plugin that tells the user how to build,
	install and enable it.
	[bb1232806]

	* plugins/sample/sample_plugin.c:
	Fix compilation error and export sample_policy struct. From Michael
	Evans
	[cc82c3193]

	* NEWS:
	Update for 1.8.17
	[3b4f2bbff]

	* configure, configure.ac:
	Sudo 1.8.17
	[3b043207b]

	* plugins/sudoers/logging.c:
	Check return value of restore_perms() in vlog_warning(). Coverity
	CID 104079.
	[7b302e09a]

	* plugins/sudoers/editor.c:
	Fix memory leaks in resolve_editor() in the error path. Coverity CID
	104109, 104110
	[b4cb1c0a1]

	* plugins/sudoers/policy.c:
	Fix memory leak of gid_list in sudoers_policy_exec_setup() in the
	error path. Coverity CID 104111.
	[61c53c8e6]

	* plugins/sudoers/logging.c:
	Fix fd leak in do_logfile() if we fail to lock the log file.
	Coverity CID 104115.
	[0690793c2]

	* plugins/sudoers/sssd.c:
	Fix memory leak of sss_result in sudo_sss_lookup() Coverity CID
	104106
	[7a5149d73]

	* plugins/sudoers/iolog.c:
	Fix fd leak in open_io_fd() if gzdopen/fdopen fails. Coverity CID
	104105
	[4bfdf0c2b]

	* plugins/sudoers/iolog.c:
	Fix fd leak in io_nextid() in error path. Coverity CID 104104
	[444d2a5c3]

2016-05-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/timestamp.c:
	Check lseek() return value. Coverity CID 104061.
	[562b5cb59]

	* plugins/sudoers/timestamp.c:
	Ignore ts_write() return value when disabling an entry with a bogus
	timestamp. We ignore the timestamp entry even it doesn't succeed.
	Coverity CID 104062.
	[60e740dd6]

	* plugins/sudoers/iolog.c, plugins/sudoers/match.c,
	plugins/sudoers/tsgetgrpw.c, src/exec.c, src/exec_pty.c, src/sudo.c:
	Cast the return value of fcntl() to void when setting FD_CLOEXEC.
	Coverity CID 104063, 104064, 104069, 104070, 104071, 104072, 104073,
	104074
	[6473d55aa]

	* plugins/group_file/getgrent.c:
	Cast the return value of fcntl() to void when setting FD_CLOEXEC.
	Coverity CID 104075, 104076, 104077.
	[9471ec45a]

	* plugins/sudoers/env.c:
	Avoid a false positive. Coverity CID 104056.
	[a7fa036d4]

	* plugins/sudoers/visudo_json.c:
	Avoid calling fclose(NULL) on error in export_sudoers(). Coverity
	CID 104091.
	[c0a3c6bb9]

	* plugins/sudoers/toke_util.c:
	In fill_args(), check for "arg_size == 0" instead of
	"sudoerslval.command.args == NULL" since the latter leads Coverity
	to imply that sudoerslval.command.args could be NULL later on.
	Coverity CID 104093.
	[a09e45d33]

	* plugins/sudoers/sudoers.c:
	Avoid calling fclose(NULL) if the sudoers file is not secure and
	restore_perms() fails. Coverity CID 104090.
	[64142f9da]

2016-05-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke.h, plugins/sudoers/toke_util.c:
	In fill_args(), replace loop that increments arg_size() with a
	simple add and mask. Should prevent a false positive from Coverity
	CID 104094.
	[5725acd1c]

	* plugins/sudoers/sudoreplay.c:
	In parse_expr(), move the "bad" label after the "default" case in
	the switch(), not before it. This seemed to confuse Covertity,
	resulting in a false positive, CID 104095.
	[bf734419b]

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in:
	For "sudoreplay -l", not all predicates may be shortened to a single
	character. Both 'c' and 't' have more than one possibility.
	[ea44d3757]

	* src/exec.c, src/exec_pty.c, src/sudo.c:
	pid_t is defined by POSIX as a signed integer type so we don't need
	a cast when comparing to -1.
	[829917f00]

	* src/exec.c:
	In dispatch_signal() for stopped processes check for tcgetpgrp()
	returning -1. Also change checks from "saved_pgrp != -1" to "fd !=
	-1". Coverity CID 104098.
	[c70da6dcd]

	* src/selinux.c:
	In relabel_tty() always jump to bad: on error, regardless of the
	value of se_state.enforcing. On error, return -1 if enforcing, else
	0. Coverity CID 104099.
	[2cd22f290]

	* config.h.in, configure.ac:
	Define NO_LEAKS when sudo is built with Coverity.
	[b20b411e7]

	* src/exec_pty.c:
	In io_callback() if we write the complete buffer and find that there
	is no associated reader just return as there is nothing else to be
	done. In practice is it not possible for SUDO_EV_READ to be set if
	revent is NULL but an early return is harmless and possibly easier
	to understand. Coverity CID 104124.
	[4ce39df38]

	* src/sudo_edit.c:
	Handle read() returning -1 when creating temporary files. Coverity
	CID 104100
	[6ea903623]

	* plugins/sudoers/policy.c:
	Fix cut and paste error when checking cols for 0. Coverity CID
	104081
	[20ff6023a]

	* plugins/sudoers/pwutil.c:
	Use a single debug message for cache hit or store to avoid another
	situation where they get out of sync. Bug #743
	[2152f053b]

	* plugins/sudoers/pwutil.c:
	Sync the "cache hit" debug messages with the "cached" debug
	messages. This fixes a bug where we could dereference a NULL pointer
	when we look up a negative cached entry which is stored as a NULL
	passwd or group struct pointer. Bug #743.
	[a152afaeb]

2016-04-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Remove the check for __sprintf_chk when checking for
	_FORTIFY_SOURCE, Some implementations are purely header-file based.
	As long as we can link a test program using sprintf() when
	_FORTIFY_SOURCE=2 it should be safe to use.
	[9d5c6fbd6]

	* config.h.in, configure, configure.ac:
	Remove configure checks for dev_t, id_t, ino_t, ptrdiff_t, size_t
	and ssize_t. These have been specified by either ANSI C or POSIX for
	long enough that if the system doesn't support them, it is unlikely
	to be able to compile sudo anyway.
	[e0f12d81a]

	* src/sudo.c:
	Do group setup in policy_init_session() before calling out to the
	plugin. This makes it possible for the pam_group module to change
	the group in pam_setcred(). It's a bit bogus since pam_setcred() is
	documented as not changing the group or user ID, but pam_group is
	shipped with stock Linux-PAM so we need to support it.
	[f88da1c1a]

2016-04-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.c:
	Add missing newline when logging to a file (not syslog) and
	loglinelen is set to a non-positive number. Bug #742
	[57b1dc5e1]

2016-04-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	style fix; fork_cmnd should start on a new line
	[3e9702580]

2016-04-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, plugins/sudoers/ldap.c,
	plugins/sudoers/logging.c, src/signal.c, src/sudo.c, src/tgetpass.c:
	Ignore SIGPIPE for the duration of sudo and not just in a few select
	places. We have no control over what nss, PAM modules or sudo
	plugins might do so ignoring SIGPIPE is safest.
	[b4309d4ae]

	* src/selinux.c:
	Use string_to_security_class() instead of pulling SECCLASS_CHR_FILE
	from flask.h. Avoids a warning with new SELinux includes.
	[70cf5674b]

2016-04-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	When determining whether or not "sudo -l" or "sudo -b" should prompt
	for a password, take all sudoers sources into account. In other
	words, if both file and ldap sudoers sources are in use, "sudo -v"
	will now require that all entries in both sources be have NOPASSWD
	(file) or !authenticate (ldap) in the entries.
	[6717c3202]

2016-03-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/sudo_auth.h:
	If the auth_type setting in /etc/security/login.cfg is set to
	PAM_AUTH but pam_start() fails, fall back to use AIX authentication.
	Skip the auth_type check if sudo is not compiled with PAM support.
	[b2d1c457c]

2016-03-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	The header for sudo.conf(5) should be SUDO.CONF(5) not SUDO(5).
	[7cd6d4ec7]

2016-03-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/policy.c:
	hook_version and hook_type are unsigned so use 0, not -1 in the
	final (empty) entry. Quiets a warning on Solaris Studio 12.2.
	[c5cafb433]

2016-03-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, config.h.in, configure, configure.ac,
	plugins/sudoers/auth/pam.c:
	Work around an ambiguity in the PAM spec with respect to the
	conversation function. It is not clear whether the "struct
	pam_message **msg" is an array of pointers or a pointer to an array.
	Linux-PAM and OpenPAM use an array of pointers while
	Solaris/HP-UX/AIX uses a pointer to an array. Bug #726.
	[48dff8408]

2016-03-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po, po/eo.mo,
	po/eo.po, po/it.mo, po/it.po, po/ja.mo, po/ja.po, po/ru.mo,
	po/ru.po, po/sr.mo, po/sr.po:
	sync with translationproject.org
	[935367260]

2016-02-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Bug #738
	[f5b8ad480]

2016-02-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po, po/nb.mo,
	po/nb.po:
	sync with translationproject.org
	[514c62fc2]

	* lib/util/regress/fnmatch/fnm_test.in:
	Better test for negated character classes.
	[70f2f4eee]

	* lib/util/regress/fnmatch/fnm_test.in:
	Add test for negated character class
	[f222a20b1]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/fr.mo, po/fr.po, po/pl.mo,
	po/pl.po, po/pt_BR.mo, po/pt_BR.po, po/uk.mo, po/uk.po, po/vi.mo,
	po/vi.po, po/zh_CN.mo, po/zh_CN.po:
	sync with translationproject.org
	[159aa2ba6]

	* NEWS:
	sync
	[d1a3da417]

	* lib/util/fnmatch.c:
	Fix negation of character classes.
	[547a9b7d9]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Fix the check for whether a user is allowed to lists another user's
	privileges. The "matched" variable is not boolean, it can also have
	the value UNSPEC so we need to check explicitly for true. Bug #738
	[95dd64ea7]

	* plugins/sudoers/auth/pam.c:
	Log the number of PAM messages in the conversation function at debug
	level.
	[5dd7ac20e]

2016-02-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Don't check for posix_spawn() or posix_spawnp() if we were unable to
	find spawn.h. This should only be a problem on systems with broken
	headers. Bug #730
	[4b079ee7e]

2016-02-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	update for 1.8.16
	[1d796d629]

	* doc/CONTRIBUTORS, plugins/sudoers/sudoers2ldif:
	Fix documented bug with duplicate role names and turn on perl
	warnings. Based on a diff from Aaron Peschel
	[99978e4a7]

2016-02-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/aix.c:
	Add declaration of getauthdb() for AIX 5.1
	[47adf0d3c]

2016-02-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[6848a7f1a]

	* plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po:
	sync with translationproject.org
	[fafbc9a55]

	* INSTALL:
	Add a note that --with-solaris-audit is only for Solaris 11 and
	above. Bug #737
	[8509229eb]

2016-02-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Remove last remnants of the deprecated --with-stow option.
	[4f7b0b115]

	* src/Makefile.in:
	src/load_plugins.c needs _PATH_SUDO_CONF so allow it to be
	overridden via the Makefile like other consumers of _PATH_SUDO_CONF.
	Bug #735
	[42548a1b0]

2016-02-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac, include/sudo_util.h, lib/util/aix.c,
	lib/util/getgrouplist.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil.h, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/set_perms.c, src/sudo.c:
	Add an administrative domain to the passwd/group cache key for AIX
	which can have different name <-> ID mappings depending on whether
	the database is local, LDAP, etc.
	[6cbba7d66]

	* mkpkg, sudo.pp:
	Fedora dropped "core" from the name some time ago so just match on
	f[0-9] for the rpm distro name provided by pp. Since the version
	numbers of Fedora and RHEL are so different switch to defining
	variables to indicate which features should be enabled. Works for
	Fedora 23.
	[9b19ea440]

2016-01-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg, sudo.pp:
	Treat fedora core like centos/rhel for package building.
	[25abb7218]

2016-01-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/parser/check_fill.c:
	Plug some memory leaks in the tests.
	[73163c750]

	* plugins/sudoers/toke_util.c:
	If realloc of sudoerslval.command.args fails, reset
	sudoerslval.command.args as well as arg_len and arg_size after
	freeing sudoerslval.command.args.
	[2224cfd00]

	* src/exec_pty.c:
	When freeing the iobs after pty tear-down, also free the associated
	event structures. Quiets a memory leak warnings from address
	sanitizer and valgrind.
	[a7e5ae1e5]

2016-01-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	iolog_compress should be bool, not int
	[5cbe1edcf]

	* plugins/sudoers/visudo.c:
	Quiet address sanitizer leak detector.
	[3bebdfea7]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/env.c,
	plugins/sudoers/gc.c, plugins/sudoers/sudoers.h:
	Simple garbage collection (really a to-be-freed list) for the
	sudoers plugin. Almost identical to what sudo.c uses. Currenly only
	the environment strings are collected at exit time which is enough
	to quiet address sanitizer's leak detector.
	[21d6fc3d8]

	* src/sudo.c:
	Rename gc_cleanup to gc_run and remove I/O plugins from the plugin
	list when freeing them.
	[7b2fbed45]

	* src/sudo.c:
	Free up the garbage via an atexit() handler instead of requiring a
	call to gc_exit.
	[23aeb0b5e]

	* src/sudo_edit.c:
	Plug a memory leak in sudo_edit.
	[78ac87cd9]

2016-01-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	mention --enable-asan
	[fd9f01006]

	* plugins/sudoers/auth/sudo_auth.c:
	Try to deconfuse static analyzers a bit.
	[873d5cc5f]

	* plugins/sudoers/sssd.c:
	Avoid possible NULL deref found by clang analyzer.
	[23a82ab2e]

	* config.h.in, configure, configure.ac:
	Add --enable-asan configure flag to enable address sanitizer
	[3d0b0f061]

	* src/sudo.c, src/sudo_plugin_int.h, src/ttyname.c:
	Add support for garbage collecting info passed to the plugin before
	exit to appease address sanitizer's leak detector (and valgrind's
	leak checker). We can't free these sooner since the plugin may be
	using the memory. For plugin API 2.0 it should be make clear that
	the plugin must make a copy of the data in the arrays passed in to
	the plugin's open() function. Only enabled if NO_LEAKS is defined.
	[9b3ef072f]

	* plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c:
	auth_getpass() returns a dynamically allocated copy of the plaintext
	password which needs to be freed after checking (and clearing) it.
	[ab11cdde2]

	* src/sudo.c:
	Remove sudo_fatalx() calls from format_plugin_settings().
	[91bce65e2]

	* plugins/sudoers/sssd.c:
	fn_free_result() (aka sss_sudo_free_result() in sss_sudo.c) handles
	a NULL poiner so there's no need to check before calling it. Add
	missing initialization of sss_sudo_result to NULL in
	sudo_sss_setdefs().
	[e48ceebf1]

	* plugins/sudoers/sssd.c:
	Add missing return when user is not found in sudo_sss_result_get().
	Previously we fell through to the default case which just logged a
	debug message and returned so this just avoids the extra (generic)
	debug message.
	[60ea106cc]

2016-01-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/gettime.c:
	Fix a warning on AIX.
	[6635f97b3]

	* src/sudo.c:
	Pass updated user_env_out, not envp, to the I/O open function.
	[5507b2328]

	* src/sudo.c:
	Pass updated argv/envp to the I/O open function like the plugin API
	documents.
	[ca330adad]

2016-01-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Add check for I/O log file handle being NULL. This could only happen
	if the front-end calls iolog_open with argc == 0 but actually runs a
	command.
	[a6886d234]

2016-01-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/pwutil.c:
	Additional debugging for pwutil functions.
	[c28f59271]

	* config.h.in, configure, configure.ac, lib/util/aix.c:
	When calling setauthdb(), save the old registry value so we can
	restore it properly. Previously we were setting the registry to
	unrestricted instead of actually restoring it.
	[41a32a1c5]

	* plugins/sudoers/sudoers.c:
	Use SUDOERS_DEBUG_UTIL not SUDO_DEBUG_UTIL in the plugin.
	[578be4f39]

2016-01-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/sudo_debug.c:
	When parsing debug entries, don't make a lower value override a
	higher one. For example, for "pcomm@debug,all@warn" the "all@warn"
	should not set pcomm to "warn" when it is already at "debug".
	[5016fa23d]

2016-01-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/policy.c:
	Set sudoedit_checkdir=false in command_details when it is disabled
	in sudoers.
	[7ed519125]

	* include/sudo_compat.h, lib/util/strtobool.c,
	plugins/sudoers/ldap.c, plugins/sudoers/sssd.c, src/sudo_edit.c:
	Update copyright year
	[f4e5b135b]

	* src/sudo_edit.c:
	If the user runs "sudoedit /" we will receive ENOENT from openat(2)
	and sudoedit will try to create a file with the null string. If path
	is empty, open the cwd instead so sudoedit can give a sensible error
	message.
	[726b4dc96]

	* lib/util/strtobool.c:
	Log an error for invalid boolean strings.
	[399ec8b2b]

	* src/sudo.c:
	Fix off by one error in new SET_FLAG macro.
	[5bae35c05]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document the race with sudoedit_checkdir in 1.8.15.
	[ec37504df]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Document sudoedit_checkdir
	[42671f6b9]

2016-01-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_edit.c:
	There are no systems that support O_SEARCH/O_PATH that do not also
	support O_DIRECTORY so simplify the definition of DIR_OPEN_FLAGS a
	bit.
	[5e300f1e4]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[5dae4d3f3]

	* NEWS, doc/UPGRADE:
	Add 1.8.16 changes
	[647bfa4a9]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/defaults.c,
	src/sudo.c:
	Make sudoedit_checkdir the default and update the documentation
	accordingly.
	[de0208a01]

	* src/sudo.c:
	Add a SET_FLAG macro to simplify parsing command details boolean
	flags. Previously, flags were only set and never cleared even if the
	boolean value was false. This was not a problem as there were no
	default flags for the plugin to enable. That will change in the
	future.
	[e719d954e]

2016-01-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_edit.c:
	Need to be root when switching to a different user.
	[4b96e94f3]

	* src/sudo_edit.c:
	Use O_SEARCH on systems without O_PATH if present. It can be used
	for a similar purpose.
	[9f481f128]

	* config.h.in, configure, configure.ac, src/sudo_edit.c:
	Use faccessat(2) for directory writability instead of doing the
	checks manually where possible. This also allows us to remove the
	#ifdef __linux__ bits since we no longer use fstat(2) on Linux with
	an O_PATH fd.
	[c1b148120]

2016-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Add "I/O LOG FILES" section to the manual and move many of the
	details from the log_input and log_output descriptions to it.
	[7f8a29dfc]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Use "Nm sudoers" when talking about the plugin and "Em sudoers" when
	talking about the sudoers file.
	[ad8c96403]

2016-01-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/zlib/zlib.exp:
	Remove gzopen_w which is only defined on Windows.
	[12a8becd7]

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Work around the buggy pread(2) on 32-bit HP-UX 11.00 by using
	pread64() on that platform.
	[4bcef637f]

2016-01-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/ldap.c, plugins/sudoers/match.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/sssd.c, plugins/sudoers/testsudoers.c:
	Add support for matching the entire netgroup tuple (user, host,
	domain).
	[5a77989a3]

	* plugins/sudoers/ldap.c:
	Use asprintf() to generate the netgroup filter instead of using lots
	of concatenation.
	[9d7bc0311]

	* lib/util/util.exp.in:
	Add missing sudo_debug_exit_ssize_t_v1 symbol.
	[f97eba71f]

2016-01-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	In sudo_netgroup_lookup() only build up the search filter once
	instead of once per netgroup_base.
	[55fdf66c1]

	* plugins/sudoers/ldap.c:
	It is safe to pass ldap_msgfree() a NULL pointer.
	[7c454656d]

	* plugins/sudoers/ldap.c:
	On overflow, warn before freeing anything.
	[ae5a2f407]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Use user_runhost and user_srunhost instead of user_host and
	user_shost. Fixes "sudo -l -h other_host" for LDAP and sssd.
	[0f991ff78]

	* plugins/sudoers/match.c:
	Silence warning in digest_matches() on systems with no fexecve(2).
	[089b468de]

	* plugins/sudoers/sssd.c:
	Fix free() of invalid pointer introduced in the commit that stripped
	whitespace between a '!' and the name in a sudoOption.
	[9308d05e7]

	* plugins/sudoers/ldap.c:
	Fix free() of invalid pointer introduced in the commit that stripped
	whitespace between a '!' and the name in a sudoOption.
	[14b454cc0]

	* src/sudo_edit.c:
	Add missing dfd argument to the version of
	sudo_edit_openat_nofollow() for systems without O_NOFOLLOW.
	[051fe2d4c]

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.in:
	Update description of sudoedit_checkdir. Reported by Sander Bos.
	[8ed9f6172]

	* src/sudo_edit.c:
	No need to check whether the fd we opened is really a directory in
	sudo_edit_open_nonwritable() since if not, the openat() will fail
	with ENOTDIR anyway.
	[c7c80913e]

2016-01-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS, doc/UPGRADE, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, include/sudo_compat.h,
	src/sudo_edit.c:
	Rewritten sudoedit_checkdir support that checks all the dirs in the
	path and refuses to follow symlinks in writable directories. This is
	a better fix for CVE-2015-5602. Adapted from a diff by Ben
	Hutchings. Bug #707
	[68c1073fe]

2016-01-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/ca.mo, plugins/sudoers/po/ca.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po, po/ca.mo,
	po/ca.po, po/fi.mo, po/fi.po, po/hu.mo, po/hu.po, po/sr.mo,
	po/sr.po:
	sync with translationproject.org
	[39db87e62]

	* configure, configure.ac, doc/sudo_plugin.cat,
	doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, include/sudo_plugin.h,
	plugins/sudoers/match.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h, src/exec.c, src/exec_common.c,
	src/selinux.c, src/sesh.c, src/sudo.c, src/sudo.h, src/sudo_exec.h:
	Add support for using fexecve() if supported on commands that are
	checksummed.
	[b20977d44]

2015-12-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_edit.c:
	Call openat() with the basename not the full path. From Ben
	Hutchings.
	[97e86c74f]

2015-12-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/group_plugin.c, plugins/sudoers/policy.c:
	Fix compilation with --disable-shared
	[330a20969]

2015-12-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_common.c:
	Check for existing dso in LD_PRELOAD and only add it if it is not
	already present.
	[88a634b7f]

2015-12-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Clarify when SIGINT and SIGQUIT are relayed by sudo to the command.
	[584aebe73]

	* plugins/sudoers/group_plugin.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h, src/load_plugins.c:
	Actually use the plugin_dir Path setting in sudo.conf.
	[ad1068c1e]

	* lib/util/sudo_conf.c:
	The Path setting for the plugin directory is "plugin_dir" not
	"plugin".
	[0123cf63f]

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	lib/util/sudo_conf.c, src/exec_common.c:
	Allow sudo.conf Path settings to disable path names (by setting the
	value of NULL).
	[55531958d]

2015-12-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/selinux.c, src/sudo.h:
	Change noexec flag in selinux_execve() from int to bool.
	[7a57bae1e]

	* src/exec_common.c, src/sudo_exec.h:
	Refactor code to set LD_PRELOAD (or the equivalent) in the
	environment into a preload_dso() function. Also avoid allocating a
	new copy of the environment array if the size of the array does not
	change.
	[453648080]

	* configure, configure.ac:
	Add missing square brackets in configure option descriptions.
	[3b338830c]

2015-12-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document the names of the I/O log files and mention buffering.
	Document that I/O logs are in gzip format by default.
	[a6f8994a5]

2015-12-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/env.c:
	Add BASHOPTS to initial_badenv_table[]; from Stephane Chazelas
	[290dafda3]

2015-12-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	When parsing sudoOptions that include an operator (!, +, +=, -=)
	strip out any whitespace on either side of the operator.
	[d46d0fbc6]

2015-12-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers2ldif:
	Strip whitespace around '!', '=', '+=' and '-=' in Defaults entries.
	[e2add4ae2]

2015-12-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document the race condition between the digest check and command
	execution.
	[96201a275]

2015-12-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	When checking the query results, don't set user_matches in the
	netgroup pass unless sudo_ldap_check_non_unix_group() returns true.
	This was preventing the mail_no_user sudoOption from being
	effective.
	[29e9273a4]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	In list mode, we always want to clear FLAG_NO_USER and FLAG_NO_HOST
	regardless of whether or not there was an actual match. Otherwise,
	warning mail may be sent which is not what we want in list mode.
	This is consistent with what the sudoers file backend does.
	[9c9b487b0]

2015-11-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke.h, plugins/sudoers/toke_util.c:
	Use size_t for length parameters in the fill functions used by the
	lexer.
	[604d35034]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Use yy_size_t for digest_len since newer flex uses yy_size_t for
	yyleng. Old flex uses int for yyleng so we need to use a cast to
	avoid a sign compare warning.
	[90e6bf318]

2015-11-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, README, configure, configure.ac,
	plugins/sudoers/regress/sudoers/test1.in, sudo.pp:
	Use https in sudo.ws urls
	[d13bb39d1]

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in, doc/visudo.cat,
	doc/visudo.man.in, doc/visudo.mdoc.in:
	Use https in urls.
	[79be007bd]

	* configure, configure.ac:
	sudo 1.8.16
	[48a95973a]

	* plugins/sudoers/env.c:
	When preserving variables from the invoking user's environment, if
	there are duplicates only keep the first instance.
	[9c0354730]

2015-11-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_debug.h, lib/util/parseln.c, lib/util/sudo_debug.c,
	plugins/sudoers/timestamp.c:
	Add debug_return_ssize_t
	[8b12390ab]

	* plugins/sudoers/timestamp.c:
	Avoid compilation error on Solaris 10 with Stun Studio 12. Bug #727
	[c6dad0001]

2015-10-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po, po/da.mo,
	po/da.po:
	sync with translationproject.org
	[c752d91a3]

	* NEWS:
	Mention ssp configure fix.
	[7fd8a7df3]

2015-10-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/nl.mo, plugins/sudoers/po/nl.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/fr.mo, po/fr.po, po/it.mo,
	po/it.po, po/ja.mo, po/ja.po, po/nb.mo, po/nb.po, po/pl.mo,
	po/pl.po, po/pt_BR.mo, po/pt_BR.po, po/uk.mo, po/uk.po, po/vi.mo,
	po/vi.po, po/zh_CN.mo, po/zh_CN.po:
	sync with translationproject.org
	[a012fba17]

	* configure, configure.ac:
	Don't use CPPFLAGS for the -fstack-protector check. Otherwise on
	systems with _FORTIFY_SOURCE support we'll get an error due to the
	lack of optimization flags. Bug #725
	[640e867db]

	* configure, configure.ac:
	When checking for stack protector support we need to actually link
	the test program.
	[448f7f25f]

2015-10-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Preserve LDFLAGS when checking for stack protector as they may
	include rpath settings to allow the stack protector lib to be found.
	Avoid using existing CFLAGS since we don't want the compiler to
	optimize away the stack variable.
	[b87ac0f0a]

	* configure, configure.ac:
	Better configure test for -fstack-protector. Some gcc installations
	may be missing the ssp library even though the compiler supports it.
	[bdcb83be9]

2015-10-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_edit.c:
	Set errno to EISDIR instead of ENOTDIR if directory is writable
	since ENOTDIR can be a legitimate errno. This avoids a bogus
	"directory is writable" error in that case.
	[9ecf12daa]

	* mkpkg:
	Fix the check for whether to include 32-bit arch in Mac OS X
	packages.
	[e244b0cda]

2015-10-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[202dd1ccf]

	* NEWS, src/sudo_edit.c:
	When creating a new file, sudoedit will now check that the file's
	parent directory exists before running the editor.
	[5d66b840d]

	* NEWS, doc/UPGRADE, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/match.c:
	Add always_query_group_plugin
	[7761af6d7]

2015-10-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ABOUT-NLS, MANIFEST:
	Add ABOUT-NLS from GNU gettext.
	[4f1912148]

	* NEWS, config.h.in, configure, configure.ac, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers_version.h,
	src/sudo.c, src/sudo.h, src/sudo_edit.c:
	Add directory writability checks for sudoedit.
	[c50cead83]

2015-10-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Latest.
	[54a10726c]

	* src/conversation.c:
	Ignore the SUDO_CONV_PROMPT_ECHO_OK flag when echo is enabled. This
	was preventing a match of SUDO_CONV_PROMPT_ECHO_ON which resulted in
	a masked password instead of an echoed one.
	[e91a10ce4]

	* plugins/sudoers/auth/bsdauth.c:
	Repair challenge/response prompting for BSD authentication which got
	broken while it was converted to use the conversation function.
	[2afb2f204]

	* plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h:
	Use the auth_getpass (and the plugin conversation fuction) for Tru64
	SIA. This prevents sudo from sleeping while holding the tty ticket
	lock.
	[2ecda6d65]

	* NEWS, doc/UPGRADE, plugins/sudoers/env.c:
	For env_reset, SHELL should be set based on the target user, not the
	invoking user unless preserved via env_keep.
	[588460405]

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po:
	sync with translationproject.org
	[e21a5a1cf]

2015-10-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Hungarian and Slovak translations
	[507150d8f]

	* MANIFEST, doc/CONTRIBUTORS, plugins/sudoers/po/hu.mo,
	plugins/sudoers/po/hu.po, plugins/sudoers/po/sk.mo,
	plugins/sudoers/po/sk.po, po/sk.mo, po/sk.po:
	Add new Slovak and Hungarian translations from
	translationproject.org
	[4c7431ecb]

2015-10-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_edit.c:
	Remove S_ISREG check from sudo_edit_open(), it is already done in
	the caller.
	[6dc5151d5]

	* src/sudo_edit.c:
	Open sudoedit files with O_NONBLOCK and fail if they are not regular
	files.
	[37dff5fbc]

	* plugins/sudoers/logging.c, plugins/sudoers/visudo.c,
	src/tgetpass.c:
	It is possible for WIFSTOPPED to be true even if waitpid() is not
	given WUNTRACED if the child is ptraced. Don't exit the waitpid()
	loop if WIFSTOPPED is true, just in case.
	[5ad68edd6]

2015-09-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/de.mo,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/it.mo,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/nb.mo,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pt_BR.mo,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/vi.mo,
	plugins/sudoers/po/zh_CN.mo, po/cs.mo, po/de.mo, po/fi.mo, po/fr.mo,
	po/gl.mo, po/it.mo, po/ja.mo, po/nb.mo, po/pl.mo, po/pt_BR.mo,
	po/uk.mo, po/vi.mo, po/zh_CN.mo:
	rebuild .mo files
	[3f883a80a]

	* plugins/sudoers/po/pt_BR.po, po/pt_BR.po:
	sync with translationproject.org
	[f98b2b260]

2015-09-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.ac, src/sudo_noexec.c:
	There's no point in trying to interpose protected versions of the
	exec family of functions. Many modern C libraries use hidden symbols
	for the functions and syscalls defined in libc such that they cannot
	be overridden inside libc itself. We have to just wrap all the exec
	variants plus system and popen.
	[37abc1b7e]

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	List all the functions wrapped by sudo_noexec.so.
	[d5086dfde]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	The section is now called "EXEC and NOEXEC" and it is above, not
	below.
	[6b81f0b88]

	* src/sudo_noexec.c:
	Also wrap popen(3).
	[282b92133]

	* src/sudo_noexec.c:
	Also interpose system(3). On glibc systems you cannot interpose the
	syscalls used internally by libc.
	[8695ae104]

	* src/conversation.c:
	Set active debug instance to sudo_debug_instance() during the
	conversation function.
	[04457ecee]

2015-09-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	LOGNAME and USERNAME are set the same way as USER
	[52ec12f52]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Document behavior when the command dies from a signal in EXIT
	STATUS.
	[4be48e784]

2015-09-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Bug #722
	[99322bcf3]

	* src/sudo.c:
	When the command sudo is running is killed by a signal, sudo will
	now send itself the same signal with the default signal handler
	instead of exiting. The bash shell appears to ignore some signals,
	e.g. SIGINT, unless the command is killed by that signal. This makes
	the behavior of commands run under sudo the same as without sudo
	when bash is the shell. Bug #722
	[9486afb4e]

2015-09-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Adjust set_logname description to new behavior when any of LOGNAME,
	USER or USERNAME are preserved.
	[7b7db55db]

	* NEWS, plugins/sudoers/env.c:
	If some, but not all, of the LOGNAME, USER or USERNAME environment
	variables have been preserved from the invoking user's environment,
	sudo will now use the preserved value to set the remaining variables
	instead of using the runas user. This ensures that if, for example,
	only LOGNAME is present in the env_keep list, that sudo will not set
	USER and USERNAME to the runas user.
	[29a3fcd06]

2015-09-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/pam.c:
	Fix passing of the callback pointer to the conversation function.
	This was preventing the on_suspend and on_resume functions from
	being called on PAM systems.
	[0649a261e]

	* include/sudo_plugin.h:
	Explicitly mark large hex constants unsigned.
	[2c7ff33ea]

	* plugins/sudoers/timestamp.c:
	Cast sizeof(entry) to off_t before making it a negative offset for
	lseek(). Fixes "sudo -k" on Solaris and probably others.
	[118680eab]

2015-09-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Add explicit mention of sudo's netgroup semantics since they differ
	from most other netgroup consumers.
	[824021b51]

	* plugins/sudoers/po/fi.po, po/fi.po:
	sync with translationproject.org
	[80673750c]

	* plugins/sudoers/check.c:
	Fix potential double free of the cookie when sudo is suspended at
	the password prompt.
	[0cfce655b]

2015-09-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/cs.po, plugins/sudoers/po/zh_CN.po, po/cs.po,
	po/zh_CN.po:
	sync with translationproject.org
	[71d024632]

2015-09-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/de.po, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.po, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.po, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.po, po/de.po, po/fr.po, po/gl.po, po/it.po,
	po/ja.po, po/nb.po, po/pl.po, po/uk.po, po/vi.po:
	sync with translationproject.org
	[51c2ef7ae]

	* NEWS:
	Bug #719
	[43fd191cf]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	SIGHUP is now relayed to the command. Bug #719
	[3ac17b302]

	* src/exec.c:
	When a terminal device is closed, SIGHUP is sent to the controlling
	process associated with that terminal. It is not sent to the entire
	process group so sudo needs to relay SIGHUP to the command when it
	is not being run in a new pty. Bug #719
	[3f6f1cd15]

	* NEWS:
	Mention visudo bug in 1.8.14
	[b12500993]

	* plugins/sudoers/visudo.c:
	We reserved two slots at the end of the editor argv for the line
	number and the file name. However, resolve_editor() adds "--" before
	the file names so the +line_number is interpreted as a file name,
	not a line number so we need to overwrite the "--" as well.
	[b6cb1b65c]

2015-09-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.ac, lib/util/sig2str.c,
	lib/util/strsignal.c:
	Remove checks for __sys_siglist and __sys_signame. They are internal
	to libc and there are no known systems that export those symbols
	that do not already export the single underbar or no-underbar
	versions.
	[a2979ed80]

	* plugins/sudoers/po/ru.mo, plugins/sudoers/po/ru.po, po/es.mo,
	po/es.po:
	Sync with translationproject.org
	[9ff93c307]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[4132f184e]

2015-09-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/tgetpass.c:
	Restore old signal handlers before tty settings. That way SIGTTOU is
	at its original value if sudo_term_restore() should fail.
	[38b7aea6b]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Document what happens when the on_suspend/on_resume callbacks return
	an error.
	[241174ea2]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/sudo_plugin.h,
	plugins/group_file/group_file.c, plugins/group_file/plugin_test.c,
	plugins/sudoers/group_plugin.c, plugins/sudoers/policy.c,
	plugins/system_group/system_group.c, src/hooks.c:
	No need to have version macros for hooks, callbacks and the sudoers
	group plugin. We can just use the main sudo API macros. The sudoers
	group plugin macros are preserved for source compatibility but are
	not documented.
	[edfeee6a7]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Properly escape the backslash before a comma in an example so the
	example rule is parsable by visudo.
	[c45559e6c]

	* src/tgetpass.c:
	Ignore callbacks if major version doesn't match.
	[2f1d67505]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/compat/timespec.h, lib/util/Makefile.in, lib/util/gettime.c,
	lib/util/utimens.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/visudo.c, src/Makefile.in, src/sudo_edit.c:
	Remove include/compat/timespec.h. Systems old enough to lack struct
	timespec are too old to build a modern sudo.
	[67183d74f]

	* NEWS:
	Bug #713
	[69d51b759]

	* src/exec.c:
	Fill in cstat if exec_setup() fails. Previously it was only filled
	in for an execve() failure. Fixes an unkillable sudo process when
	exec_setup() fails and I/O logging is enabled.
	[d08faa73a]

	* src/sudo.c:
	Fix running commands as non-root when neither setresuid() not
	setreuid() are available. At this point we are already root so
	setuid() must succeed. Bug #713
	[27c2a3d15]

	* src/sudo.c:
	Cast uid_t to unsigned int when printing as %u
	[0dbfbee03]

	* doc/UPGRADE:
	Mention time stamp file locking changes, fix some spelling.
	[2042aa2b7]

	* NEWS:
	Update with latest changes.
	[3fd97f6ba]

2015-09-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	Avoid touching the time stamp directory for "sudo -k command"
	[9dedc65a7]

	* plugins/sudoers/timestamp.c:
	Bring back the check for time stamp files that predate the boot
	time. Instead of truncating we now unlink the file since another
	process may be sleeping on the lock.
	[69050f934]

	* config.h.in, configure, configure.ac, plugins/sudoers/iolog.c,
	plugins/sudoers/timestamp.c:
	Use pread(2) and pwrite(2) where possible.
	[7d0a623fd]

	* src/exec_pty.c:
	sudo_term_* already restart themselve for all but SIGTTOU so we
	don't need to use our own restart loops.
	[70914b332]

	* lib/util/locking.c:
	Set errno to EINVAL if sudo_lock_* is called with a bad type.
	[448b18de2]

	* plugins/sudoers/timestamp.c:
	Adjust new locking to work when tty_tickets is disabled. We need to
	use per-tty/ppid locking to gain exclusive access to the tty for the
	password prompt but use a separate (short term) lock that is shared
	among all sudo processes for the user.
	[0487b6da9]

	* plugins/sudoers/timestamp.c:
	Allow the time stamp lock to be interrupted by signals.
	[f9b8a4381]

	* lib/util/term.c, plugins/sudoers/check.c,
	plugins/sudoers/sudoreplay.c, src/tgetpass.c:
	Implement suspend/resume callbacks for the conversation function. If
	suspended, close the timestamp file (dropping all locks). On resume,
	lock the record before reading the password.

	For this to work properly we need to be able to run th callback when
	tsetattr() suspends us, not just when the user does. To accomplish
	this the term_* functions now return EINTR if SIGTTOU would be
	generated. The caller now has to restart the term_* function (and
	send itself SIGTTOU) instead of it being done automatically.
	[0c70df5de]

	* config.h.in, configure, configure.ac, include/sudo_util.h,
	lib/util/locking.c, lib/util/util.exp.in, plugins/sudoers/check.c,
	plugins/sudoers/check.h, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/timestamp.c:
	Lock individual records in the timestamp file instead of the entire
	file. This will make it possible for multiple sudo processes using
	the same tty to serialize their timestamp lookups.
	[00142c91f]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/sudo_fatal.h,
	include/sudo_plugin.h, lib/util/fatal.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/check.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.h,
	src/conversation.c, src/sudo.c, src/sudo.h, src/sudo_plugin_int.h,
	src/tgetpass.c:
	Add a struct sudo_conv_callback that contains on_suspend and
	on_resume function pointer args plus a closure pointer and at it to
	the conversation function.
	[98a15d987]

2015-09-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/sudo_plugin.h:
	Make hook_version and hook_type unsigned.
	[af4729380]

2015-09-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/base64.c, plugins/sudoers/match.c,
	plugins/sudoers/regress/parser/check_base64.c:
	When decoding base64, avoid using '=' in the decoded temporary array
	as a sentinel as it can legitimately be present. Instead, just use
	the count of bytes stored in the temp array to determine which bytes
	to fold into the destination.
	[bfb1cead6]

2015-08-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, plugins/sudoers/sudoers.c, plugins/sudoers/visudo.c:
	When parsing def_editor, break out of the loop when we find the
	first valid editor. Bug #714
	[333faa20e]

2015-08-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	The condition for adding a missing newline at the end of sudoers was
	never reached. Keep track of the last character and write a newline
	character if when copying to the temp file. Found by Radovan Sroka.
	[7df248716]

	* plugins/sudoers/sudoers.c, plugins/sudoers/visudo.c:
	Remove extraneous while() from botched do {} while() loop conversion
	to use sudo_strsplit. Noticed by Radovan Sroka.
	[7ef9b5827]

2015-08-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sudo_auth.c:
	In sudo_pam_begin_session() and sudo_pam_end_session() return
	AUTH_FATAL on error, not AUTH_FAILURE. In sudo_auth_begin_session()
	treat anything other than AUTH_SUCCESS as a fatal error.
	[2b6085760]

	* doc/CONTRIBUTORS, src/exec.c, src/exec_pty.c:
	Linux sets si_pid in struct siginfo to 0 when the process that sent
	the signal is in a different container since the PID namespaces in
	different conatiners are separate. Avoid looking up the process
	group by id when si_pid is 0 since getpgid(0) returns the process
	group of the current process. Since sudo ignores signals sent by
	processes in its own process group, this had the effect of ignoring
	signals sent from other containers. From Maarten de Vries
	[13869d349]

	* plugins/sudoers/auth/pam.c:
	Sprinkle some debugging.
	[db5376001]

2015-08-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.man.in, doc/sudo.mdoc.in:
	Document that sudo uses the real uid to map from uid to passwd file
	user name.
	[ad9a51bd9]

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in:
	disable_coredump can be set to no on modern OSes without security
	consequences.
	[b2f1bbfb0]

2015-08-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Emphasis on the never.
	[f1053af3b]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Explicitly tell people not to grant sudoedit to directories the user
	can write to. While sudoedit will no longer open symbolic links,
	hard links are still an issue.
	[d4f1aeb19]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Add warning about writable directories and sudo/sudoedit.
	[c12dd68d1]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Emphasize that wildcards are not regexps. Bug #692
	[796911b3f]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Emphasize that wildcards in command line arguments are dangerous.
	Document the failings of the passwd example on GNU systems. Bug #691
	[329a8dee8]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Escape the colons in [[:alpha:]] as required by sudoers.
	[dc5ccf473]

	* po/sudo.pot, src/sudo_edit.c:
	Change warning when user tries to sudoedit a symbolic link.
	[2fbce103f]

2015-08-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[531bcc8aa]

	* doc/sudo.conf.cat, doc/sudoers.ldap.cat, doc/sudoreplay.cat,
	doc/visudo.cat:
	regen
	[5b2ea42d4]

	* doc/UPGRADE, doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, include/sudo_compat.h, include/sudo_plugin.h,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/policy.c,
	plugins/sudoers/regress/sudoers/test1.in,
	plugins/sudoers/regress/sudoers/test1.json.ok,
	plugins/sudoers/regress/sudoers/test1.out.ok,
	plugins/sudoers/regress/sudoers/test1.toke.ok,
	plugins/sudoers/sudoers_version.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/visudo_json.c, src/sesh.c, src/sudo.c, src/sudo.h,
	src/sudo_edit.c:
	Do not follow symbolic links in sudoedit by default. This behavior
	can be controlled by the sudoedit_follow Defaults flag as well as
	the FOLLOW/NOFOLLOW tags.
	[3354d27a1]

	* NEWS, aclocal.m4, configure, configure.ac:
	Sudo 1.8.15
	[079167d2c]

	* MANIFEST:
	add .json regress files to MANIFEST
	[f11e02ddd]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/sudoers/test1.json.ok,
	plugins/sudoers/regress/sudoers/test10.json.ok,
	plugins/sudoers/regress/sudoers/test11.json.ok,
	plugins/sudoers/regress/sudoers/test12.json.ok,
	plugins/sudoers/regress/sudoers/test13.json.ok,
	plugins/sudoers/regress/sudoers/test14.json.ok,
	plugins/sudoers/regress/sudoers/test15.json.ok,
	plugins/sudoers/regress/sudoers/test16.json.ok,
	plugins/sudoers/regress/sudoers/test2.json.ok,
	plugins/sudoers/regress/sudoers/test3.json.ok,
	plugins/sudoers/regress/sudoers/test4.json.ok,
	plugins/sudoers/regress/sudoers/test5.json.ok,
	plugins/sudoers/regress/sudoers/test6.json.ok,
	plugins/sudoers/regress/sudoers/test7.json.ok,
	plugins/sudoers/regress/sudoers/test8.json.ok,
	plugins/sudoers/regress/sudoers/test9.json.ok:
	Check JSON output of sudoers test files too.
	[4501b7416]

2015-08-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Move comment to match moved code.
	[4abc13bfc]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	maxseq is an int not a string
	[e0969c162]

2015-08-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/preserve_fds.c:
	Include sys/types.h for id_t. Bug #711
	[918190fce]

2015-07-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/fnmatch.c:
	Avoid a potential out of bounds read found by enh while fuzzing with
	address sanitizer enabled.
	[1965da8c3]

2015-07-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	Set sssd lib location to /usr/lib64 on 64-bit RHEL/Centos. Bug #710
	[d536626b1]

2015-07-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS:
	Add Jakub Wilk
	[01bfae5ba]

2015-07-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS, src/Makefile.in:
	The init.d files are generated from a .in file so we need to install
	from top_builddir not top_srcdir. From Ross Burton. Bug #708
	[ddd35459c]

2015-07-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/term.c:
	Replace two "return 0" with debug_return_bool(false).
	[e941f97eb]

	* src/ttyname.c:
	fix typo in previous commit
	[0765f5fe7]

	* NEWS, configure, configure.ac:
	Sudo 1.8.14p3
	[620f8a33e]

2015-07-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	Fix errno value from get_process_ttyname() when no tty is present.
	[83d8cbf81]

	* src/ttyname.c:
	On AIX, only convert the tty device number from dev64_t to dev32_t
	if dev_t is 32-bits.
	[aeaa6a611]

2015-07-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.ac:
	Sudo 1.8.14p2
	[ef47c692c]

	* plugins/sudoers/timestamp.c:
	Fix creation of the timestamp file; bug #704
	[8f8485797]

2015-07-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/regress/ttyname/check_ttyname.c, src/sudo.c, src/sudo.h,
	src/ttyname.c:
	Avoid needless memory allocation when resolving the tty name.
	[d96f8bcab]

2015-07-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.ac:
	Sudo 1.8.14p1
	[c0b8e7148]

	* plugins/sudoers/sssd.c:
	Fix typo in sudo_sss_attrcpy() that caused a memory allocation
	error.
	[db8607fe4]

2015-07-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/ja.mo, plugins/sudoers/po/uk.mo,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/zh_CN.mo:
	rebuild
	[6eb4d142e]

2015-07-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/lbuf.c, plugins/sudoers/env.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/interfaces.c,
	plugins/sudoers/match.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/redblack.c, src/hooks.c, src/net_ifs.c, src/sudo.c:
	Add some debugging printfs when malloc fails and we don't have an
	explicit call to sudo_warnx().
	[d4211081c]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c:
	Add missing warnings for memory allocation failure. Add function
	name to memory allocation warnings.
	[108bfb7af]

	* lib/util/parseln.c:
	Return -1 if realloc() fails.
	[3c644f5bc]

	* lib/util/event.c, lib/util/event_poll.c, lib/util/event_select.c:
	Add line number to debug log for memory allocation errors.
	[f2f5c2949]

	* plugins/sudoers/auth/pam.c:
	Add warning if calloc() fails. Add debugging for other unexpected
	errors.
	[7187c19c8]

	* plugins/sudoers/ldap.c:
	Add missing check for calloc(3) return value.
	[ff5b6dbb6]

2015-07-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document that the values printed by "sudo -V" are affected by
	Defaults settings in sudoers.
	[5125f82c4]

2015-07-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/group_plugin.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/sssd.c, src/load_plugins.c:
	Avoid calling dlerror() multiple times since it clear the error
	status after printing the error. Problem caused by
	sudo_warn/sudo_fatal being macros...
	[374146f70]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Attempt to clarify the conditions under which MAIL and HOME are set
	to the target user.
	[42666204e]

2015-07-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	Better checks for the libaudit package for Debian and error out if
	we can't figure it out.
	[4870060e9]

	* mkpkg:
	Fix linux_audit setting on non-multiarch Debian.
	[d11ffce66]

	* sudo.pp:
	Fix typo that broke the linux_audit dependency on Debian.
	[246063609]

	* NEWS:
	Mention /proc/stat btime fix.
	[2f00f170f]

	* config.h.in, configure, configure.ac, lib/util/getaddrinfo.c,
	plugins/sudoers/interfaces.c, plugins/sudoers/match_addr.c,
	src/net_ifs.c:
	Solaris 2.6 has the prototypes for inet_pton() and inet_ntop() in
	resolv.h.
	[43a57126e]

	* plugins/sudoers/boottime.c:
	Sprinkle debugging for boottime.
	[b73d96804]

	* mkpkg:
	The old Solaris /bin/sh doesn't support POSIX $( .. ) syntax, use
	backquotes instead.
	[6c9e92aba]

2015-07-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg, sudo.pp:
	Only use --with-sssd-lib on Debian/Ubuntu w/ multipackage. Use
	dpkg-query to determine the name of the audit package for proper
	dependencies.
	[2d0699a07]

	* mkpkg, plugins/sudoers/sudoers.in, sudo.pp:
	Update Debian/Ubuntu packages to be more like the vendor ones. One
	notable exception is that sudo.ws packages use /var/run, not
	/var/lib for timestamp files.
	[c3b4e4ce3]

	* plugins/sudoers/boottime.c:
	Strip newline from /proc/stat btime line to avoid a strtonum()
	failure. From Jakub Wilk.
	[06ad0f642]

	* src/exec_pty.c:
	In io_callback() service writes before reads. That way, if both
	SUDO_EV_READ and SUDO_EV_WRITE are set and read() returns 0 (EOF) we
	don't close the fd before the write() is performed.

	If the write() returns EPIPE, ENXIO, EIO or EBADF, clear
	SUDO_EV_READ before we close the fd to avoid calling read() on a
	closed fd.
	[61182c87e]

2015-07-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/regress/sudo_conf/conf_test.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c, src/sesh.c, src/sudo.c:
	Check sudo_conf_read() return value and exit on fatal error (a
	warning was already printed by sudo_conf_read()).
	[445e6f2e9]

	* NEWS:
	Mention double-quoted sudoOption value support.
	[4620bc31c]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Add support for parsing quoted strings in a sudoOption just like
	sudoers Defaults settings.
	[ea85db3ec]

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po, po/da.mo,
	po/da.po:
	Sync with translationproject.org
	[e3586e2a4]

2015-07-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update year.
	[d0be01517]

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po, po/de.mo,
	po/de.po, po/nb.mo, po/nb.po:
	Sync with translationproject.org
	[d4dcc6505]

	* src/sudo.c:
	Fix utmp setup broken by commit be0ca60facf8
	[854c08495]

2015-07-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/ja.po, plugins/sudoers/po/pl.mo,
	plugins/sudoers/po/pl.po, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.po, plugins/sudoers/po/zh_CN.po, po/cs.mo,
	po/cs.po, po/fr.mo, po/fr.po, po/it.mo, po/it.po, po/pl.mo,
	po/pl.po:
	Sync with translationproject.org
	[ef69b7c73]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[b3353b99d]

	* plugins/sudoers/logging.c:
	Fix typo in error message.
	[701534c63]

2015-07-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Bug #702 is the AIX timespec issue.
	[7583e8d76]

	* config.h.in, configure, configure.ac, lib/util/closefrom.c,
	lib/util/getcwd.c, lib/util/glob.c, plugins/sudoers/match.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, src/ttyname.c:
	We require POSIX so no need to conditionally include dirent.h. Add a
	check for d_namlen and use the result in the NAMLEN macro.
	[d77941c2b]

	* lib/util/event.c, lib/util/event_poll.c, lib/util/event_select.c,
	lib/util/getcwd.c, lib/util/gettime.c, lib/util/glob.c,
	lib/util/lbuf.c, lib/util/locking.c, lib/util/mktemp.c,
	lib/util/parseln.c, lib/util/secure_path.c, lib/util/setgroups.c,
	lib/util/sudo_conf.c, lib/util/sudo_debug.c, lib/util/ttysize.c,
	plugins/group_file/group_file.c, plugins/sample/sample_plugin.c,
	plugins/sudoers/alias.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/check.c, plugins/sudoers/defaults.c,
	plugins/sudoers/editor.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/getspwuid.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/interfaces.c, plugins/sudoers/iolog.c,
	plugins/sudoers/ldap.c, plugins/sudoers/logging.c,
	plugins/sudoers/match.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers_debug.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_json.c, plugins/system_group/system_group.c,
	src/conversation.c, src/exec.c, src/exec_common.c, src/exec_pty.c,
	src/get_pty.c, src/hooks.c, src/load_plugins.c, src/net_ifs.c,
	src/openbsd.c, src/parse_args.c, src/preserve_fds.c, src/signal.c,
	src/solaris.c, src/sudo.c, src/sudo_edit.c, src/sudo_noexec.c,
	src/tgetpass.c, src/ttyname.c, src/utmp.c:
	There's no need to conditionalize the #include <unistd.h>, we
	require a POSIX system.
	[0b241088b]

	* include/sudo_compat.h:
	Remove some compatibilty defines that should no longer be needed.
	[540b09b32]

2015-06-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Final changes in 1.8.14
	[a89dd2f46]

	* include/sudo_compat.h:
	Need to include stddef.h to get rsize_t on Mac OS X for
	sudo_memset_s() prototype.
	[8f9aa5af2]

	* lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/strsplit/strsplit_test.c:
	Add missing exit value.
	[5e695d4cd]

	* lib/util/regress/mktemp/mktemp_test.c:
	Add missing fcntl.h include.
	[662f9ec56]

	* configure, configure.ac:
	Do check for inet_pton before inet_ntop since we may need to record
	dependent libraries for inet_pton when linking our getaddrinfo
	replacement.
	[433c3dca5]

	* include/sudo_debug.h, lib/util/sudo_debug.c:
	Fix build on compilers w/o __func__ or __FUNCTION__
	[105f199f6]

	* lib/util/util.exp.in:
	Remove sudo_evasprintf_v1, missed during alloc.c removal.
	[44f7ed3b1]

	* lib/util/snprintf.c:
	Add missing fcntl.h include.
	[b756b6a11]

	* config.h.in, configure, configure.ac:
	Add check for inline support.
	[d87a0a4aa]

2015-06-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/LICENSE:
	Add reallocarray.c license.
	[032729f1b]

2015-06-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS:
	Fix entry for Joel Pelaez Jorge.
	[2b4e44f33]

2015-06-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_lbuf.h, lib/util/lbuf.c, lib/util/util.exp.in,
	plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudo_nss.c:
	Add an error flag to the lbuf struct to simplify error checking.
	Callers of the lbuf functions now check the error flag to tell if a
	memory allocation error ocurred.
	[54f9de6cc]

	* plugins/sudoers/parse.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudo_nss.h, plugins/sudoers/sudoers.h:
	display_privs() and display_cmnd() may need to return -1 on error.
	[275141346]

2015-06-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Return -1, not 0 from sudoers when there is an error (as opposed to
	a policy denial).
	[d3bc17a61]

	* plugins/sudoers/check.c, plugins/sudoers/check.h,
	plugins/sudoers/ldap.c, plugins/sudoers/logging.c,
	plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/timestamp.c:
	Check restore_perms() return value in all cases, pushing the return
	value back up the call stack.
	[81f94499b]

	* doc/CONTRIBUTORS:
	Add Joel Pelaez Jorge
	[c5ed416a7]

	* plugins/sudoers/auth/pam.c:
	When checking whether the PAM prompt matches "Password:", also check
	for the untranslated version. The PAM module might not be using the
	localized string even though it exists. From Joel Pelaez Jorge.
	Fixes Bug #701
	[ea5ce39c9]

2015-06-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Silence clang analyzer warning on glibc systems where the first
	argument to qsort() is marked as non-NULL. Also change some counters
	from into to unsigned int and two flags from int to bool.
	[d84757951]

2015-06-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	Silence clang analyzer warning on glibc systems where the first
	argument to qsort() is marked as non-NULL.
	[aedaac8cc]

	* include/sudo_compat.h, include/sudo_debug.h, include/sudo_util.h,
	src/preserve_fds.c:
	Use our own bitmap macros instead of borrowing the ones from select.
	[a76b93e23]

	* src/ttyname.c:
	Quiet clang analyzer false positive.
	[7b086b684]

	* src/sesh.c:
	Fix uninitialized variables warnings in error case when src file
	cannot be opened. At least one of these is a false positive.
	[2aeeb54f3]

	* lib/util/sudo_debug.c:
	Must call round_nfds() with fd+1 since it takes a count not the fd
	number. In other words, the lowest value is 1, not 0.
	[d36e46cb6]

2015-06-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/getline.c, plugins/sudoers/toke_util.c:
	It's safe to rely on C89 semantics for realloc(NULL, size).
	[d7224ea50]

	* plugins/sudoers/env.c:
	malloc() sets errno to ENOMEM on failure so we don't need to set it
	explicitly.
	[887a76489]

	* include/sudo_compat.h:
	No longer need __malloc_like
	[f6627e70b]

	* lib/util/util.exp.in:
	Remove symbols from the now-removed alloc.c.
	[4da6468d5]

	* include/sudo_compat.h, lib/util/aix.c, lib/util/closefrom.c,
	lib/util/event.c, lib/util/event_poll.c, lib/util/event_select.c,
	lib/util/getaddrinfo.c, lib/util/getcwd.c, lib/util/getgrouplist.c,
	lib/util/gethostname.c, lib/util/getline.c, lib/util/getopt_long.c,
	lib/util/gettime.c, lib/util/gidlist.c, lib/util/glob.c,
	lib/util/key_val.c, lib/util/lbuf.c, lib/util/locking.c,
	lib/util/mksiglist.c, lib/util/mksigname.c, lib/util/parseln.c,
	lib/util/progname.c, lib/util/pw_dup.c, lib/util/reallocarray.c,
	lib/util/regress/atofoo/atofoo_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c, lib/util/setgroups.c,
	lib/util/sha2.c, lib/util/sig2str.c, lib/util/snprintf.c,
	lib/util/strndup.c, lib/util/strsplit.c, lib/util/strtobool.c,
	lib/util/strtoid.c, lib/util/strtomode.c, lib/util/strtonum.c,
	lib/util/sudo_conf.c, lib/util/sudo_debug.c, lib/util/sudo_dso.c,
	lib/util/term.c, lib/util/ttysize.c, plugins/group_file/getgrent.c,
	plugins/group_file/group_file.c, plugins/group_file/plugin_test.c,
	plugins/sample/sample_plugin.c, plugins/sudoers/alias.c,
	plugins/sudoers/audit.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/base64.c, plugins/sudoers/boottime.c,
	plugins/sudoers/check.c, plugins/sudoers/defaults.c,
	plugins/sudoers/editor.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/getdate.c,
	plugins/sudoers/getdate.y, plugins/sudoers/getspwuid.c,
	plugins/sudoers/group_plugin.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/logwrap.c,
	plugins/sudoers/match.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/redblack.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_hexchar.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudo_printf.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/timestr.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/tsgetgrpw.c,
	plugins/sudoers/visudo.c, plugins/sudoers/visudo_json.c,
	plugins/system_group/system_group.c, src/conversation.c,
	src/env_hooks.c, src/exec.c, src/exec_common.c, src/exec_pty.c,
	src/get_pty.c, src/hooks.c, src/load_plugins.c, src/net_ifs.c,
	src/openbsd.c, src/parse_args.c, src/preserve_fds.c,
	src/regress/ttyname/check_ttyname.c, src/selinux.c, src/signal.c,
	src/solaris.c, src/sudo.c, src/sudo_edit.c, src/tgetpass.c,
	src/ttyname.c, src/utmp.c:
	Only include stddef.h where it is needed.
	[4a07b472f]

2015-06-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[941bfe309]

	* lib/util/sudo_conf.c, plugins/sudoers/locale.c:
	Better handling of setlocale() returning NULL.
	[d8dd6512c]

	* lib/util/aix.c, lib/util/gidlist.c, lib/util/sudo_conf.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/defaults.c, plugins/sudoers/editor.c,
	plugins/sudoers/env.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/ldap.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/logging.c, plugins/sudoers/match.c,
	plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c, src/conversation.c, src/exec.c,
	src/exec_common.c, src/exec_pty.c, src/load_plugins.c,
	src/parse_args.c, src/preserve_fds.c, src/selinux.c, src/sesh.c,
	src/sudo.c, src/sudo_edit.c:
	Add function name to "unable to allocate memory" warnings.
	[c36415417]

	* configure, configure.ac, include/sudo_compat.h, lib/util/aix.c,
	lib/util/closefrom.c, lib/util/event.c, lib/util/event_poll.c,
	lib/util/event_select.c, lib/util/getaddrinfo.c, lib/util/getcwd.c,
	lib/util/getgrouplist.c, lib/util/gethostname.c, lib/util/getline.c,
	lib/util/getopt_long.c, lib/util/gettime.c, lib/util/gidlist.c,
	lib/util/glob.c, lib/util/key_val.c, lib/util/lbuf.c,
	lib/util/locking.c, lib/util/mksiglist.c, lib/util/mksigname.c,
	lib/util/parseln.c, lib/util/progname.c, lib/util/pw_dup.c,
	lib/util/reallocarray.c, lib/util/regress/atofoo/atofoo_test.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c, lib/util/setgroups.c,
	lib/util/sha2.c, lib/util/sig2str.c, lib/util/snprintf.c,
	lib/util/strndup.c, lib/util/strsplit.c, lib/util/strtobool.c,
	lib/util/strtoid.c, lib/util/strtomode.c, lib/util/strtonum.c,
	lib/util/sudo_conf.c, lib/util/sudo_debug.c, lib/util/sudo_dso.c,
	lib/util/term.c, lib/util/ttysize.c, plugins/group_file/getgrent.c,
	plugins/group_file/group_file.c, plugins/sample/sample_plugin.c,
	plugins/sudoers/alias.c, plugins/sudoers/audit.c,
	plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/base64.c,
	plugins/sudoers/boottime.c, plugins/sudoers/check.c,
	plugins/sudoers/defaults.c, plugins/sudoers/editor.c,
	plugins/sudoers/env.c, plugins/sudoers/find_path.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/getspwuid.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/interfaces.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_path.c, plugins/sudoers/ldap.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/logwrap.c,
	plugins/sudoers/match.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/redblack.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/regress/parser/check_hexchar.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudo_printf.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/timestr.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/tsgetgrpw.c,
	plugins/sudoers/visudo.c, plugins/sudoers/visudo_json.c,
	plugins/system_group/system_group.c, src/conversation.c,
	src/env_hooks.c, src/exec.c, src/exec_common.c, src/exec_pty.c,
	src/get_pty.c, src/hooks.c, src/load_plugins.c, src/net_ifs.c,
	src/openbsd.c, src/parse_args.c, src/preserve_fds.c,
	src/regress/ttyname/check_ttyname.c, src/signal.c, src/solaris.c,
	src/sudo.c, src/sudo_edit.c, src/tgetpass.c, src/ttyname.c,
	src/utmp.c:
	We require ANSI C so stop using the obsolete STDC_HEADERS.
	[dc883f245]

	* config.h.in, configure, configure.ac:
	Add back _REENTRANT define on HP-UX to expose strtok_r on some
	versions. We may need to define it on other systems too.
	[09b07fe21]

	* lib/util/getgrouplist.c, lib/util/regress/glob/globtest.c,
	lib/util/sudo_debug.c, plugins/group_file/getgrent.c,
	plugins/group_file/plugin_test.c, plugins/sample/sample_plugin.c,
	plugins/sudoers/group_plugin.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/ldap.c, plugins/sudoers/logging.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/tsgetgrpw.c:
	Use strtok_r() instead of strtok()
	[e2328479d]

	* configure, configure.ac:
	Fix check for strnlen() when cross-compiling.
	[048e251ae]

	* plugins/sudoers/interfaces.c:
	Use sudo_strsplit() in dump_interfaces.
	[69a4af9e7]

2015-06-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/inet_pton.c, lib/util/key_val.c, lib/util/lbuf.c,
	lib/util/locking.c, lib/util/parseln.c,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/progname/progname_test.c,
	lib/util/regress/strsplit/strsplit_test.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c, lib/util/sha2.c,
	lib/util/snprintf.c, lib/util/strtobool.c, lib/util/term.c,
	plugins/group_file/getgrent.c, plugins/group_file/group_file.c,
	plugins/sample/sample_plugin.c, plugins/sudoers/boottime.c,
	plugins/sudoers/editor.c, plugins/sudoers/getdate.c,
	plugins/sudoers/getdate.y, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog_path.c, plugins/sudoers/policy.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_hexchar.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/tsgetgrpw.c, plugins/system_group/system_group.c,
	src/conversation.c, src/exec_pty.c, src/net_ifs.c, src/openbsd.c,
	src/preserve_fds.c, src/regress/ttyname/check_ttyname.c,
	src/solaris.c, src/sudo.c, src/tgetpass.c, src/ttyname.c,
	src/utmp.c:
	Remove obsolete memory.h include.
	[4f9cabd00]

	* config.h.in, configure, configure.ac, lib/util/getcwd.c,
	lib/util/gethostname.c, lib/util/glob.c, lib/util/locking.c,
	lib/util/parseln.c, lib/util/pw_dup.c, lib/util/reallocarray.c,
	lib/util/snprintf.c, lib/util/strndup.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	src/env_hooks.c:
	Remove support for the obsolete malloc.h header.
	[a50555faa]

	* config.h.in, configure, configure.ac, plugins/sudoers/defaults.c,
	plugins/sudoers/logging.c:
	Remove BROKEN_SYSLOG define which was for obsolete versions of
	HP-UX. Remove last remnants of 4.2BSD syslog support.
	[138aa2ccd]

	* lib/util/sudo_conf.c:
	Use sudo_strsplit() instead of doing the equivalent manually.
	[86fb8e15a]

	* lib/util/regress/strsplit/strsplit_test.c:
	Test strsplit behavior with an empty string.
	[db3012645]

	* lib/util/Makefile.in, lib/zlib/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Allow "make LIBTOOL=/path/to/libtool" to work properly.
	[ea744042e]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/editor.c,
	plugins/sudoers/find_path.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/visudo.c:
	Use a common function for resolviong the user's editor in sudoedit
	and visudo. The find_path() function now returns a dynamically
	allocated path instead of using a static string.
	[ac13264b4]

	* config.h.in, configure, configure.ac, lib/util/Makefile.in,
	lib/zlib/Makefile.in, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Replace use of OSDEFS with config.h defines. Rename DEFS in
	Makefile.in to CPPDEFS and include in CPPFLAGS. Bring back
	_BSD_SOURCE as a config.h define. Remove obsolescent _REENTRANT
	define.
	[a38253b10]

2015-06-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, include/sudo_alloc.h, lib/util/Makefile.in,
	lib/util/alloc.c:
	Remove now-unused sudo_alloc.h and alloc.c
	[4be97a6c4]

	* plugins/sudoers/Makefile.in, src/Makefile.in, src/conversation.c,
	src/env_hooks.c, src/exec.c, src/exec_common.c, src/exec_pty.c,
	src/hooks.c, src/load_plugins.c, src/net_ifs.c, src/parse_args.c,
	src/preserve_fds.c, src/regress/ttyname/check_ttyname.c,
	src/selinux.c, src/sesh.c, src/sudo.c, src/sudo.h, src/sudo_edit.c,
	src/ttyname.c:
	Avoid using exiting allocators in the front end.
	[cb63ca701]

	* include/sudo_conf.h, include/sudo_lbuf.h, lib/util/Makefile.in,
	lib/util/aix.c, lib/util/gidlist.c, lib/util/lbuf.c,
	lib/util/sudo_conf.c, lib/util/sudo_debug.c:
	Use non-exiting allocators in libsudo_util.
	[5ce50a885]

	* plugins/sudoers/ldap.c, plugins/sudoers/logging.c:
	Remove asprintf() return value warnings.
	[ec7e467c5]

	* config.h.in, configure, configure.ac:
	Use AC_FUNC_STRNLEN to check for broken strnlen() on AIX. This
	requires that we use AC_USE_SYSTEM_EXTENSIONS so remove things from
	OSDEFS that are enabled by AC_USE_SYSTEM_EXTENSIONS.
	[4c7a264f1]

	* plugins/sudoers/ldap.c:
	Remove extraneous semicolons in CHECK_* macros.
	[f02874fe5]

	* plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	Remove remaining SUDO_MAIN remnants.
	[07f981445]

	* plugins/sudoers/Makefile.in, plugins/sudoers/alias.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/check.c, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/getspwuid.c,
	plugins/sudoers/group_plugin.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/interfaces.h, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_path.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/locale.c, plugins/sudoers/logging.h,
	plugins/sudoers/match.c, plugins/sudoers/parse.c,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoers_debug.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Use non-exiting allocatings in the sudoers plugin.
	[d004b02fc]

2015-06-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sssd.c:
	Use non-exiting allocators in the sudoers SSSD backend.
	[6da04821d]

	* plugins/sudoers/ldap.c:
	Use non-exiting allocators in the sudoers LDAP backend.
	[5413637ae]

	* lib/util/Makefile.in:
	regen dependencies
	[2c63f1b5b]

2015-06-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, lib/util/Makefile.in, mkdep.pl:
	Add missing dependency info for reallocarray.lo in
	lib/util/Makefile.in and regen configure to match last configure.ac
	change.
	[23d72149b]

	* plugins/sudoers/ldap.c:
	Use \28 and \29 instead of \( and \) in the ldap query as per RFC
	2254. Fixes netgroup queries on AIX. From Steven Soulen.
	[ea34d0101]

2015-06-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/glob.c:
	Move pattern length check until after we have initialized the glob_t
	so we can call globfree() even on error. From Frank Denis.
	[f43f53098]

2015-06-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c, src/sudo.c:
	We need to unlimit RLIMIT_NPROC in sudoers as well as the sudo front
	end since set_perms() and restore_perms change the read uid and may
	fail with EAGAIN on Linux kernels prior to 3.1.
	[25917e435]

2015-06-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Fix underlining of "root" in -u option descriptions. Bug #699
	[db8aae12e]

	* doc/UPGRADE, src/load_plugins.c:
	Remove support for converting plugin.so -> plugin.sl on HP-UX when
	plugin.so can not be found. This was a temporary hack for using an
	older (pre 1.8.7) sudoers plugin with a newer sudo front-end.
	[7107ce4d1]

2015-06-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/event.c, lib/util/event_select.c:
	Add debugging output on memory alloc failure. Add missing checks in
	event_select.c for reallocarray() failure.
	[c0fa0e248]

	* lib/util/event_poll.c:
	Use non-exiting allocators.
	[564eb7e7d]

2015-06-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Bring back VALIDATE_ERROR which will be used in the case of memory
	allocation errors.
	[8eff57f07]

2015-06-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/snprintf.c:
	If asprintf() or vasprintf() fail, set the dest pointer to NULL like
	BSD and Solaris do. This appears to be the direction glibc is going
	as well.
	[9884df8c9]

2015-05-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/env.c:
	Use a stack buffer for the validate_env_vars() error message.
	[7a1cf7f53]

2015-05-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/fatal.c:
	Fix typo/thinko in static buffer conversion; use vsnprintf() not
	snprintf()
	[1100d91e8]

	* plugins/sudoers/ldap.c:
	Fix old gcc2 variadic macro support.
	[dee7a6dda]

	* plugins/sudoers/visudo.c:
	Restore old behavior where visudo prevents you from making the main
	sudoers file zero length.
	[21f5753b7]

	* plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/sudoers.c:
	Non-exiting allocators for log functions. If log_allowed() fails the
	user may not run the command. We don't try to return early for
	log_failure(), log_auth_failure() or log_denial() as we would not
	run the command in that case.
	[9d1c408b7]

	* plugins/sudoers/alias.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c:
	Use non-exiting allocators in the parser (much of it already did).
	[4da9e1097]

	* lib/util/aix.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil_impl.c:
	Use non-existing allocators in the passwd/group cache functions.
	[6b7be032a]

	* MANIFEST, configure.ac, lib/util/alloc.c, lib/util/reallocarray.c:
	Add standalone reallocarray.c from OpenBSD instead of rolling our
	own.
	[40d72f26e]

	* plugins/sudoers/alias.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/iolog.c,
	plugins/sudoers/parse.h, plugins/sudoers/pwutil.c,
	plugins/sudoers/redblack.c, plugins/sudoers/redblack.h,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Use non-exiting allocators in the redblack tree and fix the fallout.
	Also switch to non-exiting allocators in affected code blocks.
	[2bf454b74]

	* plugins/sudoers/alias.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/parse.h:
	The error string returned by alias_add should be const.
	[46770c958]

	* plugins/sudoers/policy.c:
	Fix typo, efree vs. free.
	[c5e4c3055]

	* plugins/sudoers/policy.c, src/exec_common.c, src/sudo.c:
	Add a few missing sudo_new_key_val() return value checks. Also use
	non-exiting allocators for consistency.
	[4131449ff]

2015-05-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, lib/util/Makefile.in,
	lib/util/regress/parse_gids/parse_gids_test.c,
	lib/util/regress/strsplit/strsplit_test.c:
	Add unit tests for strsplit and parse_gid_list.
	[8c3fd195d]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/strsplit.c, lib/util/util.exp.in,
	plugins/sudoers/sudoers.c:
	Add sudo_strsplit(), similar to strtok_r() but non-destructive and
	operates on non-C strings (requires a length parameter).
	[8d1708434]

2015-05-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/sia.c:
	Use reallocarray() instead of sudo_emallocarray() and return an
	error on allocation failure.
	[69e62f316]

	* plugins/sudoers/auth/kerb5.c:
	In our krb5_get_init_creds_opt_alloc() replacement use malloc()
	instead of sudo_emalloc() and return KRB5_CC_NOMEM on allocation
	failure. Only old versions of Kerberos V will need this.
	[212ff5d96]

	* lib/util/event.c, lib/util/event_select.c:
	Use non-exiting allocators.
	[6741fb537]

2015-05-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/fatal.c:
	Use a static buffer for sudo_warn/sudo_fatal messages where
	possible.
	[f18aa478d]

	* include/sudo_compat.h:
	Fix sudo_strnlen() prototype.
	[11840308c]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/Makefile.in, lib/util/strndup.c,
	mkdep.pl:
	Add strndup() for those without it. As strndup.c uses strnlen(), use
	our own if it is missing.
	[82286d8b7]

	* lib/util/strnlen.c:
	Add missing sudo_ prefix and include sudo_compat.h.
	[8437e3606]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, lib/util/strnlen.c:
	Add strnlen() replacement needed for glob.c. Only used if no glob()
	and no strnlen().
	[49d56f323]

2015-05-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.h, plugins/sudoers/sudoers.h:
	Get rid of SUDO_MAIN. Modern compilers don't warn about mixing
	extern and auto declarations unless they conflict.
	[04128f598]

	* config.h.in, configure.ac, include/compat/endian.h,
	include/compat/fnmatch.h, include/compat/getaddrinfo.h,
	include/compat/getopt.h, include/compat/glob.h,
	include/compat/nss_dbdefs.h, include/compat/sha2.h,
	include/compat/stdbool.h, include/compat/timespec.h,
	include/sudo_alloc.h, include/sudo_compat.h, include/sudo_conf.h,
	include/sudo_debug.h, include/sudo_dso.h, include/sudo_event.h,
	include/sudo_fatal.h, include/sudo_gettext.h, include/sudo_lbuf.h,
	include/sudo_plugin.h, include/sudo_queue.h, include/sudo_util.h,
	lib/util/fatal.c, plugins/sudoers/bsm_audit.h,
	plugins/sudoers/check.h, plugins/sudoers/defaults.h,
	plugins/sudoers/ins_2001.h, plugins/sudoers/ins_classic.h,
	plugins/sudoers/ins_csops.h, plugins/sudoers/ins_goons.h,
	plugins/sudoers/insults.h, plugins/sudoers/interfaces.h,
	plugins/sudoers/iolog.h, plugins/sudoers/linux_audit.h,
	plugins/sudoers/logging.h, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/pwutil.h,
	plugins/sudoers/redblack.c, plugins/sudoers/redblack.h,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/solaris_audit.h, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.h, plugins/sudoers/sudo_printf.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoers_debug.h, plugins/sudoers/sudoers_version.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.h, plugins/sudoers/toke.l,
	plugins/sudoers/visudo.c, src/net_ifs.c, src/sudo.h,
	src/sudo_exec.h, src/sudo_plugin_int.h, src/sudo_usage.h.in:
	Avoid using a leading underbar in defines as they are reserved in
	ISO C.
	[05a01d4c5]

	* Makefile.in, doc/Makefile.in, examples/Makefile.in,
	include/Makefile.in, lib/util/Makefile.in, lib/zlib/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/solaris_audit.c, plugins/sudoers/sssd.c,
	plugins/system_group/Makefile.in, src/Makefile.in, src/selinux.c:
	Add target for "make splint". A few files need extra guards to avoid
	errors on systems where they would not otherwise be compiled. No
	warnings from splint.
	[1298ea910]

2015-05-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.ac, src/sudo.c:
	There should be no need to check for tzset() as it is POSIX.
	[a40cf3e28]

	* configure, configure.ac:
	Add sudo_reallocarrary to util.exp.in if reallocarray is not found.
	[f1491fe13]

2015-05-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	NLS now works on Mac OS X properly.
	[5c03b6b45]

	* configure, configure.ac, src/Makefile.in:
	Force flat namespace on darwin to make the getenv() hooking work as
	it does on ELF.
	[0b1e027b1]

2015-05-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/alloc.c, lib/util/snprintf.c,
	plugins/sample/sample_plugin.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/redblack.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke_util.c:
	No need to cast malloc() return value.
	[cbcaaa299]

	* lib/util/getcwd.c, lib/util/getline.c, lib/util/glob.c,
	plugins/sudoers/env.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Use reallocarray where possible.
	[c75eb5bf0]

	* config.h.in, configure, configure.ac, include/sudo_compat.h,
	lib/util/alloc.c:
	Add reallocarray() for those without it.
	[3595807f4]

2015-05-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	The getenv() hook still doesn't work on Mac OS X.
	[0d418df03]

2015-05-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_fatal.h, lib/util/fatal.c:
	In sudo_warn_gettext_v1() call dgettext() not gettext() to make sure
	the domain is set correctly. The sudoers plugin uses its own text
	domain.
	[80cb630bc]

2015-05-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/Makefile.in:
	man pages should explicitly depend on config.status since it is used
	to substitute in variables/settings.
	[336b99ade]

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo_plugin.cat,
	doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoers.man.in,
	doc/sudoreplay.cat, doc/visudo.cat:
	regen
	[c525c5ca7]

	* NEWS, configure, configure.ac:
	Sudo 1.8.14
	[051bf0d55]

	* INSTALL, MANIFEST, aclocal.m4, config.h.in, configure,
	configure.ac, include/sudo_fatal.h, lib/util/Makefile.in,
	lib/util/fatal.c, lib/util/locale_weak.c, lib/util/util.exp.in,
	m4/ax_sys_weak_alias.m4, mkdep.pl, plugins/sudoers/Makefile.in,
	plugins/sudoers/locale.c, plugins/sudoers/logging.h,
	plugins/sudoers/sudoers.c, src/Makefile.in, src/locale_stub.c:
	Instead of trying to make weak functions work on all platforms, just
	use a registration function for a plugin-specific setlocale
	function. The sudoers version just wraps sudoers_setlocale().
	[8bc70a635]

	* src/parse_args.c:
	Fix indentation of -a flag help line.
	[fc7143760]

	* include/sudo_compat.h:
	Fix compilation when HAVE_DECL_SIG2STR_MAX is not defined.
	[6ab599415]

	* doc/Makefile.in:
	Add lint target to run "mandoc -Tlint" over the manuals.
	[0c77de559]

2015-05-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_compat.h:
	HAVE_DECL_SIG2STR_MAX is always defined so use a
	!HAVE_DECL_SIG2STR_MAX check instead of #ifndef.
	[4ae1bdf9c]

2015-05-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/tgetpass.c:
	Sync tty_present() with sudoers version.
	[166ee6879]

	* src/load_plugins.c:
	sudo_check_plugin() returns bool.
	[253008e62]

	* plugins/sudoers/match.c:
	In usergr_matches() matched should be bool but we have to take care
	to handle group_plugin_query() returning a value other than 0/1.
	[c80b9c945]

	* plugins/sudoers/ldap.c:
	sudo_ldap_check_non_unix_group() returns bool, not int.
	[d16434f97]

	* plugins/sudoers/logging.c:
	Convert two debug_return_int to debug_return_bool.
	[eea4e1afd]

	* include/sudo_debug.h, lib/util/sudo_debug.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/check.c,
	plugins/sudoers/env.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/match.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, src/sudo.c:
	Previously, debug_return_bool was the same as debug_return_int
	except that it logged true/false for 1/0. However, this appears to
	trigger a bug in some compilers. To avoid this, debug_return_bool
	now uses bool, not int. Callers that were passing it an int have
	been converted to use debug_return_int instead.
	[caf5d45e0]

	* src/get_pty.c, src/sudo.h:
	get_pty() should return bool
	[9c9ff3dc4]

	* src/sudo.h, src/tgetpass.c:
	Make tty_present static to tgetpass.c
	[d2624ffa9]

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Add configure check for SIG2STR_MAX, which may be missing on
	UnixWare.
	[5647736ef]

	* m4/ax_sys_weak_alias.m4:
	Need to quote $GCC as it may include arguments. From Tim Rice.
	[e1b67e617]

	* MANIFEST:
	Add missing m4/ax_sys_weak_alias.m4
	[ff806216f]

2015-04-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	There's no point in building i386 binaries for Mac OS X 10.7 and
	higher.
	[f5f5e17cb]

2015-04-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/fr.mo, plugins/sudoers/po/fr.po, po/ja.mo,
	po/ja.po:
	Sync with translationproject.org
	[ff89dde11]

2015-04-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/bsm_audit.c:
	Only fall back on AUE_DARWIN_sudo if au_preselect() fails.
	[8930db0e0]

2015-04-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/bsm_audit.c:
	Work around a problem on Mac OS X 10.10 which defines AUE_sudo but
	where au_preselect() only accepts AUE_DARWIN_sudo (the old value).
	[8a1838364]

2015-04-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/env_hooks.c:
	Don't use dlsym() to find the libc getenv() since this may allocate
	memory on some systems (glibc) which leads to a hang if malloc()
	calls getenv() (jemalloc).
	[3715ab57d]

	* src/sudo.c:
	Defer conversation initialization until right before plugins are
	initialized.
	[41f3666a1]

	* include/sudo_debug.h, src/sudo.c:
	Split variable declaration out of debug_decl into debug_decl_vars()
	so we can use it in main() when we know sudo_debug_enter() cannot
	succeed.
	[6f8af4d26]

2015-04-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c:
	When creating a passwd struct from a uid that is not in the passwd
	database, set pw_gid to the user's gid instead of whatever the user
	specified via the -g flag (or 0 if no -g).
	[e98778b2a]

2015-04-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Add some ldap_err2string() debugging when the LDAP search fails.
	Adapted from a diff from Steven Soulen.
	[3de14196c]

2015-04-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po, po/sr.mo,
	po/sr.po:
	Sync with translationproject.org
	[db7404898]

2015-04-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS:
	Add David Michael and Andrey Klyachkin.
	[28b64d296]

	* sudo.pp:
	Sync tmpfiles.d/sudo.conf with init.d/sudo.conf.in
	[02aa57c16]

	* include/sudo_util.h:
	Avoid struct assignment when stashing mtime since AIX at least uses
	a struct st_timespec that differs from struct timespec. From Andrey
	Klyachkin.
	[9240018ce]

2015-04-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Work around a bug in pp that caused a warning when exampledir is a
	subdir of docdir.
	[68339fa9c]

	* plugins/sudoers/solaris_audit.c:
	Add sys/types.h
	[a79f3790e]

	* lib/util/getopt_long.c, lib/util/mksiglist.c,
	lib/util/mksigname.c, lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/glob/globtest.c, lib/util/sha2.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_hexchar.c:
	Include sys/types.h instead of unistd.h to get uid_t and gid_t. Add
	missing include of sys/types.h to a few places.
	[eeca3b0ca]

2015-04-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	Remove unintended commit
	[7e1c2fa00]

	* init.d/sudo.conf.in:
	Add tmpfiles.d/sudo.conf template.
	[cfe7a4cb3]

2015-04-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* .hgignore, INSTALL, MANIFEST, Makefile.in, configure,
	configure.ac, mkpkg, src/Makefile.in, sudo.pp:
	Create template tmpfiles.d/sudo.conf for installation instead of
	creating one via echo commands in the Makefile.

	Add --enable-tmpfiles.d configure option to enable/disable use of
	tmpfiles.d and override the default directory.

	Use --disable-tmpfiles.d in mkpkg so we no longer need to ignore
	tmpfiles.d/sudo.conf in sudo.pp.
	[fa3552fa7]

2015-04-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, Makefile.in, configure, configure.ac,
	doc/sudoers.mdoc.in, examples/Makefile.in, mkpkg, sudo.pp:
	Make exampledir configurable and default to
	DATAROOTDIR/examples/sudo on BSD systems.
	[d297f5fd8]

2015-04-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Fix setting of pp_rpm_version when there is no patchlevel present.
	Also tighten up the regexp for pp_rpm_release.
	[6d63ca32f]

2015-04-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/Makefile.in, sudo.pp:
	Install /usr/lib/tmpfiles.d/sudo.conf on systems with systemd but do
	not package it. For packages we create /usr/lib/tmpfiles.d/sudo.conf
	as needed in the postinstall script.
	[f63896e7d]

2015-03-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in, doc/visudo.cat,
	doc/visudo.man.in, doc/visudo.mdoc.in:
	Fix "mandoc -Tlint" warnings. Sync AUTHORS section in man pages.
	Regenerate all man pages.
	[cd669526e]

	* lib/util/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Make libsudo_util depend on libintl instead of requiring users of
	libsudo_util to link with libintl directly. Bug #690
	[15037d3b7]

2015-03-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.c:
	Use saved errno in vlog_warning() before calling
	sudo_vwarn_nodebug(). Fixes the error message printed if set_perms()
	fails.
	[3b3098440]

2015-03-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update for 1.8.13 final.
	[cfeda97b0]

2015-03-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/env.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	For sudoedit, run the editor with the user's original environment as
	per the documentation (and as in sudo 1.7.x). Bug #688
	[be4872f69]

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po, po/fr.mo,
	po/fr.po:
	Sync with translationproject.org
	[d8d6fae79]

2015-03-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/term.c:
	Update function names in debug_decl.
	[8088806bd]

	* lib/util/term.c:
	Use TCSAFLUSH instead of TCSANOW in sudo_term_copy(). Be consistent
	with where we put TCSASOFT in the action flags.
	[ef1b2c3be]

2015-03-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	po/da.mo, po/da.po, po/fi.mo, po/fi.po, po/zh_CN.mo, po/zh_CN.po:
	Sync with translationproject.org
	[0600a0d0a]

2015-03-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/sha2.c:
	Include unistd.h since sudo_compat.h uses gid_t.
	[9f2241693]

2015-03-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, configure, configure.ac:
	Add --disable-weak-symbols option to disable use of weak symbols in
	libsudo_util.
	[5cfd0cff9]

	* configure:
	regen
	[1e724eac8]

	* m4/ax_sys_weak_alias.m4:
	When checking for weak aliases, check the gcc attribute format last
	since some C compilers just ignore unsupported attributes.
	[26f0d6d80]

	* sudo.pp:
	Update copyright year.
	[da092640b]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/it.mo,
	po/it.po, po/nb.mo, po/nb.po, po/pl.mo, po/pl.po, po/pt_BR.mo,
	po/pt_BR.po, po/uk.mo, po/uk.po, po/vi.mo, po/vi.po:
	Sync with translationproject.org
	[9896b2243]

	* configure, configure.ac, include/compat/sha2.h:
	Fix symbol name collision with systems that have their own sha2
	implementation. This can result in PAM using the wrong sha2
	implementation on Solaris systems configured to use SHA512 for
	passwords.
	[35dcb05a5]

	* src/Makefile.in:
	Use SSP_LDFLAGS when linking sudo_noexec.la
	[2dd0540ad]

2015-03-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, config.h.in, configure, configure.ac,
	include/compat/utime.h, lib/util/Makefile.in, lib/util/utimens.c:
	Remove compat/utime.h, it was only useful for ancient systems that
	are no longer capable of compiling sudo.
	[a7edf7d98]

2015-03-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac, lib/util/Makefile.in:
	Link libsudo_util with -lrt on systems where clock_gettime is in
	-lrt.
	[1592192ce]

	* NEWS:
	Update.
	[480d26711]

	* lib/util/strlcat.c, lib/util/strlcpy.c:
	Update OpenBSD CVS Ids
	[30adf83b1]

	* lib/util/strlcat.c:
	Make comment match code.
	[5647a1ac4]

	* lib/util/utimens.c:
	Fix compilation error on systems without futimes().
	[3c79ea75b]

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/gettime.c, lib/util/util.exp.in, lib/util/utimens.c,
	lib/util/utimes.c, mkdep.pl, plugins/sudoers/Makefile.in,
	plugins/sudoers/boottime.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/timestamp.c, plugins/sudoers/visudo.c,
	src/Makefile.in, src/sesh.c, src/sudo_edit.c:
	Use futimens() and utimensat() instead of futimes() and utimes().
	[ee72cba93]

	* plugins/sudoers/visudo.c:
	Fix compiler warning on systems where mode_t is not unsigned int,
	such as 32-bit Solaris.
	[ea514dc39]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Fix logic for verifypw/listpw all in sudoers LDAP and sssd.
	[c9d4e1084]

	* src/tgetpass.c:
	Fix cut & pasto that prevented the SIGPIPE handler from being
	restored before returning from tgetpass(). From mancha
	[b78a985bf]

2015-02-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sesh.c, src/sudo_edit.c:
	Our utimes() emulation support futime() too.
	[f25cf9967]

2015-02-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[74d3745cc]

	* plugins/sudoers/testsudoers.c:
	Define YYDEBUG to 0 if not already defined so we can protect use of
	sudoersdebug with "#if YYDEBUG" like the generated parser does. From
	David Michael.
	[233783511]

2015-02-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document that Aliases may not be redefined and that "sudo -f
	/etc/sudo.d/foo" will not catch the redefinition.
	[f95d76258]

	* sudo.pp:
	Only create /usr/lib/tmpfiles.d/sudo.conf if
	/usr/lib/tmpfiles.d/systemd.conf also exists. Some other package may
	have created /usr/lib/tmpfiles.d even though it is not used.
	[8e1ceb5a7]

	* plugins/sudoers/Makefile.in:
	regen
	[d09a83893]

	* sudo.pp:
	Clear the ts dir instead of just making sure it exists.
	[a056794e9]

	* configure, configure.ac:
	Only substiture init.d scripts that we are going to use.
	[083f59a75]

2015-02-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in, sudo.pp:
	Create /usr/lib/tmpfiles.d/sudo.conf when systemd is used.
	[8fdc46433]

	* plugins/sudoers/iolog.c, plugins/sudoers/visudo.c,
	src/sudo_edit.c, src/utmp.c:
	Check the return value of gettimeofday(), even though it should
	never fail.
	[973286c7a]

2015-02-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, configure, configure.ac, include/sudo_compat.h,
	lib/util/Makefile.in, lib/util/clock_gettime.c, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/gettime.c,
	plugins/sudoers/po/sudoers.pot, plugins/sudoers/sudoers.h,
	plugins/sudoers/timestamp.c:
	We cannot (easily) use clock_gettime(CLOCK_MONOTONIC) directly as it
	may be present but not implemented. Add sudo_gettime_real() and
	sudo_gettime_mono() functions to get the real and monotonic times
	respectively. Now sudo_gettime_mono() checks the value of
	sysconf(_SC_MONOTONIC_CLOCK) before calling
	clock_gettime(CLOCK_MONOTONIC) and falls back on sudo_gettime_real()
	as needed. The Mach version of sudo_gettime_mono() uses
	mach_absolute_time().

	This should fix problems with timestamp files on systems where the
	CLOCK_MONOTONIC is defined but not actually implemented.
	[5d2e9426b]

	* include/sudo_compat.h, plugins/sudoers/timestamp.c:
	Check clock_gettime() return value and warn if it fails. Currently,
	the timestamp will be ignored if clock_gettime() fails.
	[01a4d6ccb]

2015-02-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/sudo_debug.c:
	Plug memory leak when debug file cannot be opened. Use %zu printf
	format now that our snprintf support it.
	[23f4e49f4]

	* plugins/sudoers/auth/pam.c:
	Pam conversation function changes: o use PAM_BUF_ERR as the return
	value when calloc() fails. o sanity check the value of num_msg o
	remove the workaround for old Apple PAM o PAM_AUTH_ERR is not a
	valid PAM conversation function return value

	If getpass_error is set after a call to pam_verify (usually because
	the user pressed ^C), return AUTH_INTR immediately instead of
	checking the pam_verify return value.
	[a604f0f02]

	* INSTALL, NEWS, configure, configure.ac,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h:
	On AIX use the value of auth_type in /etc/security/login.cfg to
	determine whether to use LAM or PAM unless the user specified the
	--with-pam or --with-aixauth configure flags.
	[e11f32fd4]

	* lib/util/parseln.c:
	Fix cast.
	[1ce9dd5e0]

2015-02-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.ac, lib/util/snprintf.c:
	Update snprintf.c from OpenBSD. The floating point and wide
	character code has been retained but is not compiled by default.
	[b5831d55d]

2015-02-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/sudoers/test1.in,
	plugins/sudoers/regress/sudoers/test1.out.ok,
	plugins/sudoers/regress/sudoers/test1.toke.ok:
	Update the regression test that check that all tags are parsed.
	[1ca3e1834]

	* MANIFEST, configure, configure.ac, lib/util/Makefile.in,
	lib/util/mktemp.c, lib/util/regress/mktemp/mktemp_test.c, mkdep.pl:
	Add regress for mkdtemp and mkstemps from OpenBSD
	[49128a79e]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[bd8eebd6f]

	* plugins/sudoers/po/nl.mo, plugins/sudoers/po/nl.po, po/tr.mo,
	po/tr.po:
	Sync with translationproject.org
	[bb5093f40]

	* config.h.in, configure.ac:
	Correct SECURE_PATH comment.
	[f9af2bc99]

	* NEWS, configure, configure.ac:
	Sudo 1.8.13
	[93b52daab]

2015-02-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, config.h.in, configure, configure.ac,
	include/sudo_compat.h, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/gethostname.c, lib/util/util.exp.in,
	plugins/sudoers/match.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c, src/sudo.c:
	Avoid using HOST_NAME_MAX directly and use
	sysconf(_SC_HOST_NAME_MAX) instead.
	[be8dbeb22]

	* plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/secureware.c:
	Historically, crypt() returned the empty string on error, which
	ensured that crypt("", "") would return "", which supported matcing
	empty encrypted passwords with no additional code. Some modern
	versions of crypt() (such as glibc) return NULL on error so we need
	an explicit test to match an empty plaintext password and an empty
	encrypted password.
	[9b514ed83]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Sort tags lexically in the sudoers manual
	[615aee9d1]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/ldap.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/sudoers/test1.out.ok,
	plugins/sudoers/sssd.c, plugins/sudoers/sudoers_version.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/visudo_json.c:
	Add support for MAIL and NOMAIL command tags to toggle mail sending
	behavior on a per-command (or Cmnd_Alias) basis.
	[45548cf04]

2015-02-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/logging.c:
	Add mail_all_cmnds to always mail when a user runs a command (or
	tries to) including sudoedit. The mail_always flag goes back to its
	old semantic of always mailing when sudo is run.
	[53ac30b63]

2015-02-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/getline.c, plugins/group_file/getgrent.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/tsgetgrpw.c:
	All modern systems should have LINE_MAX.
	[8bb589709]

	* config.h.in, configure, configure.ac, include/sudo_compat.h,
	lib/util/closefrom.c, lib/util/setgroups.c,
	plugins/sudoers/pwutil_impl.c, src/sudo.c:
	Almost no systems actually define OPEN_MAX since it is dynamic on
	modern OSes. If sysconf(_SC_OPEN_MAX) ever fails, fall back on
	_POSIX_OPEN_MAX instead. We can assume modern systems have
	sysconf(). Also remove checks for strrchr() and strtoll() for which
	the HAVE_* defines are no longer used.
	[96eddddc1]

	* Makefile.in, sudo.pp:
	Don't need to pass exampledir to polypkg now that it is just under
	docdir.
	[7d1ee7713]

2015-02-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Fix packaging of the example dir.
	[2ed7f2dd9]

	* lib/util/mktemp.c:
	Fix mkstemps() extension handling. Sudoedit will now preserve the
	extension properly when the system libc lacks mkstemps().
	[1ae2e5514]

2015-02-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, aclocal.m4, config.h.in, configure, configure.ac,
	lib/util/Makefile.in, lib/util/locale_weak.c,
	m4/ax_sys_weak_alias.m4, mkdep.pl, src/Makefile.in,
	src/locale_stub.c:
	Use weak symbols for sudo_warn_gettext() and sudo_warn_strerror() so
	distros using "-Wl,--no-undefined" in LDFLAGS don't run into
	problems.
	[166db8eeb]

	* lib/util/mksiglist.c, lib/util/mksigname.c:
	Include unistd.h in siglist.c and signame.c to get gid_t which is
	used by sudo_compat.h. Bug #686
	[8cae9876f]

2015-02-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Minor change in description of TZ path handling.
	[915e08eec]

	* Makefile.in, examples/Makefile.in:
	Move example dir under the doc dir to conform to Debian guidelines.
	Bug #682.
	[117a30fac]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document that a leading ':' is skipped when checking TZ for a
	fully-qualified path name.
	[00f663d54]

2015-02-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Typo.
	[9669abdaf]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Fix typos.
	[0414ea457]

	* plugins/sample/sample_plugin.c:
	Fix compilation on systems w/o __dso_public
	[2e32bb10f]

2015-02-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, plugins/sudoers/po/ru.mo, plugins/sudoers/po/ru.po:
	Russian translation for sudoers from translationproject.org.
	[9206ba54c]

2015-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, doc/CONTRIBUTORS, plugins/sudoers/po/ru.mo,
	plugins/sudoers/po/ru.po:
	Russian translation for sudoers from translationproject.org.
	[cecdd7e72]

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Add check for getresuid() declaration, which may be missing on
	HP-UX. When checking for getdomainname() prototype, look in netdb.h
	too.
	[3eb9a854d]

	* INSTALL, NEWS, configure, configure.ac, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, m4/sudo.m4, pathnames.h.in,
	plugins/sudoers/env.c:
	Sanity check the TZ environment variable by special casing it in
	env_check. The --with-tzdir configure option can be used to specify
	the zoneinfo directory if configure doesn't find it.
	[c3c28773f]

	* NEWS:
	Mention crash fixes.
	[de1181619]

	* src/parse_args.c:
	Bail with usage() early if argc <= 0.
	[0008747be]

2015-02-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/pwutil.c:
	Remove extraneous casts of node->data (which is void *).
	[c299cdd66]

	* doc/CONTRIBUTORS:
	Add Stephane Chazelas
	[5218f74e8]

	* plugins/sudoers/pwutil.c:
	Fix a potential crash when getpwnam() of the running user fails and
	we don't replace the negative cached entry with a faked up one. From
	Stephane Chazelas
	[cebd92a88]

	* src/parse_args.c, src/sudo.c:
	Don't assume argv[0] is set without first checking argc.
	[67eba7e53]

	* plugins/sudoers/set_perms.c:
	Handle sudo_get_grlist() returning NULL which can happen if
	getgrouplist() fails even after allocating the appropriate amount of
	memory. From Stephane Chazelas
	[b727d4309]

	* lib/util/progname.c:
	Call setprogname("sudo") if getprogname() returns NULL or the empty
	string.
	[6d71b488b]

	* config.h.in, configure, configure.ac:
	Remove configure checks for strrchr() and strtoll() for which the
	HAVE_* defines are no longer used.
	[88f79588e]

	* config.h.in, configure, configure.ac, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	plugins/sudoers/sudoreplay.c:
	Require POSIX regular expression support for sudoreplay.
	[a3435e7d1]

	* plugins/sudoers/policy.c:
	The plugin no longer needs to call initprogname() now that it links
	with the same libsudo_util as sudo.
	[1e30824a1]

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Check whether getdomainname(), innetgr(), setresuid() and
	setresgid() are declared and add prototypes in sudo_compat.h as
	needed.
	[1bb633a21]

2015-02-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Add /usr/local/share/examples/ directory to parentdirs so it is
	explicitly added to the package.
	[3f82c8e57]

2015-02-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/logging.c:
	Don't send mail about pseudo-command failure unless it is an
	authentication failure.
	[ed4ffa626]

2015-02-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.mo, po/da.mo:
	Sync with translationproject.org
	[dfb369198]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/nl.mo, plugins/sudoers/po/nl.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/nl.mo,
	po/nl.po:
	Sync with translationproject.org
	[d1ce08369]

2015-02-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/getdate.c, plugins/sudoers/gram.c:
	Regen with yacc skeleton that the clang analyzer doesn't complain
	about.
	[2033be83c]

	* configure, configure.ac, lib/util/alloc.c, lib/util/glob.c,
	plugins/sudoers/env.c, plugins/sudoers/getdate.c,
	plugins/sudoers/getdate.y, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y:
	Use stdint.h to get SIZE_MAX as inttypes.h on some pre-C99 HP-UX
	systems doesn't include stdint.h itself.
	[a9bf105ed]

	* configure, configure.ac:
	SIZE_MAX may be in limits.h on pre-C99 compilers.
	[a17d562fd]

	* config.h.in, configure, configure.ac, lib/util/aix.c:
	Add missing prototypes for usrinfo() and setauthdb() for AIX.
	[f2a554f29]

	* config.h.in, configure, configure.ac, plugins/sudoers/match.c:
	Solaris uses sysinfo(SI_SRPC_DOMAIN) instead of getdomainname() to
	get the host's NIS domain.
	[536c83cec]

2015-02-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Remove AC_PROG_GCC_TRADITIONAL and add AC_PROG_CC_STDC since we need
	C99.
	[7fdbbf16a]

	* plugins/sudoers/match.c:
	Actually use the check for prior initialization in
	sudo_getdomainname().
	[15717c518]

	* configure, configure.ac:
	We need to add OSDEFS to CFLAGS to expose LLONG_MAX et al on glibc
	when not explicitly asking for c99.
	[109a866fb]

	* configure, configure.ac:
	Fix check for SIZE_MAX, which should be in stdint.h not limits.h.
	[bb19428fc]

	* lib/util/glob.c:
	Need to include inttypes.h for SIZE_MAX
	[fd149e632]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[fde8776d5]

2015-02-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_debug.h, lib/util/aix.c, lib/util/event.c,
	lib/util/event_poll.c, lib/util/event_select.c, lib/util/gidlist.c,
	lib/util/key_val.c, lib/util/lbuf.c, lib/util/locking.c,
	lib/util/parseln.c, lib/util/secure_path.c, lib/util/setgroups.c,
	lib/util/strtobool.c, lib/util/strtoid.c, lib/util/strtomode.c,
	lib/util/sudo_conf.c, lib/util/sudo_debug.c, lib/util/term.c,
	lib/util/ttysize.c, lib/util/util.exp.in, plugins/sudoers/alias.c,
	plugins/sudoers/audit.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/base64.c, plugins/sudoers/boottime.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/check.c,
	plugins/sudoers/defaults.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/getspwuid.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/hexchar.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/ldap.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/logging.c, plugins/sudoers/logwrap.c,
	plugins/sudoers/match.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/redblack.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	plugins/sudoers/visudo.c, plugins/sudoers/visudo_json.c, src/exec.c,
	src/exec_common.c, src/exec_pty.c, src/get_pty.c, src/hooks.c,
	src/load_plugins.c, src/net_ifs.c, src/parse_args.c,
	src/preserve_fds.c, src/selinux.c, src/sesh.c, src/signal.c,
	src/solaris.c, src/sudo.c, src/sudo_edit.c, src/tgetpass.c,
	src/ttyname.c, src/utmp.c:
	Go back to a 2 args debug_decl and just use the "default" instance,
	now renamed "active".
	[59ab26dbc]

2015-01-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/LICENSE:
	Update copyright year.
	[e71726d0f]

2015-01-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, plugins/sudoers/ldap.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.h:
	When querying LDAP netgroups, use the NIS domain if it is sent but
	also match nisNetgroupTriple entries that have no domain.
	[7ec9cfb49]

	* plugins/sudoers/sudoreplay.c:
	Avoid setting the tty to non-blocking mode so "sudoreplay | cat"
	(for example) works as expected. We only read a single byte from the
	keyboard and only when interactive anyway so this should be fine.
	[97469c243]

	* lib/zlib/Makefile.in, plugins/sudoers/Makefile.in:
	regen
	[00e7dbd64]

	* plugins/sudoers/sudoreplay.c:
	Avoid a cppcheck warning about undefined behavior (using the address
	of a stack buffer - 1) and fix a memory leak of the iov when doing
	nl->crnl conversion.
	[0ac881ba4]

	* doc/CONTRIBUTORS:
	Add Steven Soulen
	[1517d18b1]

	* plugins/sudoers/sudoreplay.c:
	Fix handling of partial writes from writev() which can occur with
	large output buffers.
	[770e6ca19]

2015-01-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, plugins/sudoers/ldap.c:
	Add support for querying netgroups directly via LDAP since there is
	no other way to look up all the netgroups for a user (unlike regular
	groups). This introduces netgroup_base and netgroup_search_filter
	options to ldap.conf. Based on a diff from Steven Soulen.
	[4dd2a3c6b]

2015-01-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Sort ldap.conf options.
	[4ae3ab43c]

2015-01-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Add macros to ease the checking of strlcpy, strlcat and
	sudo_ldap_value_cat return values.
	[741bb8ec7]

2015-01-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c, plugins/sudoers/ldap.c,
	plugins/sudoers/logging.c, plugins/sudoers/parse.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Rename VALIDATE_OK -> VALIDATE_SUCCESS Rename VALIDATE_NOT_OK ->
	VALIDATE_FAILURE
	[57553fffd]

	* plugins/sudoers/logging.c, plugins/sudoers/sudoers.h:
	Remove now-unused VALIDATE_ERROR define.
	[399d364a9]

	* plugins/sudoers/logging.c:
	should_mail() now returns bool.
	[5415b3d2a]

	* lib/util/sudo_debug.c:
	If sudo_debug_register() fails return
	SUDO_DEBUG_INSTANCE_INITIALIZER, not -1. Otherwise we could end up
	setting the instance to -1 which is invalid.
	[2188c83a2]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Fix typo.
	[721cab85e]

	* doc/Makefile.in:
	Use "mandoc -Tascii" to generate .cat pages to avoid locale-specific
	characters.
	[716e6a991]

2015-01-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, m4/sudo.m4:
	Use AC_PATH_PROG to find programs instead of checking the path
	manually.
	[a33d88c99]

2015-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/strlcat.c, lib/util/strlcpy.c:
	Sync with OpenBSD version
	[d2d9e6fcc]

2015-01-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Use AC_CHECK_HEADERS_ONCE and AC_CHECK_FUNCS_ONCE where possible and
	quote the first args in AC_CHECK_FUNCS calls.
	[f80ffcc91]

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Avoid inadvertantly defining things like PATH_MAX simply because the
	source file doesn't include limits.h.
	[55a34e694]

2015-01-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, ltmain.sh, m4/libtool.m4, m4/ltoptions.m4,
	m4/ltversion.m4:
	Update to libtool 2.4.4 + HP-UX patches
	[078ba3806]

	* src/ttyname.c:
	Document why we need sys/param.h.
	[acea28b9a]

	* configure, m4/sudo.m4:
	Don't need sys/param.h.
	[532a0e6cc]

	* lib/util/closefrom.c:
	Don't appear to need sys/param.h for pstat_getproc() on HP-UX even
	though the man page lists it.
	[19a8a69a9]

	* lib/util/inet_ntop.c, lib/util/inet_pton.c:
	Should not need sys/param.h here.
	[6bd40c622]

2014-12-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match_addr.c:
	Use standard CIDR -> netmask conversion and disallow 0-bit CIDRs.
	[cb09010da]

2014-12-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README.LDAP:
	Update link to gq LDAP editor, now on sourceforge.
	[86fbde75b]

2014-12-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/compat/glob.h, lib/util/glob.c:
	Add support for GLOB_LIMIT from OpenBSD (not currently used) and
	also a limit on the max recursion depth for glob().
	[237f3c9df]

	* lib/util/glob.c:
	Quiet compiler sign compare warning.
	[b633e88c1]

2014-12-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	fnmatch fix
	[88c4a9668]

	* lib/util/fnmatch.c:
	Remove artificial limit on length of pattern and string. It is
	possible to use fnmatch() on things other than paths (such as
	arguments) so a limit of PATH_MAX does not make sense. Fixes a bug
	where rules would fail to match if the length of the arguments were
	larger than PATH_MAX (usually 1024).
	[d0c333969]

2014-12-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in, doc/visudo.cat,
	doc/visudo.man.in, doc/visudo.mdoc.in:
	Remove the extra /sudo in sudo.ws urls
	[b1dc5c54d]

2014-11-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in, doc/visudo.cat,
	doc/visudo.man.in, doc/visudo.mdoc.in:
	Reference bugzilla.sudo.ws
	[9d3fe082f]

2014-11-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	sync
	[e0d927a98]

2014-11-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Require that a digest be specified with a real command, not an alias
	or pseudo-command. Found via a crash by afl.
	[c28741978]

	* NEWS:
	sync
	[034ad90e1]

	* MANIFEST, doc/CONTRIBUTORS, plugins/sudoers/po/fr.mo,
	plugins/sudoers/po/fr.po:
	French translation for sudoers from translationproject.org.
	[02b3fa2fd]

2014-11-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_pty.c, src/tgetpass.c:
	Defer registration of the SIGCHLD handler until just before we exec
	the command. Fixes a problem where pam_gnome_keyring installs its
	own SIGCHLD handler and may not restore the original one. As a
	result, we now have to explicitly wait for the askpass helper to
	finish. Bug #657
	[29039859b]

2014-11-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Mention sssd support in the sudoers.ldap manual and cross-reference
	sssd-sudo(5).
	[552dbe525]

2014-11-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS:
	Reorder an entry.
	[eab8a28ab]

2014-11-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, lib/util/Makefile.in, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Prevent cppcheck from getting confused by our compat definition of
	the va_copy macro for pre-C99.
	[bc6269e58]

2014-11-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog_path.c:
	Fix potential NULL pointer deref found by cppcheck.
	[3870fdf62]

	* plugins/sudoers/alias.c:
	Quiet a cppcheck false positive.
	[0c88ecd3b]

	* lib/util/sudo_debug.c:
	If there are multiple outputs, ap will be re-used so make a copy and
	operate on it instead.
	[cbe917c54]

	* src/hooks.c:
	Fix typo in hook return value check.
	[1c96c5ec3]

	* NEWS:
	Mention visudo use of sudoers plugin args to set default sudoers
	file name and owner/mode.
	[cafd7baa2]

	* NEWS:
	Mention fix for bug #678
	[d956785e9]

2014-11-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/cs.mo,
	po/cs.po, po/da.mo, po/da.po, po/de.mo, po/de.po, po/eo.mo,
	po/eo.po, po/fi.mo, po/fi.po, po/it.mo, po/it.po, po/nb.mo,
	po/nb.po, po/pl.mo, po/pl.po, po/pt_BR.mo, po/pt_BR.po, po/ru.mo,
	po/ru.po, po/uk.mo, po/uk.po, po/vi.mo, po/vi.po, po/zh_CN.mo,
	po/zh_CN.po:
	Sync with translationproject.org
	[b4432df5e]

2014-11-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	In set_fqdn() we neeed to set user_runhost/user_srunhost at the same
	time we set user_host/user_shost since that is what
	hostlist_matches() uses. Bug #678
	[832a4dee6]

2014-11-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/hooks.c:
	Do not call sudo_warnx() on invalid value from the env hook
	functions as the printf() family may call getenv() for locale
	reasons.
	[ae00eb719]

	* doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.man.in, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, doc/sudoreplay.mdoc.in, doc/visudo.cat,
	doc/visudo.man.in, doc/visudo.mdoc.in:
	No need to keep specifying ".Nm foo" since the Nm macro remembers
	the argument it was first called with and uses it if none is
	specified. Also fix a few minor formatting errors and regen bulleted
	lists in the .man.in files.
	[4d04c5644]

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Add sudo.conf to SEE ALSO and rename section on sudo.conf
	[fbac05467]

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in:
	Mention sudo.conf use for debugging
	[328429832]

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo_plugin.cat,
	doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoers.man.in,
	doc/sudoreplay.cat:
	regen
	[e71c646c9]

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Document sudo.conf usage now that visudo will parse the sudoers
	arguments.
	[bc7cbcb55]

2014-11-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	Use sudoers.so args from sudo.conf to set sudoers_file, sudoers_uid,
	sudoers_gid, and sudoers_mode in visudo.
	[5c13889f2]

	* plugins/sudoers/visudo.c:
	Use sudoers_file, sudoers_uid, sudoers_gid, and sudoers_mode symbols
	from toke.l instead of the upper case defines.
	[9d4589abd]

	* lib/util/Makefile.in, lib/zlib/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in:
	Use SSP_LDFLAGS when creating shared objects.
	[04d803c79]

	* lib/util/Makefile.in:
	We only build .lo (not .o) files for libsudo_util
	[d00142f55]

2014-11-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	sync
	[57b50b470]

2014-11-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_pty.c:
	Make sure that SIGCHLD is not treated as a user-generated signal in
	which case it could be ignored. Bug #676
	[21166d4da]

2014-10-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, ltmain.sh, m4/libtool.m4, m4/ltoptions.m4,
	m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4:
	Update to libtool 2.4.3 + HP-UX patches
	[be2de71df]

2014-10-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.ac, lib/util/mktemp.c:
	Use arc4random() for mkstemp/mkdtemp if available. If not, try to
	seed from /dev/urandom before falling back to the gettimeofday seed.
	[2040d4dde]

2014-10-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac, include/sudo_compat.h, lib/util/mktemp.c:
	If a system lacks mkdtemp() or mkstemps(), use our own mkdtemp() and
	mkstemps(). Previously we only exposed the missing one but since the
	guts are the same we might as well use them.
	[ccc210edd]

2014-10-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/sudo_debug.c:
	Use a static buffer for sudo_debug_execve2() if possible.
	[2eed95639]

2014-10-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/env_hooks.c:
	Mark the putenv(), setenv() and unsetenv() symbols as global, not
	hidden. Fixes a mismatch where a plugin (or its loaded dso) would
	call setenv() to set a variables but be unable to find it later with
	getenv().
	[55098ff6e]

2014-10-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Fix install-nls target from builddir.
	[bbf3c0832]

	* Makefile.in:
	Fix dependency on sudo.pp, it needs to relative to srcdir.
	[53d4a02a4]

	* src/sesh.c:
	Adapt to new debug subsystem registration.
	[ef6dfb3ce]

2014-10-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/zlib/Makefile.in, lib/zlib/zlib.exp:
	Add missing zlib.exp file and common LT_LDFLAGS Makefile.in.
	[67c7c7f9d]

	* lib/util/sudo_conf.c:
	Fix path settings broken in rev 9731.
	[1be81d572]

	* MANIFEST, lib/util/regress/sudo_conf/test4.err.ok:
	Adjust regress test now that boolean settings display an error for
	invalid input.
	[f730b28ce]

	* plugins/sudoers/iolog.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Add sudoers_debug_deregister() and use it instead of calling
	sudo_debug_deregister() directly.
	[9d6e1a57d]

	* configure, configure.ac, lib/util/Makefile.in,
	lib/zlib/Makefile.in, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in:
	Use AC_PROG_AWK
	[0982f7838]

	* NEWS:
	Mention shared zlib.
	[640c9d7ec]

	* MANIFEST:
	Add lib/zlib/zlib.exp
	[2be376aae]

	* INSTALL, configure, configure.ac, lib/zlib/Makefile.in,
	lib/zlib/zconf.h.in:
	Add support for installing a shared zlib
	[9a9e86537]

	* lib/util/Makefile.in:
	fix comment typo
	[0d6895cbd]

	* configure, configure.ac, lib/zlib/Makefile.in:
	Newer zlib uses HAVE_HIDDEN to turn on symbol hiding so we don't
	need to disable it with NO_VIS.
	[7c295e40d]

	* po/sudo.pot:
	regen
	[11feb6bfa]

	* configure.ac, include/sudo_debug.h, lib/util/sudo_debug.c,
	lib/util/util.exp.in:
	Version the symbols for sudo_debug.c now that the API is stable.
	[adfdad9ae]

2014-10-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/sudo_conf.c:
	Go back to parsing sudo.conf in place for settings and paths and
	improve debugging info for unsupported entries and parse errors.
	[d5fdd1ea0]

	* include/sudo_conf.h, lib/util/regress/sudo_conf/conf_test.c,
	lib/util/sudo_conf.c, lib/util/util.exp.in,
	plugins/sudoers/sudoers_debug.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/load_plugins.c, src/sudo.c, src/sudo_plugin_int.h:
	Add a flag argument to sudo_conf_read() so we can decide which bits
	get parsed. This lets us parse Debug statements first and init the
	debug subsystem early.
	[6b1b734ff]

2014-10-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/zlib/gzguts.h:
	Include stdio.h after zlib.h, not before. We need the large file
	defines to come first.
	[f8bd2af4d]

	* doc/LICENSE, lib/zlib/compress.c, lib/zlib/crc32.c,
	lib/zlib/crc32.h, lib/zlib/deflate.c, lib/zlib/deflate.h,
	lib/zlib/gzguts.h, lib/zlib/gzlib.c, lib/zlib/gzread.c,
	lib/zlib/gzwrite.c, lib/zlib/infback.c, lib/zlib/inffast.c,
	lib/zlib/inflate.c, lib/zlib/inftrees.c, lib/zlib/trees.c,
	lib/zlib/uncompr.c, lib/zlib/zconf.h.in, lib/zlib/zlib.h,
	lib/zlib/zutil.c, lib/zlib/zutil.h:
	Update zlib to version 1.2.8
	[c783f01ad]

	* configure, configure.ac:
	Don't add -Wold-style-definition to CFLAGS as it causes problems
	with 3rd party libraries such as zlib.
	[d5a2d0f2d]

	* src/load_plugins.c:
	Free up plugin info structs after converting to plugin containers.
	[4c8573ac2]

	* INSTALL, MANIFEST, Makefile.in, configure, configure.ac,
	doc/Makefile.in, doc/TROUBLESHOOTING, doc/UPGRADE,
	examples/Makefile.in, examples/pam.conf, examples/sudo.conf,
	examples/sudoers, examples/syslog.conf, sudo.pp:
	Move sample.* files to a sudo examples dir
	[b91a91d28]

	* sudo.pp:
	Fix a packaging problem with the sudoedit man page link on Debian.
	[6e8b84fda]

	* plugins/sudoers/iolog.c, plugins/sudoers/policy.c:
	Initialize the debug subsystem in sudoers early. Currently this
	means iterating over the settings list twice.
	[34d9cfe1c]

	* lib/util/sudo_debug.c:
	No need to convert sudoedit -> sudo in sudo_debug_get_instance() as
	we store the actual program name and only do the sudoedit -> sudo
	conversion when reading the sudo.conf file. Fixes debugging when
	invoked as sudoedit.
	[fd8cf2c89]

	* lib/util/sudo_conf.c, lib/util/sudo_debug.c,
	plugins/sudoers/iolog.c, plugins/sudoers/policy.c, src/exec_pty.c,
	src/load_plugins.c, src/sudo.c, src/sudo_plugin_int.h:
	In the plugin registers with the debug framework at open time, the
	sudo front-end will now set the default debug instance appropriately
	before calling into the plugin. This means the plugin no longer
	needs to do the sudo_debug_set_default_instance() dance.
	[4bf641df6]

	* Makefile.in:
	Remove duplicate -U__NBBY in CPPCHECK_OPTS
	[a2e9d66be]

2014-10-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Older shells don't support unset.
	[6c6f50283]

	* configure, configure.ac, include/sudo_compat.h,
	lib/util/inet_ntop.c, src/net_ifs.c:
	Fix inet_ntop() replacement on older systems without it. We only
	expose the prototype for net_ifs.c due to the use of socklen_t.
	[d0cc4d9e4]

	* lib/util/sudo_debug.c:
	Dynamically allocate debug_fds bitmap and realloc as needed.
	[7dc2c8fa1]

	* Makefile.in, include/sudo_debug.h, lib/util/Makefile.in,
	lib/util/sudo_debug.c, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/sudoers_debug.c, plugins/sudoers/sudoers_debug.h,
	plugins/system_group/Makefile.in, src/Makefile.in, src/exec.c:
	Use generic bitmap macros instead of select-style fd_set.
	[17a2a27e4]

	* lib/util/sudo_debug.c:
	Replace sudo_debug_num_instances with sudo_debug_max_instance
	[4baa7e6d2]

	* plugins/sudoers/iolog.c, plugins/sudoers/policy.c:
	Don't call into the debug subsystem after we've deregistered the
	plugin's instance.
	[935e48c6e]

	* lib/util/sudo_debug.c:
	Only fill in subsystem_ids[] for the instance if the caller passed
	in an array for it. If the caller only wants the default subsystems
	we don't actually need ids[].
	[2a47abad2]

	* lib/util/Makefile.in:
	Link with -ldl if needed when built with --disable-shared-libutil/
	[f2eb6dcc0]

	* src/regress/ttyname/check_ttyname.c:
	Fix includes order.
	[119c13d8b]

	* lib/util/util.exp.in:
	Remove extra newline mistakenly introduced in rev 9682.
	[2968ce060]

	* plugins/sudoers/Makefile.in:
	Fix typo in unset.
	[386055271]

	* plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c, src/sesh.c:
	Set debug instance for standalone programs.
	[fe9e035cc]

	* plugins/sudoers/bsm_audit.c, plugins/sudoers/linux_audit.c,
	src/net_ifs.c:
	Fix compilation issues, fallout from the debug changes.
	[1ca52382a]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	regen
	[6d2be1fd6]

	* configure, configure.ac:
	Sudo 1.8.12
	[fbc54368c]

	* NEWS:
	Update with debug system changes and revent bug fixes.
	[323b4a814]

	* include/sudo_debug.h, lib/util/sudo_conf.c, lib/util/sudo_debug.c,
	plugins/sudoers/sudoers_debug.c, plugins/sudoers/sudoers_debug.h:
	When registering with the debug subsystem, the caller now passes in
	an arrary of ints that gets filled in with the subsytem IDs to be
	used in debug_decl.
	[5270ebf1f]

	* plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	sudoers_debug_instance is now included in libparsesudoers so we
	don't need to declare it here.
	[8db5f2939]

2014-10-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, include/sudo_debug.h, lib/util/sudo_debug.c,
	lib/util/ttysize.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/alias.c, plugins/sudoers/audit.c,
	plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/base64.c,
	plugins/sudoers/boottime.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/check.c, plugins/sudoers/defaults.c,
	plugins/sudoers/env.c, plugins/sudoers/find_path.c,
	plugins/sudoers/getspwuid.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/group_plugin.c, plugins/sudoers/hexchar.c,
	plugins/sudoers/interfaces.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_path.c, plugins/sudoers/ldap.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/logwrap.c, plugins/sudoers/match.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/parse.c,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/redblack.c, plugins/sudoers/set_perms.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoers_debug.c, plugins/sudoers/sudoers_debug.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_json.c:
	The sudoers plugin now defines its own list of debugging subsystem
	names and defines.
	[e9914a91b]

	* MANIFEST, include/sudo_debug.h, lib/util/aix.c, lib/util/event.c,
	lib/util/event_poll.c, lib/util/event_select.c, lib/util/gidlist.c,
	lib/util/key_val.c, lib/util/lbuf.c, lib/util/locking.c,
	lib/util/parseln.c, lib/util/secure_path.c, lib/util/setgroups.c,
	lib/util/strtobool.c, lib/util/strtoid.c, lib/util/strtomode.c,
	lib/util/sudo_conf.c, lib/util/sudo_debug.c, lib/util/term.c,
	lib/util/ttysize.c, lib/util/util.exp.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/alias.c,
	plugins/sudoers/audit.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/base64.c, plugins/sudoers/boottime.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/check.c,
	plugins/sudoers/defaults.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/getspwuid.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/hexchar.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/ldap.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/logging.c, plugins/sudoers/logwrap.c,
	plugins/sudoers/match.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/redblack.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers_debug.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	plugins/sudoers/visudo.c, plugins/sudoers/visudo_json.c,
	src/Makefile.in, src/exec.c, src/exec_common.c, src/exec_pty.c,
	src/get_pty.c, src/hooks.c, src/load_plugins.c, src/net_ifs.c,
	src/parse_args.c, src/preserve_fds.c,
	src/regress/ttyname/check_ttyname.c, src/selinux.c, src/sesh.c,
	src/signal.c, src/solaris.c, src/sudo.c, src/sudo.h,
	src/sudo_edit.c, src/tgetpass.c, src/ttyname.c, src/utmp.c:
	Add support for multiple Debug lines per program. Callers may
	register arbitrary debug facilities or use built-in defaults. We now
	use separate Debug statements for plugins and programs.
	[866cfc4fc]

	* MANIFEST, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/sudo_conf.h, include/sudo_debug.h,
	lib/util/Makefile.in, lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_conf/test7.in,
	lib/util/regress/sudo_conf/test7.out.ok, lib/util/sudo_conf.c,
	lib/util/sudo_debug.c, lib/util/util.exp.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/solaris_audit.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudoers.h, src/hooks.c,
	src/load_plugins.c, src/parse_args.c, src/sudo.c,
	src/sudo_plugin_int.h:
	Change how sudo.conf is parsed. We now do a quick parse and then set
	the values after the entire file has been parsed. This lets us init
	the debug system earlier. Plugin-specific debug flags are now stored
	in struct plugin_info and struct plugin_container and passed to the
	plugin via one or more debug_flags settings.
	[a7e724b75]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/sudo_plugin.h, src/load_plugins.c,
	src/sudo.c, src/sudo_plugin_int.h:
	Pass plugin path in the settings array.
	[346ff6766]

	* src/parse_args.c, src/sudo.c, src/sudo.h:
	Return settings from parse_args as struct sudo_settings and format
	for the plugin at plugin open time. This will allow for additional,
	plugin-specific settings to be added to the array.
	[1e0b8903f]

	* plugins/sudoers/parse.c:
	Remove an unneeded NULL check to quiet a cppcheck warning.
	[f71d4abd7]

2014-10-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Set locale to C for visudo and testsudoers regression tests. Bug
	#672
	[15f5af06d]

2014-10-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/linux_audit.c:
	Fix logic bug. We only want to return -1 from linux_audit_open()
	when audit_open() fails and errno is not one of EINVAL,
	EPROTONOSUPPORT, or EAFNOSUPPORT. For those errno values, we return
	AUDIT_NOT_CONFIGURED which is not a fatal error. Bug #671
	[38c7d7abc]

2014-10-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Add back fix for Bug #663
	[2c5239a3a]

2014-10-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	The older style bash function exporting is not used by
	post-shellshock versions of bash.
	[8f1fb89d5]

	* plugins/sudoers/env.c:
	Apple uses a different variant of the BASH_FUNC prefix for bash
	functions.
	[7a901d4c0]

2014-10-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Remove change that is part of 1.8.12 not 1.8.11p1
	[0be86df4d]

	* NEWS, configure, configure.ac:
	Update for sudo 1.8.11p1
	[a50e72b81]

	* src/regress/ttyname/check_ttyname.c:
	Only check stdin for the tty and avoid the check entirely if we
	don't have a way to get the tty from the kernel. Bug #643
	[837fb1f81]

	* lib/util/sudo_debug.c:
	Make a copy of ap in sudo_debug_vprintf2() in case the static buffer
	is not big enough and we need to call vasprintf().
	[1dd96778e]

	* src/sudo.c:
	Avoid comparing new cwd with old one if getcwd() failed. Bug #670
	[dc6744215]

	* plugins/sudoers/env.c:
	Fix debugging printout output for env_should_keep()
	[1890f0fcd]

2014-10-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, include/Makefile.in:
	Use INSTALL_OWNER instead of -O/-G flags so we can work with the
	autotools install-sh too. Bug #669
	[d7574a344]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c:
	Move sudo_printf to policy.c to match sudo_conv.
	[79f4471e4]

2014-10-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, include/sudo_fatal.h, lib/util/Makefile.in,
	lib/util/fatal.c, lib/util/util.exp.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/sudo_printf.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/conversation.c, src/sudo.c,
	src/sudo_plugin_int.h:
	Add sudo_warn_set_conversation() to specify a conversation function
	to use for warn/fatal. If no conversation function is specified, the
	standard error will be used. We now only need sudo_printf() for
	things that use the parser.
	[bd99dcc02]

2014-10-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Use correct names when referring to subsections in the sudoers
	manual.
	[29be09364]

2014-10-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, config.h.in, configure, configure.ac,
	lib/util/inet_ntop.c, src/net_ifs.c:
	Use inet_ntop() instead of inet_ntoa() and include a version for
	systems that are missing it.
	[5f9e84ea5]

2014-10-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Fix detection of functions in network libs like -lsocket, -lnsl and
	-linet when we have already added those libs to NET_LIBS. Fixes a
	problem where inet_pton() was not detected on Solaris.
	[1d7bab504]

	* NEWS:
	Mention --disable-shared-libutil fix.
	[1faf2b595]

	* src/Makefile.in:
	Always use --tag=disable-static to avoid installing a static
	sudo_noexec.
	[2f3ebce11]

	* configure, configure.ac, lib/util/Makefile.in,
	plugins/sudoers/Makefile.in:
	Instead of building libutil statically for --disable-shared-libutil,
	just treat it as a convenience library. Do the same with sudoers for
	--enable-static-sudoers. Fixes link errors on Solaris among others
	when --disable-shared-libutil is used.
	[0b0481fa3]

	* configure, configure.ac, lib/util/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in:
	Remove LT_LDMAP and LT_LDOPT and just use LT_LDEXPORTS for the
	compiler-specific option to restrict symbol exporting.
	[05d3a4c5e]

	* src/preload.c:
	Include sys/types.h to get gid_t, etc used in sudo_compat.h. Fixes a
	build issue on Solaris.
	[1d0b5422a]

2014-09-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/regress/ttyname/check_ttyname.c:
	Fix cust & pasto in error message when there is a mismatch between
	the sudo and libc ttys. From Diego Elio Petteno'. Bug #643
	[b2e138bde]

2014-09-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/env.c:
	Add BASH_FUNC_* to environment blacklist for newer-style bash
	functions.
	[c823eb3ef]

	* Makefile.in:
	Pull additional password prompts out of mkpkg instead of hard-coding
	them.
	[a62662fa3]

	* NEWS:
	Add post-1.8.11 changes
	[38df51ffe]

	* Makefile.in, configure.ac, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/po/sudoers.pot:
	Add a space after "Password:" in default password prompt so it is
	easier to read when pwfeedback is enabled.
	[496c2e287]

	* plugins/sudoers/auth/sudo_auth.c:
	Simplify how we count the password tries
	[b7444e0f8]

	* plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c:
	Block SIGINT and SIGQUIT while verifying passwords so that
	authentication modules that use sleep() are not interrupted. If the
	user interrupted authentication, exit the loop.
	[355834c76]

	* configure, configure.ac:
	Remove Convex support; it is not modern enough to run sudo 1.8.
	[0660d88b2]

	* configure, configure.ac:
	Only check for -lshadow if we haven't already found getspnam() in
	libc. Rather than treat this specially, just add -lshadow as another
	place to search in addition to -lgen.
	[27943df34]

2014-09-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/sudo_auth.c:
	If all authentication methods fail init/setup, fail with an error.
	[d28c525ed]

	* plugins/sudoers/auth/sudo_auth.c:
	Move pass_warn() so that it is defined before it is called().
	[410573474]

2014-09-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pp:
	Remove duplicate Requires: line in generated rpm spec file.
	[b6432173c]

	* pp:
	In pp_files_expand() set _target to be empty. Fixes a problem with
	Solaris sh where simply using typeset doesn't causes the variable to
	be treated as local so we can inadvertantly inherit a value from a
	previous call.
	[d92df7974]

2014-09-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Fix version for release.
	[1073df76c]

2014-09-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac, pathnames.h.in:
	Only redefine _PATH_BSHELL on AIX if we included paths.h.
	[8f75f65bb]

	* NEWS:
	Bug 661
	[6be0a820d]

	* pathnames.h.in, src/exec_common.c, src/sudo.c:
	On AIX, _PATH_BSHELL is /usr/bin/bsh but we want to use /usr/bin/sh
	(which is usually ksh). This makes sudo's behavior when executing a
	shell without the #! magic number match execvp() on AIX.
	[7ab40be5c]

	* pathnames.h.in:
	Whitespace changes.
	[d4d724b88]

	* configure, m4/sudo.m4:
	Prefer /usr/bin/sh to /bin/sh to match modern systems.
	[c952155b7]

	* NEWS, lib/util/Makefile.in:
	Don't use SSP_CFLAGS or PIE_CFLAGS when building mksiglist/mksigname
	as they are built with the host compiler which may be different when
	cross-compiling. From Gustavo Zacarias. Bug 662.
	[f5647654d]

2014-09-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/sr.mo, plugins/sudoers/po/sr.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/fi.mo,
	po/fi.po, po/nb.mo, po/nb.po, po/pl.mo, po/pl.po, po/pt_BR.mo,
	po/pt_BR.po, po/ru.mo, po/ru.po, po/sr.mo, po/sr.po, po/uk.mo,
	po/uk.po, po/vi.mo, po/vi.po, po/zh_CN.mo, po/zh_CN.po:
	Sync with translationproject.org
	[ae137ba55]

2014-09-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudo_nss.c:
	Make sure we can't insert an nss entry in the list that has already
	been used before.
	[09a876ced]

	* plugins/sudoers/visudo_json.c:
	Use correct gettext macro with sudo_warnx()
	[e7de8f66f]

	* NEWS:
	Make nsswitch.conf bug fix description more accurrate. It affects
	the "files" nsswitch source too.
	[109b2116c]

	* NEWS:
	Mention nsswitch.conf duplicate entry fix.
	[52b675d74]

2014-09-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.c, plugins/sudoers/sudoers.h:
	Make sudoers file nsswitch functions static to parse.c since they
	are self-contained.
	[15dee8745]

	* plugins/sudoers/sudo_nss.c:
	Fix infinite loop when mulitple sudoers entries are present in
	nsswitch.conf. From Daniel Kopecek.
	[f9ac17776]

2014-09-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Fix for bug #660
	[326167bad]

	* src/get_pty.c:
	Fix compilation on systems without openpty(), _getpty() or
	grantpt(). From Vasilyy Balyasnyy
	[d1fe802f0]

2014-09-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/conversation.c:
	Remove remaining use of SUDO_CONV_DEBUG_MSG.
	[398a16c6a]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/sudo_plugin.h:
	SUDO_CONV_DEBUG_MSG is no longer supported.
	[4913e02b4]

	* doc/sudo.conf.cat, doc/sudoers.cat:
	regen
	[393e57b82]

	* include/sudo_debug.h, lib/util/sudo_debug.c,
	lib/util/sudo_printf.c, plugins/sudoers/iolog.c,
	plugins/sudoers/policy.c:
	There is no longer a reason for the plugin to init the debug
	subsystem itself. It will always be initialized by the front-end if
	needed.
	[e20475922]

	* include/sudo_alloc.h, include/sudo_compat.h, include/sudo_fatal.h:
	Add function arg names to prototypes where missing.
	[0f735f658]

	* lib/util/alloc.c:
	Remove obsolete definition of SIZE_T which is now handled by
	sudo_compat.h and rename the format arg to fmt in
	sudo_evasprintf_v1() for consistency with sudo_easprintf_v1().
	[d557aee1e]

	* src/parse_args.c:
	If we were invoked with any name ending in "edit", treat as
	sudoedit.
	[1cc243342]

2014-09-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* po/sudo.pot:
	regen
	[5fcc7a8f2]

	* src/exec.c, src/exec_pty.c, src/signal.c:
	Check return value of sigaction(), even though it should never fail.
	[328c56379]

2014-09-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/Makefile.in, src/Makefile.in:
	regen
	[111136dc8]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/parser/check_hexchar.c:
	Add hexchar unit test
	[2cc8ac30a]

	* plugins/sudoers/regress/parser/check_addr.c:
	Avoid division by zero if there was no test data.
	[b3586c46e]

2014-09-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/event.c:
	Remove confusing comment.
	[f95ca8d4f]

	* lib/util/sudo_debug.c:
	Use a stack buffer for the debug message when possible, most are
	small.
	[4fa58d697]

2014-09-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/ca.mo, plugins/sudoers/po/ca.po, po/ca.mo,
	po/ca.po:
	Sync with translationproject.org
	[f6e738fee]

2014-08-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	Convert a debug printf to a user-visible warning.
	[0546f0b6a]

	* include/sudo_fatal.h, include/sudo_util.h, lib/util/fatal.c:
	Move sudo_printf extern to sudo_util.h
	[8bc688188]

	* include/sudo_fatal.h, include/sudo_lbuf.h, lib/util/fatal.c,
	lib/util/lbuf.c:
	Some versions of the HP C Compiler don't export functions that take
	function pointers as arguments unless a typedef is used.
	[a07ce849f]

	* include/sudo_lbuf.h:
	Work around a bug in the HP C compiler.
	[73d5fb33e]

	* lib/util/lbuf.c:
	Don't need sudo_fatal.h
	[152178e4b]

2014-08-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* po/da.mo, po/da.po:
	Sync with translationproject.org
	[6fdf9028e]

	* src/exec.c:
	Remove signal_event from evbase before calling sudo_ev_loopexit()
	when the command has exited or been killed. It is possible that we
	could receive another signal on the pipe if they are delivered out
	of order.
	[cfa4cebf1]

2014-08-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Treat EOF on signal pipe (which should never happen) as ECONNRESET.
	[26e61adc5]

	* include/sudo_event.h, lib/util/event.c, src/exec_pty.c:
	Don't allow sudo_ev_loopcont() to override sudo_ev_loopexit()
	[2b849b268]

	* include/sudo_event.h, lib/util/event.c, lib/util/event_poll.c,
	lib/util/event_select.c:
	Add some internal convenience functions.
	[e9370718f]

2014-08-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Fix osrelease sed expression. It wasn't matching distros with a
	single digit version such as sles9.
	[ef11361ee]

	* plugins/sudoers/po/cs.mo, plugins/sudoers/po/cs.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po, po/cs.mo,
	po/cs.po, po/de.mo, po/de.po, po/eo.mo, po/eo.po, po/fi.mo,
	po/fi.po, po/it.mo, po/it.po, po/nb.mo, po/nb.po, po/pl.mo,
	po/pl.po, po/pt_BR.mo, po/pt_BR.po, po/ru.mo, po/ru.po, po/uk.mo,
	po/uk.po, po/vi.mo, po/vi.po, po/zh_CN.mo, po/zh_CN.po:
	Sync with translationproject.org
	[191a0569f]

	* plugins/sudoers/iolog.c:
	Return -1 from logging functions if we get a write error.
	[af9306cd8]

	* NEWS:
	Mention I/O plugin changes.
	[1345ebbcc]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/sudo_plugin.h, src/exec_pty.c:
	Change behavior when plugin I/O logging function returns 0 or -1.
	For -1 (error) return, we now kill the command and disable the I/O
	logging function that returned the error. For a 0 (reject) return,
	we no longer display the rejected output to the user's terminal. The
	plugin API revision is now 1.6.
	[acdb6d369]

	* doc/sudoers.cat:
	regen to fix version.
	[3e13662f3]

	* plugins/sample/sample_plugin.c:
	Add trivial dirty word check to the sample output logging function.
	[136e6e616]

2014-08-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update for 1.8.11b2
	[f0af3bb6b]

	* src/sudo_edit.c:
	Fix restoration of effective uid/gid in command_details. This masked
	the effects an unset (really zero) egid. Bug 656
	[79f209dbd]

	* src/sudo.c:
	Set runas egid to the same value as runas gid if egid not specified
	by the plugin. Only affects new files created by sudoedit. Bug #656
	[4f1deee57]

	* src/sudo_edit.c:
	Don't leak temp fd in sudo_edit_copy_tfiles(). Fix fd leak in error
	path in sudo_edit_copy_tfiles().
	[5676d9874]

2014-08-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	fix typo
	[8ad53f458]

	* src/signal.c:
	We write an unsigned char, not an int, to the signal pipe.
	[db494700d]

2014-08-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_edit.c:
	Sprinkle some debugging around uid/gid setting in sudoedit.
	[a8f63191e]

	* src/sesh.c, src/sudo.c, src/sudo.h, src/sudo_edit.c,
	src/sudo_exec.h:
	Make sudoedit work with SELinux RBAC. Adapted from RedHat patches
	(Daniel Kopecek) but made to behave a bit more like the non-SELinux
	bits.
	[db35c7c0e]

	* src/sudo_edit.c:
	Refactor code that copies temp files into separate functions.
	[a147330f3]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Fix typo, .em should be .Em
	[ffbc003b7]

2014-08-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sesh.c:
	Add missing call to initprogname().
	[2c542178a]

	* lib/util/sudo_debug.c, lib/util/sudo_printf.c:
	Don't recurse infinitely until we blow the stack when the debug file
	can't be opened in the front-end. The conversation-type debug mode
	will be removed in the future.
	[2246b1827]

2014-08-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Only use the first two digits of the version number. Fixes a problem
	on RHEL 7 which has version numbers like 7.0.1406
	[dbe0b213d]

	* plugins/sudoers/linux_audit.c:
	Fix return value when kernel has no audit support.
	[fb82e823f]

	* lib/util/progname.c:
	remove unused label
	[6d8c6ed37]

2014-08-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4, autogen.sh:
	Update to automake 1.14 (no code changes).
	[b0faa6da1]

2014-08-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document the interaction between sudoers environment handling and
	the pam_env module.
	[2d22d0dca]

	* plugins/sudoers/env.c:
	Don't allow pam_env to overwrite existing variables when env_reset
	is disabled unless the variables match the black list and would
	normally be removed. It may just be better to never overwrite when
	env_reset is disabled.
	[c49ca1d31]

2014-08-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Update year range to include 2014
	[2f472d596]

2014-08-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/Makefile.in:
	Remove regress .err files in distclean target.
	[dcd505d0c]

	* lib/util/Makefile.in, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in:
	Remove generated files for linker as part of distclean.
	[69762d888]

	* .hgignore:
	Ignore .out and .err files in lib/util regress
	[bd57aad60]

	* NEWS:
	Add additional 1.8.11 changes and fix typos.
	[53a251dc0]

	* configure, configure.ac, plugins/sudoers/Makefile.in:
	Avoid building/running the check_symbols test program unless we are
	building a shared sudoers plugin.
	[696080917]

	* plugins/sudoers/Makefile.in, src/Makefile.in:
	Remove two instances of -no-fast-install that were missed before.
	[dd43530f0]

	* INSTALL, NEWS, configure, configure.ac, lib/util/Makefile.in:
	Add --disable-shared-libutil configure option. It may only be used
	in conjunction with the --enable-static-sudoers option.
	[76a6dad42]

2014-08-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/Makefile.in:
	Remove noop man.sed files Use full path instead of $@.in when
	calling config.status with --file=-
	[779946ea3]

	* src/preserve_fds.c:
	Fix "sudo -C" when we have internal fds to preserve from
	closefrom().
	[703263bf0]

2014-08-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/env.c:
	Add explicit support for matching the full environment string
	(name=value). Bash functions may now be preserved for full matches,
	but not for name-only matches.
	[df0fd4153]

2014-08-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* .hgignore:
	Ignore lib/util/util.exp
	[84fa5a505]

2014-07-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Fix exporting of asprintf/vasprintf symbols.
	[d75d22e98]

	* configure, configure.ac:
	Don't export getaddrinfo symbols if we found the function in a
	library.
	[0a9e9016f]

	* src/sudo_edit.c:
	It is now sudo_efree() not efree(). Don't try to free a pointer to
	garbage on error.
	[7a988d489]

	* plugins/sudoers/po/sudoers.pot, po/sudo.pot:
	Regen .pot files
	[080d0e650]

2014-07-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_edit.c:
	Plug memory leak, even though we are headed for exit.
	[edf0d3970]

	* configure, configure.ac, lib/util/Makefile.in,
	plugins/sudoers/Makefile.in:
	If getaddrinfo() is missing libsudoutil may need to pull in
	networking libraries.
	[f29880c1c]

	* MANIFEST, configure, configure.ac, include/sudo_compat.h,
	lib/util/Makefile.in, lib/util/util.exp.in, m4/sudo.m4:
	Only include functions in util.exp that are actually in the library.
	Fixes a problem on Solaris where undefined functions that are listed
	as exported in the map file result in a link error. Also make sure
	we use our glob.c if the system is missing glob().
	[daf634b72]

	* configure, configure.ac:
	Make sure shadow libs don't end up in LIBS, only SUDOERS_LIBS (and
	SUDO_LIBS if set_auth_parameters() or initprivs() are present.
	[f99a91023]

	* configure.ac:
	No need to AC_SUBST HAVE_BSM_AUDIT and HAVE_SOLARIS_AUDIT
	[58a59896b]

2014-07-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_pty.c, src/sudo_exec.h:
	Attempt to handle systems with SA_SIGINFO but that lack SI_USER.
	[ae0014d6f]

	* config.h.in, configure, configure.ac, include/sudo_compat.h:
	Replace use of HAVE_GETCWD with PREFER_PORTABLE_GETCWD. It is safe
	to assume getcwd() exists, we just need to handle broken ones.
	[99ae71452]

	* config.h.in, configure, configure.ac, plugins/sudoers/Makefile.in:
	Add check for inet_ntoa() since it may live in libnsl. Make getcwd()
	replacement private to the SunOS 4 section.
	[b0a09fb67]

	* plugins/sudoers/match.c:
	Avoid mixing declarations and code for non-C99 compilers.
	[014edc20a]

	* include/sudo_debug.h:
	For C89, use "const char __func__[]" instead of "const char
	*__func__".
	[120f0684b]

	* plugins/sudoers/match.c:
	Fix compilation on systems w/o netgroups.
	[d058611bd]

2014-07-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/preserve_fds.c:
	Back out old workaround for sudoedit hang when debugging was
	enabled.
	[787a89ed0]

	* src/sudo_edit.c:
	Don't memcpy() the preserved_fds TAILQ as the pointers into the head
	will be wrong. All we need to do is save the old command details and
	restore them after calling run_command(). Fixes a hang with sudoedit
	when debugging is enabled.
	[6f77ffd7c]

2014-07-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo.c:
	The default policy close function should only print an error message
	if the error_code is non-zero.
	[32a837623]

	* src/preserve_fds.c:
	If there the preserved fds list is empty, add a new element with
	TAILQ_INSERT_HEAD instead of TAILQ_INSERT_TAIL to avoid an infinite
	loop on AIX, Solaris and possibly others when debug mode is active.
	[7e5a23974]

	* lib/util/progname.c:
	Remove support for getting program name via /proc as pr_fname is
	usually filled in after symbolic links have been processed, even on
	Solaris.
	[8c86e5c11]

	* lib/util/Makefile.in:
	Use shlib_enable instead of soext when determining whether to
	install the library.
	[ceb1f6eae]

	* lib/util/regress/atofoo/atofoo_test.c:
	Avoid potential division by zero
	[cd56a8759]

	* lib/util/Makefile.in:
	Don't link progname test with libsudo_util, just link in progname.lo
	directly since that is all we need. Avoid a linker issue on darwin.
	[ebbd62eac]

	* lib/util/progname.c:
	Remove pstat_getproc() path as pst_ucomm on HP-UX will return the
	target of a symbolic link and not the name of the link itself. Avoid
	using pr_fname on AIX for the same reason. Bug 654
	[742152447]

	* MANIFEST, lib/util/Makefile.in,
	lib/util/regress/progname/progname_test.c:
	Add test for getprogname() and symbolic links; bug 654
	[f6fec0603]

2014-07-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	Document tracing
	[5ff2c8025]

2014-07-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lib/util/util.exp:
	sudo_term_{erase,kill} are regular symbols not functions.
	[536e5f418]

2014-07-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Fix NULL deref if base64_decode returns -1.
	[28f6ee5f9]

	* MANIFEST, include/sudo_compat.h, lib/util/Makefile.in,
	lib/util/aix.c, lib/util/alloc.c, lib/util/clock_gettime.c,
	lib/util/closefrom.c, lib/util/event.c, lib/util/event_poll.c,
	lib/util/event_select.c, lib/util/fatal.c, lib/util/fnmatch.c,
	lib/util/getaddrinfo.c, lib/util/getcwd.c, lib/util/getgrouplist.c,
	lib/util/getline.c, lib/util/getopt_long.c, lib/util/gidlist.c,
	lib/util/glob.c, lib/util/inet_pton.c, lib/util/isblank.c,
	lib/util/key_val.c, lib/util/lbuf.c, lib/util/locking.c,
	lib/util/memrchr.c, lib/util/memset_s.c, lib/util/mksiglist.c,
	lib/util/mksigname.c, lib/util/mktemp.c, lib/util/parseln.c,
	lib/util/progname.c, lib/util/pw_dup.c,
	lib/util/regress/atofoo/atofoo_test.c,
	lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/glob/globtest.c,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/tailq/hltq_test.c, lib/util/secure_path.c,
	lib/util/setgroups.c, lib/util/sha2.c, lib/util/sig2str.c,
	lib/util/snprintf.c, lib/util/strlcat.c, lib/util/strlcpy.c,
	lib/util/strsignal.c, lib/util/strtobool.c, lib/util/strtoid.c,
	lib/util/strtomode.c, lib/util/strtonum.c, lib/util/sudo_conf.c,
	lib/util/sudo_debug.c, lib/util/sudo_dso.c, lib/util/sudo_printf.c,
	lib/util/term.c, lib/util/ttysize.c, lib/util/utimes.c,
	plugins/group_file/Makefile.in, plugins/group_file/getgrent.c,
	plugins/group_file/group_file.c, plugins/sample/Makefile.in,
	plugins/sample/sample_plugin.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/audit.c, plugins/sudoers/base64.c,
	plugins/sudoers/boottime.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/hexchar.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/locale.c, plugins/sudoers/redblack.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/timestr.c, plugins/system_group/Makefile.in,
	plugins/system_group/system_group.c, src/Makefile.in,
	src/locale_stub.c, src/net_ifs.c, src/preload.c,
	src/regress/ttyname/check_ttyname.c, src/sesh.c, src/sudo.h,
	src/sudo_noexec.c:
	Rename missing.h -> sudo_compat.h
	[47835ff28]

	* MANIFEST, include/secure_path.h, include/sudo_util.h,
	lib/util/Makefile.in, lib/util/secure_path.c, lib/util/sudo_conf.c,
	plugins/sudoers/Makefile.in, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Merge secure_path.h -> sudo_util.h
	[ecaecdc1f]

	* include/secure_path.h, include/sudo_alloc.h, include/sudo_conf.h,
	include/sudo_dso.h, include/sudo_event.h, include/sudo_fatal.h,
	include/sudo_lbuf.h, include/sudo_util.h, lib/util/aix.c,
	lib/util/alloc.c, lib/util/event.c, lib/util/fatal.c,
	lib/util/gidlist.c, lib/util/key_val.c, lib/util/lbuf.c,
	lib/util/locking.c, lib/util/parseln.c, lib/util/secure_path.c,
	lib/util/setgroups.c, lib/util/strtobool.c, lib/util/strtoid.c,
	lib/util/strtomode.c, lib/util/sudo_conf.c, lib/util/sudo_dso.c,
	lib/util/term.c, lib/util/ttysize.c, lib/util/util.exp,
	plugins/sudoers/locale.c, src/locale_stub.c:
	Version the functions in libsudo_util
	[844a28539]

2014-07-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_gettext.h, lib/util/Makefile.in, lib/util/aix.c,
	lib/util/alloc.c, lib/util/fatal.c, lib/util/gidlist.c,
	lib/util/strsignal.c, lib/util/strtoid.c, lib/util/strtomode.c,
	lib/util/strtonum.c, lib/util/sudo_conf.c, lib/util/sudo_debug.c,
	plugins/sudoers/Makefile.in, plugins/sudoers/audit.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/locale.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoreplay.c, src/Makefile.in, src/locale_stub.c,
	src/net_ifs.c, src/sesh.c, src/sudo.h:
	Rename gettext.h -> sudo_gettext.h
	[127ba1354]

	* include/sudo_fatal.h, lib/util/Makefile.in, lib/util/aix.c,
	lib/util/alloc.c, lib/util/event.c, lib/util/event_poll.c,
	lib/util/event_select.c, lib/util/fatal.c, lib/util/getopt_long.c,
	lib/util/gidlist.c, lib/util/lbuf.c,
	lib/util/regress/atofoo/atofoo_test.c,
	lib/util/regress/tailq/hltq_test.c, lib/util/sudo_conf.c,
	lib/util/sudo_debug.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/locale.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoreplay.c,
	src/Makefile.in, src/locale_stub.c, src/net_ifs.c,
	src/regress/ttyname/check_ttyname.c, src/sesh.c, src/sudo.h:
	Rename fatal.h -> sudo_fatal.h
	[3687b665c]

	* include/sudo_conf.h, include/sudo_event.h, include/sudo_queue.h,
	lib/util/Makefile.in, lib/util/fatal.c,
	lib/util/regress/tailq/hltq_test.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoreplay.c,
	src/Makefile.in, src/hooks.c:
	Rename queue.h -> sudo_queue.h to avoid collisions with the system
	version.
	[b45727cef]

	* include/sudo_debug.h, lib/util/sudo_debug.c:
	Conver sudo_debug_write() to a macro
	[d7c309f70]

2014-07-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/fixman.sh, doc/fixmdoc.sh:
	Fix man page post-processing; it was deleting more than intended.
	[2b104d6b3]

2014-07-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/Makefile.in:
	Remove double $(srcdir) when running sed scripts.
	[c6879683a]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	"an EXEC tag" not "a EXEC tag"
	[a1da1d1e4]

	* doc/sudoers.cat:
	Document that I/O logging is not enabled by default.
	[0d6e81ee5]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document that exec_background is off by default.
	[64005c2e0]

2014-07-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sesh.c:
	Error out if sesh is run as a login shell but the shell it needs to
	run has no slash. This shouldn't happen in practice.
	[fb96eb244]

	* MANIFEST, lib/util/Makefile.in, lib/util/mksiglist.c,
	lib/util/mksiglist.h, lib/util/mksigname.c, lib/util/mksigname.h:
	Move mksiglist.h and mksigname.h to lib/util where they belong.
	[9071e9508]

	* config.h.in, configure, configure.ac, include/missing.h,
	lib/util/progname.c, lib/util/util.exp, plugins/sudoers/Makefile.in:
	Avoid passing -no-fast-install to libtool as this results in the
	build dir being left in the library path of the installed
	executable. Instead, we remove the "lt-" prefix from the program
	name in initprogname() so that the regress test output is unaffected
	by libtool's binary wrapper.
	[96d1967ab]

	* sudo.pp:
	Fix syntax error with some shells.
	[4bc4522ed]

2014-07-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Force libtool to use runtime linking on AIX so that it installs the
	plugins as .so files and not .a files.
	[00bac387b]

	* plugins/sudoers/ldap.c:
	Be sure to NUL-terminate the decoded secret when converting from
	base64.
	[430ad0fa8]

	* plugins/sudoers/ldap.c:
	Fix a pointer signednes warning calling base64_decode().
	[b5a6037a6]

	* lib/util/getgrouplist.c:
	Use sudo_strtoid() now that it is located in the same library.
	[9f3caa5a6]

	* lib/util/strtoid.c:
	Skip leading space (ala strtol) so that we can pick up the sign even
	if it is not the first character of the string.
	[c10c9cd5e]

2014-07-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	For sudoedit, audit the actual editor being run, not just the
	sudoedit command.
	[cedc34561]

	* src/selinux.c:
	Audit failed user role changes. RedHat bz #665131
	[d5ecc1590]

	* plugins/sudoers/Makefile.in:
	Avoid running check_symbols for static sudoers
	[de56eb8b9]

	* plugins/sudoers/regress/visudo/test3.err.ok,
	plugins/sudoers/regress/visudo/test3.sh:
	Adapt to unused alias changes.
	[be9149f6c]

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in,
	plugins/sudoers/visudo.c:
	An unused alias is not really an error, even in strict mode. RedHat
	bz #604297
	[e64f1198b]

	* src/sesh.c:
	When running a login shell via sesh, make new argv[0] -shell, not
	/path/to-shell. RedHat bz #1065418
	[3f216cc2b]

2014-07-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	The RHEL sudo package allows users in group wheel to run sudo.
	[691421011]

	* Makefile.in, sudo.pp:
	Avoid packaging parent directories when they are system directories.
	Currently we just skip this when prefix is /usr
	[d86df074d]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Fix typo: sudo.d -> sudoers.d. From RedHat bz #726634
	[81a989fd1]

	* mkpkg:
	RHEL 6 and above use /etc/sudo-ldap.conf not /etc/ldap.conf
	[06076e445]

	* pp:
	For rpm, do not specify a mode in %attr for symbolic links. Avoids
	the warning "Explicit %attr() mode not applicaple to symlink"
	[16b9aed75]

2014-07-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_alloc.h, lib/util/aix.c, lib/util/event.c,
	lib/util/event_poll.c, lib/util/event_select.c, lib/util/fatal.c,
	lib/util/lbuf.c, lib/util/sudo_conf.c, plugins/sudoers/alias.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/check.c, plugins/sudoers/defaults.c,
	plugins/sudoers/env.c, plugins/sudoers/find_path.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/group_plugin.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/ldap.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/locale.c, plugins/sudoers/logging.c,
	plugins/sudoers/match.c, plugins/sudoers/policy.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/redblack.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/visudo.c, src/exec.c,
	src/exec_common.c, src/exec_pty.c, src/hooks.c, src/load_plugins.c,
	src/net_ifs.c, src/preserve_fds.c,
	src/regress/ttyname/check_ttyname.c, src/selinux.c, src/sudo.c,
	src/ttyname.c:
	efree -> sudo_efree for consistency
	[36a5767e3]

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo_plugin.cat,
	doc/sudoers.cat, doc/sudoreplay.cat, doc/visudo.cat:
	regen
	[1996777cd]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, plugins/sudoers/ldap.c:
	Add support for base64 secrets in ldap.conf and ldap.secret. Based
	on an idea from anthony AT rlost DOT com
	[c35d7f2b0]

2014-07-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	Don't use the HP compiler in preference to gcc. Some versions have
	trouble compiling lbuf.c.
	[bd0787b68]

2014-07-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Remove @SOEXT@ and @SHLIB_EXT@ now that we use libtool to install
	shared objects. Instead, use the new @SHLIB_ENABLE@ that is set to
	the value of $enable_dlopen. For sudo_noexec.so there is nothing
	special to do since the install-noexec target is only called when
	noexec is enabled by configure.
	[78d2b42b7]

	* configure, configure.ac:
	Make dynamic shared objects non-writable on HP-UX. Using writable
	DSOs can substantially increase the load time.
	[e806b9651]

	* include/fatal.h, lib/util/fatal.c, lib/util/util.exp,
	plugins/sudoers/locale.c, src/locale_stub.c:
	Add sudo_warn_strerror() that wraps strerror() with calls to
	setlocale() in sudoers so we always get the error string in the
	user's locale. Also change _warning() to take the error number as a
	parameter instead of examining errno.
	[12c3b456d]

2014-07-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, lib/util/Makefile.in, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Avoid a cppcheck warning when NSIG is not defined.
	[2bad71754]

	* include/missing.h:
	Fix typos in utimes/futimes macros.
	[5c117d480]

2014-07-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[4ad98300d]

	* configure.ac:
	Fix sudo when --disable-shared configure option was specified.
	[fb2b6e59f]

2014-06-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac, lib/util/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Use libtool to install/uninstall the plugins and sudo_noexec.
	[4e1e76a4b]

2014-07-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, m4/libtool.m4:
	Do not set an internal name for HP-UX modules, only archives. This
	works around a problem with some versions of HP-UX ld where setting
	an internal name that doesn't end in .sl causes link errors.
	[da13a1430]

	* plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/system_group/Makefile.in:
	Never build build static versions of other plugins.
	[fd7646bce]

	* lib/util/Makefile.in:
	Don't build a static libsudo_util.a unless we are linking sudoers
	statically.
	[2ab61a128]

2014-06-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, ltmain.sh, m4/libtool.m4:
	Fix my typos in the HP-UX libtool patch
	[67efcf092]

2014-06-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Mention Solaris audit.
	[fb60fd863]

	* INSTALL, MANIFEST, config.h.in, configure, configure.ac, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/audit.c,
	plugins/sudoers/solaris_audit.c, plugins/sudoers/solaris_audit.h:
	Add Solaris audit support; from Gary Winiger at Oracle.
	[18dbc52e4]

	* MANIFEST:
	Sync MANIFEST with file name changes.
	[6df640411]

	* plugins/sudoers/toke.c:
	regen
	[6217df4c1]

	* include/sudo_util.h, lib/util/Makefile.in,
	lib/util/getgrouplist.c, lib/util/gidlist.c,
	lib/util/regress/atofoo/atofoo_test.c, lib/util/strtobool.c,
	lib/util/strtoid.c, lib/util/strtomode.c, lib/util/sudo_conf.c,
	lib/util/util.exp, plugins/group_file/getgrent.c,
	plugins/sudoers/defaults.c, plugins/sudoers/iolog.c,
	plugins/sudoers/ldap.c, plugins/sudoers/match.c,
	plugins/sudoers/policy.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo_json.c,
	plugins/system_group/system_group.c, src/sudo.c:
	atobool -> sudo_strtobool atoid-> sudo_strtoid atomode ->
	sudo_strtomode
	[a8fa112a5]

	* lib/util/alloc.c, lib/util/event_select.c:
	Fix regexp damage when renaming erecalloc() -> sudo_erecalloc()
	[d6948f5a4]

	* src/sudo_edit.c:
	Handle systems like AIX that lack a way to set the modification time
	on open fds.
	[2be0929f2]

	* MANIFEST:
	update MANIFEST for alloc.h -> sudo_alloc.h change
	[1ee8afe1b]

	* include/sudo_alloc.h, lib/util/Makefile.in, lib/util/aix.c,
	lib/util/alloc.c, lib/util/event.c, lib/util/event_poll.c,
	lib/util/event_select.c, lib/util/fatal.c, lib/util/gidlist.c,
	lib/util/lbuf.c, lib/util/sudo_conf.c, lib/util/sudo_debug.c,
	lib/util/util.exp, plugins/sudoers/Makefile.in,
	plugins/sudoers/alias.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/defaults.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/getspwuid.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/group_plugin.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/ldap.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/locale.c, plugins/sudoers/logging.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.c,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/redblack.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c, src/Makefile.in, src/conversation.c,
	src/env_hooks.c, src/exec.c, src/exec_common.c, src/exec_pty.c,
	src/hooks.c, src/load_plugins.c, src/net_ifs.c, src/parse_args.c,
	src/preserve_fds.c, src/regress/ttyname/check_ttyname.c,
	src/selinux.c, src/sesh.c, src/sudo.c, src/sudo.h, src/sudo_edit.c,
	src/ttyname.c:
	Add sudo_ prefix to alloc.c functions and rename alloc.h ->
	sudo_alloc.h
	[2d61d38c2]

	* lib/util/fatal.c:
	Remove extra sudo_ prefix from vfatalxnodebug and vfatalx_nodebug.
	[c4c253847]

	* MANIFEST, include/fileops.h, include/sudo_util.h,
	lib/util/Makefile.in, lib/util/locking.c, lib/util/parseln.c,
	lib/util/regress/sudo_parseln/parseln_test.c, lib/util/sudo_conf.c,
	plugins/sudoers/Makefile.in, plugins/sudoers/sudoers.h,
	src/Makefile.in, src/sudo.h:
	Split fileops.c into parseln.c and locking.c
	[8e088e65c]

	* include/fatal.h, include/gettext.h, lib/util/aix.c,
	lib/util/alloc.c, lib/util/fatal.c, lib/util/getopt_long.c,
	lib/util/gidlist.c, lib/util/regress/atofoo/atofoo_test.c,
	lib/util/regress/tailq/hltq_test.c, lib/util/sudo_conf.c,
	lib/util/util.exp, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/defaults.c,
	plugins/sudoers/env.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/match.c,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_json.c, src/exec.c, src/exec_common.c,
	src/exec_pty.c, src/hooks.c, src/load_plugins.c, src/locale_stub.c,
	src/net_ifs.c, src/parse_args.c, src/selinux.c, src/sesh.c,
	src/signal.c, src/solaris.c, src/sudo.c, src/sudo_edit.c,
	src/tgetpass.c, src/ttyname.c, src/utmp.c:
	Rename warning/fatal -> sudo_warn/sudo_fatal to avoid namespace
	pollution in libsudo_util.so.
	[aecef4aa1]

2014-06-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_util.h, lib/util/term.c, lib/util/ttysize.c,
	lib/util/util.exp, plugins/sudoers/sudoreplay.c, src/exec_pty.c,
	src/sudo.c, src/tgetpass.c:
	Reduce name space pollution in libsudo_util.so
	[d36846a69]

	* src/solaris.c:
	Use sudo_dso_load() from libsudo_util.so instead of dlopen() since
	we no longer link sudo directly with libdl.so.
	[9b3c19cc3]

	* MANIFEST, Makefile.in, include/sudo_lbuf.h, lib/util/Makefile.in,
	lib/util/lbuf.c, lib/util/util.exp, plugins/sudoers/Makefile.in,
	plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudo_nss.h, plugins/sudoers/sudoers.h,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l, src/Makefile.in,
	src/parse_args.c:
	Don't pollute the namespace with lbuf struct and functions
	[7bafa63c1]

	* include/sudo_util.h, lib/util/gidlist.c, lib/util/util.exp,
	plugins/sudoers/policy.c, src/sudo.c:
	Rename parse_gid_list -> sudo_parse_gids to avoid namespace
	pollution.
	[6bdee0488]

	* MANIFEST, include/sudo_util.h, lib/util/Makefile.in,
	lib/util/key_val.c, lib/util/util.exp,
	plugins/sample/sample_plugin.c, plugins/sudoers/policy.c,
	src/Makefile.in, src/exec_common.c, src/parse_args.c, src/sudo.c:
	Rename fmt_string -> sudo_new_key_val to better describe its
	function.
	[9ba5d8292]

	* include/fileops.h, lib/util/fileops.c, lib/util/util.exp,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/logging.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/visudo.c, src/sudo_edit.c:
	Remove touch() from fileops.c and just call utimes/futimes directly.
	Rename lock_file -> sudo_lock_file to avoid namespace pollution
	[f029e3e74]

	* NEWS, configure, configure.ac:
	Sudo 1.8.11
	[36e828b59]

	* include/fatal.h, lib/util/fatal.c, lib/util/util.exp,
	plugins/sudoers/iolog.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c:
	Remove use of setjmp/longjmp in the sudoers plugin. We no longer
	call fatal() except in the malloc wrappers and due to libsudo_util
	there is now a single copy of fatal/fatalx.
	[2166a6afe]

	* MANIFEST, Makefile.in, doc/Makefile.in, include/alloc.h,
	include/compat/fnmatch.h, include/compat/getaddrinfo.h,
	include/compat/getopt.h, include/compat/glob.h,
	include/compat/sha2.h, include/fatal.h, include/fileops.h,
	include/lbuf.h, include/missing.h, include/secure_path.h,
	include/sudo_conf.h, include/sudo_debug.h, include/sudo_dso.h,
	include/sudo_event.h, include/sudo_util.h, install-sh,
	lib/util/Makefile.in, lib/util/fatal.c, lib/util/getaddrinfo.c,
	lib/util/pw_dup.c, lib/util/regress/fnmatch/fnm_test.c,
	lib/util/sudo_dso.c, lib/util/sudo_printf.c, lib/util/term.c,
	lib/util/util.exp, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/match.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/visudo.c,
	plugins/system_group/Makefile.in, src/Makefile.in, src/parse_args.c,
	src/preload.c:
	Add exported libsudo_util functions to util.exp and mark in headers
	using __dso_public.
	[088edcb6f]

	* config.h.in, configure, configure.ac, include/compat/fnmatch.h,
	include/compat/getaddrinfo.h, include/compat/getopt.h,
	include/compat/glob.h, include/missing.h, lib/util/clock_gettime.c,
	lib/util/closefrom.c, lib/util/fnmatch.c, lib/util/getaddrinfo.c,
	lib/util/getcwd.c, lib/util/getgrouplist.c, lib/util/getline.c,
	lib/util/getopt_long.c, lib/util/glob.c, lib/util/inet_pton.c,
	lib/util/memrchr.c, lib/util/memset_s.c, lib/util/mktemp.c,
	lib/util/pw_dup.c, lib/util/sig2str.c, lib/util/snprintf.c,
	lib/util/strlcat.c, lib/util/strlcpy.c, lib/util/strsignal.c,
	lib/util/strtonum.c, lib/util/utimes.c:
	Prefix all libc replacements with sudo_ and #define the real name to
	the sudo_ version. That way we don't pollute the libc namespace.
	[87c2fe5a3]

	* .hgignore, MANIFEST, Makefile.in, common/Makefile.in,
	compat/Makefile.in, configure, configure.ac,
	include/compat/charclass.h, include/compat/endian.h,
	include/compat/fnmatch.h, include/compat/getaddrinfo.h,
	include/compat/getopt.h, include/compat/glob.h,
	include/compat/mksiglist.h, include/compat/mksigname.h,
	include/compat/nss_dbdefs.h, include/compat/sha2.h,
	include/compat/stdbool.h, include/compat/timespec.h,
	include/compat/utime.h, lib/util/Makefile.in, lib/util/aix.c,
	lib/util/alloc.c, lib/util/atobool.c, lib/util/atoid.c,
	lib/util/atomode.c, lib/util/clock_gettime.c, lib/util/closefrom.c,
	lib/util/event.c, lib/util/event_poll.c, lib/util/event_select.c,
	lib/util/fatal.c, lib/util/fileops.c, lib/util/fmt_string.c,
	lib/util/fnmatch.c, lib/util/getaddrinfo.c, lib/util/getcwd.c,
	lib/util/getgrouplist.c, lib/util/getline.c, lib/util/getopt_long.c,
	lib/util/gidlist.c, lib/util/glob.c, lib/util/inet_pton.c,
	lib/util/isblank.c, lib/util/lbuf.c, lib/util/memrchr.c,
	lib/util/memset_s.c, lib/util/mksiglist.c, lib/util/mksigname.c,
	lib/util/mktemp.c, lib/util/progname.c, lib/util/pw_dup.c,
	lib/util/regress/atofoo/atofoo_test.c,
	lib/util/regress/fnmatch/fnm_test.c,
	lib/util/regress/fnmatch/fnm_test.in, lib/util/regress/glob/files,
	lib/util/regress/glob/globtest.c, lib/util/regress/glob/globtest.in,
	lib/util/regress/sudo_conf/conf_test.c,
	lib/util/regress/sudo_conf/test1.in,
	lib/util/regress/sudo_conf/test1.out.ok,
	lib/util/regress/sudo_conf/test2.in,
	lib/util/regress/sudo_conf/test2.out.ok,
	lib/util/regress/sudo_conf/test3.in,
	lib/util/regress/sudo_conf/test3.out.ok,
	lib/util/regress/sudo_conf/test4.in,
	lib/util/regress/sudo_conf/test4.out.ok,
	lib/util/regress/sudo_conf/test5.err.ok,
	lib/util/regress/sudo_conf/test5.in,
	lib/util/regress/sudo_conf/test5.out.ok,
	lib/util/regress/sudo_conf/test6.in,
	lib/util/regress/sudo_conf/test6.out.ok,
	lib/util/regress/sudo_parseln/parseln_test.c,
	lib/util/regress/sudo_parseln/test1.in,
	lib/util/regress/sudo_parseln/test1.out.ok,
	lib/util/regress/sudo_parseln/test2.in,
	lib/util/regress/sudo_parseln/test2.out.ok,
	lib/util/regress/sudo_parseln/test3.in,
	lib/util/regress/sudo_parseln/test3.out.ok,
	lib/util/regress/sudo_parseln/test4.in,
	lib/util/regress/sudo_parseln/test4.out.ok,
	lib/util/regress/sudo_parseln/test5.in,
	lib/util/regress/sudo_parseln/test5.out.ok,
	lib/util/regress/sudo_parseln/test6.in,
	lib/util/regress/sudo_parseln/test6.out.ok,
	lib/util/regress/tailq/hltq_test.c, lib/util/secure_path.c,
	lib/util/setgroups.c, lib/util/sha2.c, lib/util/sig2str.c,
	lib/util/siglist.in, lib/util/snprintf.c, lib/util/strlcat.c,
	lib/util/strlcpy.c, lib/util/strsignal.c, lib/util/strtonum.c,
	lib/util/sudo_conf.c, lib/util/sudo_debug.c, lib/util/sudo_dso.c,
	lib/util/sudo_printf.c, lib/util/term.c, lib/util/ttysize.c,
	lib/util/utimes.c, lib/zlib/Makefile.in, lib/zlib/adler32.c,
	lib/zlib/compress.c, lib/zlib/crc32.c, lib/zlib/crc32.h,
	lib/zlib/deflate.c, lib/zlib/deflate.h, lib/zlib/gzclose.c,
	lib/zlib/gzguts.h, lib/zlib/gzlib.c, lib/zlib/gzread.c,
	lib/zlib/gzwrite.c, lib/zlib/infback.c, lib/zlib/inffast.c,
	lib/zlib/inffast.h, lib/zlib/inffixed.h, lib/zlib/inflate.c,
	lib/zlib/inflate.h, lib/zlib/inftrees.c, lib/zlib/inftrees.h,
	lib/zlib/trees.c, lib/zlib/trees.h, lib/zlib/uncompr.c,
	lib/zlib/zconf.h.in, lib/zlib/zlib.h, lib/zlib/zutil.c,
	lib/zlib/zutil.h, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, po/README, po/ca.mo, po/ca.po,
	po/cs.mo, po/cs.po, po/da.mo, po/da.po, po/de.mo, po/de.po,
	po/eo.mo, po/eo.po, po/es.mo, po/es.po, po/eu.mo, po/eu.po,
	po/fi.mo, po/fi.po, po/fr.mo, po/fr.po, po/gl.mo, po/gl.po,
	po/hr.mo, po/hr.po, po/it.mo, po/it.po, po/ja.mo, po/ja.po,
	po/nb.mo, po/nb.po, po/nl.mo, po/nl.po, po/pl.mo, po/pl.po,
	po/pt_BR.mo, po/pt_BR.po, po/ru.mo, po/ru.po, po/sl.mo, po/sl.po,
	po/sr.mo, po/sr.po, po/sudo.pot, po/sv.mo, po/sv.po, po/tr.mo,
	po/tr.po, po/uk.mo, po/uk.po, po/vi.mo, po/vi.po, po/zh_CN.mo,
	po/zh_CN.po, src/Makefile.in:
	Top level directory reorg Move src/po -> po Combine common and
	compat -> lib/util Move zlib -> lib/zlib
	[4d37a4a16]

	* configure, ltmain.sh, m4/libtool.m4:
	libtool patches for HP-UX to support DESTDIR
	[d41276f17]

	* pp:
	Update polypkg from trunk.
	[976836a3d]

	* plugins/sudoers/sssd.c, plugins/sudoers/sudo_nss.c:
	Fix sssd compiler warnings and fix the sha2 digest support.
	[fdda9b109]

2014-06-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Don't call gss_krb5_ccache_name() with a NULL pointer when restoring
	the old credential cache file name. This can happen if there was no
	old name returned by gss_krb5_ccache_name(). Fixes a crash on
	kerberized LDAP on some platforms.
	[b5b75b2d8]

2014-06-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, doc/CONTRIBUTORS, plugins/sudoers/po/el.mo,
	plugins/sudoers/po/el.po:
	Add Greek PO file for sudoers from translationproject.org
	[7e24b8e65]

2014-05-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_pty.c:
	Ignore signals sent by the command's process group, not just the
	command itself. If we cannot determine the process group ID of the
	sender (as it may no longer exist), just check the process ID.
	[826e190f3]

2014-05-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	In handler_user_only() only forward the signal if it was not
	generated by the command. This should fix a problem with programs
	that catch SIGTSTP, perform cleanup, and then re-send the signal to
	their process group (of which sudo is the leader).
	[b121da2e2]

	* src/exec.c, src/exec_pty.c, src/signal.c:
	Handle EINTR from write(2) when writing to pipes and socket pairs.
	[d628e17ea]

2014-05-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/nb.mo, plugins/sudoers/po/nb.po:
	Norwegian Bokmaal translation for sudoers from
	translationproject.com
	[9e5a68627]

2014-05-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, doc/CONTRIBUTORS, src/po/nb.mo, src/po/nb.po:
	Norwegian Bokmaal translation for sudo from translationproject.com
	[4eb0122e9]

2014-05-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in,
	plugins/sudoers/visudo.c:
	Try to be clearer about which are the input and output files in
	export mode.
	[b0e6977c3]

	* plugins/sudoers/visudo_json.c:
	In -x mode, require that the input and output files be different.
	This won't currently catch collisions between the output file and an
	include file.
	[372e30851]

	* plugins/sudoers/bsm_audit.h, plugins/sudoers/linux_audit.h:
	BSM and Linux audit do not yet use the argc function argument.
	[eb5a36732]

	* plugins/sudoers/audit.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/bsm_audit.h, plugins/sudoers/linux_audit.h,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/sudoers.c:
	Pass argc to audit functions too. Will be needed for Solaris audit
	support.
	[337a71274]

2014-05-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/fatal.c, include/fatal.h, plugins/sudoers/policy.c:
	Do not allow the same callback function to be registered more that
	once in fatal_callback_register(). Add fatal_callback_deregister()
	to deregister a callback.
	[ffb07443c]

	* MANIFEST, plugins/sudoers/regress/sudoers/test15.in,
	plugins/sudoers/regress/sudoers/test15.out.ok,
	plugins/sudoers/regress/sudoers/test15.toke.ok,
	plugins/sudoers/regress/sudoers/test16.in,
	plugins/sudoers/regress/sudoers/test16.out.ok,
	plugins/sudoers/regress/sudoers/test16.toke.ok:
	Add trivial sudoedit parsing tests.
	[2e3fbaa2c]

	* MANIFEST, plugins/sudoers/po/ca.mo, plugins/sudoers/po/ca.po:
	Catalan translation for sudoers from translationproject.org.
	[3c5353c2b]

2014-05-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	src/po/ca.mo, src/po/ca.po, src/po/gl.mo, src/po/gl.po:
	Sync with translationproject.org
	[70f624976]

2014-05-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	lockf() is broken on the Hurd -- use flock instead Bug #647
	[e2efec5b3]

	* plugins/sudoers/visudo.c:
	Don't try to install the temporary sudoers file if we didn't edit
	it. By default, visudo does not edit files in a #includedir. Fixes a
	NULL pointer defef on GNU hurd; Bug #647
	[45ff42eb9]

2014-05-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/regress/ttyname/check_ttyname.c:
	When comparing tty names, resolve the tty for fds 0-3 and compare
	each one instead of just using the first that resolves.
	[9cdf7797c]

	* compat/getgrouplist.c, configure, configure.ac:
	Solaris 8 doesn't export _nss_initf_group() so we need to provide
	out own for getgrouplist().
	[4902f4e3e]

2014-05-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/getgrouplist.c, plugins/group_file/group_file.c,
	plugins/system_group/system_group.c:
	deal with NULL gr_mem here too
	[17cbfea8b]

	* NEWS, configure, configure.ac:
	Sudo 1.8.10p3
	[e54fe5a26]

2014-05-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/check.c,
	plugins/sudoers/env.c, plugins/sudoers/iolog.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/parse.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/timestamp.c:
	Rename log_warning flags and only send mail if SLOG_SEND_MAIL is set
	instead of mailing by default like we used to.
	[b0f1fa7d0]

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/check.c,
	plugins/sudoers/env.c, plugins/sudoers/iolog.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/parse.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/timestamp.c:
	Add log_warningx
	[954a3e77b]

	* src/exec_pty.c:
	Add debugging info for when we delete I/O events that still have
	buffered data in them.
	[7f0b9eca0]

	* common/event.c:
	Fix non-blocking mode. We only want to exit the event loop when
	poll() or select() returns 0 and there are no active events. This
	fixes a problem on some systems where the last buffer was not being
	written when the command exited.
	[4e333c516]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Change return value of switch_dir() to an int so we can distinguish
	between an error and an empty dir in push_includedir().
	[a53946b02]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Move code to fill in the list of dirs out of switch_dir and into its
	own function. Quiets a false positive from cppcheck which got
	confused due to variable reuse.
	[480a94d07]

	* plugins/sudoers/audit.c:
	Avoid unused variable warning if auditing is not supported.
	[983ab1d16]

2014-05-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Fix library order when linking binaries.
	[a297a19fb]

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y:
	Include limits.h and inttypes.h for SIZE_MAX define.
	[ffbe7d1da]

	* include/missing.h, plugins/sudoers/env.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y:
	Move SIZE_MAX compat define into missing.h where it belongs.
	[0a9a8d956]

2014-04-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c:
	Remove now-unused log_fatal()
	[cbee9cc8c]

	* plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/env.c, plugins/sudoers/ldap.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Eliminate calls to fatal()/fatalx()/log_fatal() in env.c and just
	pass back a return value.
	[5086194c6]

2014-04-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/boottime.c, plugins/sudoers/sudoers.h:
	Make get_boottime() return bool.
	[e45b388a3]

	* doc/CONTRIBUTORS, plugins/sudoers/boottime.c:
	Fix fd leak on Linux when determing boot time. This is usually
	masked by the closefrom() call in sudo. From Jamie Anderson. Bug
	#645
	[e61af9e6d]

2014-04-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/audit.c:
	Handle the (currently impossible) case where both BSM and Linux
	auditing are supported. Pacifies cppcheck.
	[d3b432671]

	* plugins/sudoers/iolog.c:
	Don't call ferror() on a closed stream, just check the return value
	of fclose() instead. Found by cppcheck.
	[bd86ced96]

2014-04-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS, plugins/sudoers/auth/pam.c:
	Use calloc() instead of malloc(n * s) followed by memset(). From
	Jean-Philippe Ouellet.
	[e8bb08cc4]

	* plugins/sudoers/sudoers.c:
	Format string safety in error path.
	[62a278183]

	* common/alloc.c, common/event_poll.c, common/gidlist.c,
	common/sudo_conf.c, include/alloc.h, plugins/sudoers/auth/sia.c,
	plugins/sudoers/env.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/ldap.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/visudo.c,
	src/env_hooks.c, src/exec_common.c, src/parse_args.c, src/selinux.c,
	src/sudo.c, src/sudo_edit.c, src/ttyname.c:
	Rename emalloc2() -> emallocarray() and erealloc3() ->
	ereallocarray().
	[134b2a422]

	* compat/Makefile.in, mkdep.pl, plugins/sudoers/Makefile.in:
	Add missing rule for building sha2.lo when not supported by libc or
	libmd.
	[28b564daa]

2014-04-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.in:
	Disable I/O logging for halt and poweroff in addition to reboot in
	commented out example.
	[b4262391e]

	* doc/CONTRIBUTORS, plugins/sudoers/auth/pam.c:
	Use PAM_REINITIALIZE_CRED instead of PAM_ESTABLISH_CRED when
	changing the user. This is the correct flag to use with a program
	that changes the uid like su or sudo and fixes a role problem on
	Solaris. From Gary Winiger; Bug #642
	[7d91691e1]

	* plugins/sudoers/defaults.c:
	pam_setcred should default to true; from Gary Winiger Bug #642
	[278a8ba39]

2014-04-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c, plugins/sudoers/logging.c,
	plugins/sudoers/parse.c, plugins/sudoers/policy.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestamp.c:
	Make set_perms() and restore_perms() return an error instead of
	calling exit() on failure.
	[a78da3748]

	* plugins/sudoers/sudoers.c:
	Eliminate calls to fatal() in sudoers.c and just pass back a return
	value.
	[40375a626]

	* plugins/sudoers/logging.c:
	Elimate calls to fatal() in the logging code.
	[a48c00dc3]

2014-04-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/regress/atofoo/atofoo_test.c:
	Quiet a compiler warning on Solaris.
	[db831ace3]

	* MANIFEST, common/Makefile.in, compat/Makefile.in, compat/sha2.c,
	compat/sha2.h, config.h.in, configure, configure.ac, m4/sudo.m4,
	plugins/sudoers/Makefile.in, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/match.c,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/sudoers/test14.toke.ok,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	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.
	[218aa1e59]

	* MANIFEST, plugins/sudoers/match.c,
	plugins/sudoers/regress/testsudoers/test6.out.ok,
	plugins/sudoers/regress/testsudoers/test6.sh,
	plugins/sudoers/regress/testsudoers/test7.out.ok,
	plugins/sudoers/regress/testsudoers/test7.sh:
	Fix matching of uids and gids broken in sudo 1.8.9.
	[27aff732f]

	* plugins/sudoers/testsudoers.c:
	Fix -P option in usage()
	[ecae6b4f9]

2014-04-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c, plugins/sudoers/prompt.c,
	plugins/sudoers/set_perms.c:
	Remove a few more unnecessary uses of fatal().
	[b1cdb3708]

	* plugins/sudoers/auth/sudo_auth.c:
	Use log_warning() not log_fatal() for the "Invalid authentication
	methods compiled into sudo" message. We return -1 on error anyway.
	[d702ee981]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Return MODE_ERROR from sudoers_policy_deserialize_info() instead of
	calling fatalx().
	[2a290f812]

	* common/gidlist.c, src/sudo.c:
	parse_gid_list() now returns -1 on error instead of calling
	fatalx().
	[ac3ffde5e]

2014-04-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	Forward SIGINFO to running command if supported. If the command is
	being run in the background (or exec_background is set in sudoers),
	it is the sudo process, not the actual command, that receives the
	^T.
	[36b991348]

	* plugins/sudoers/defaults.h, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_path.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	Remove calls to log_fatal() in I/O log functions and just pass an
	error back to the caller.
	[9b7dfa752]

2014-04-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/alloc.c, plugins/sudoers/env.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/policy.c,
	plugins/sudoers/prompt.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c:
	Make "internal error, %s overflow" arguments consistent, using
	__func__ where possible (when debugging is allowed).
	[6a295400b]

2014-03-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke_util.c, src/net_ifs.c:
	Use common printf format when warning of buffer overflow prevention.
	[a1240a541]

	* Makefile.in:
	Remove init.d/*.sh in distclean
	[e0415632e]

	* .hgignore:
	Correctly ignore init.d/*.sh
	[275b2edbd]

	* plugins/sudoers/ldap.c:
	Remove remaining calls to fatalx(); just pass the error to the
	caller.
	[7d994b503]

2014-03-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/pwutil.c, plugins/sudoers/sudoers.h:
	Make a password/group cache collision a warning rather than fatal.
	This should not be possible in practice and we can safely return the
	new (potentially duplicate) item as it will be freed by the caller.
	Make sudo_set_grlist() return an error on failure instead of calling
	fatalx().
	[2d1484fe8]

	* plugins/sudoers/timestamp.c:
	Use log_warning() instead of log_fatal() if the ticket or lecture
	path is too long and just return an error. This can only happen from
	a misconfiguration so just ignoring the ticket/lecture file is safe.
	[db5481599]

	* plugins/sudoers/find_path.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	In find_path(), return NOT_FOUND_ERROR instead of calling fatal() if
	the path is too long. Remove an extraneous check against PATH_MAX in
	set_cmnd() since find_path() already contains such a check.
	[639ac92e6]

	* plugins/sudoers/sudoers.h:
	Remove unused MODE_LISTDEFS define and correct a comment.
	[4848b5691]

	* plugins/sudoers/hexchar.c, plugins/sudoers/match.c,
	plugins/sudoers/toke_util.c:
	Make hexchar() return -1 on invalid input instead of calling
	fatalx(). Callers used to check that the string was hex before
	calling hexchar(). Now callers must check for a -1 return value
	instead.
	[9ff3b1b57]

	* plugins/sudoers/audit.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/bsm_audit.h, plugins/sudoers/linux_audit.c,
	plugins/sudoers/logging.h, plugins/sudoers/sudoers.c:
	Propagate errors in audit code to caller instead of using fatal().
	If we fail to audit an otherwise successful command, return an error
	from the policy. For Linux audit, sudo may be compiled with audit
	support but auditing may not be setup, so we don't consider that an
	error.
	[2220f55ae]

	* plugins/sudoers/boottime.c:
	Remove unused variable on Linux.
	[7d7f9cb55]

	* plugins/sudoers/timestamp.c:
	Fix warning on systems where mode_t is not unsigned int (Solaris).
	[2dfc10830]

2014-03-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/env.c, plugins/sudoers/sudoers.c:
	Audit path too long errror. Add comments about non-audit events and
	placeholders for future audit hooks.
	[1017ad4e2]

2014-02-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/API, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h:
	Remove unused FLAG_USER auth flag. We have no auth methods that
	require that authentication be run as the invoking user.
	[4e3e5077e]

2014-03-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/net_ifs.c:
	Fix aliasing warning in old-style interface probe code.
	[6a7ebd280]

	* plugins/sudoers/set_perms.c:
	Fix some sign comparision warnings.
	[a5aeaf20d]

	* common/aix.c, common/gidlist.c, compat/getgrouplist.c,
	include/sudo_util.h, src/sudo.c:
	Don't call fatal/fatalx in common/*.c
	[250e8e750]

2014-03-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c, plugins/sudoers/prompt.c,
	plugins/sudoers/sudoers.h:
	Fix expansion of %p in the prompt for "sudo -l" when rootpw, runaspw
	or targetpw is set. Bug #639
	[3cdb944de]

2014-03-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.ac:
	Sudo 1.8.10p2
	[122257e09]

	* plugins/sudoers/timestamp.c:
	Don't write an empty timestamp record when timestamp_timeout is
	zero. If we find an empty record in the timestamp file, overwrite it
	with a good one, truncating the file as needed.
	[4d712aa90]

2014-03-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Fix typos in description of the -x option. Bug #637
	[60cf68ad1]

2014-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.ac:
	Sudo 1.8.10p1
	[01cf646a7]

	* plugins/sudoers/timestamp.c:
	Fix typo/thinko that prevented "Defaults !tty_tickets" from working.
	[403a48da4]

	* plugins/sudoers/parse.c:
	Fix "sudo -l command" output when the matching command is negated.
	Bug #636
	[35c41deb4]

2014-03-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/Makefile.in, common/regress/atofoo/atofoo_test.c,
	common/regress/sudo_conf/test5.err.ok,
	common/regress/tailq/hltq_test.c:
	The atofoo_test and hltq_test tests now display their own test error
	rate. Display pass/fail count separately for sudo_conf and
	sudo_parseln tests. Check stderr output for the sudo_conf test.
	[967fda0fb]

	* src/Makefile.in:
	Don't run the check_ttyname test if cross compiling.
	[f12a546a5]

	* plugins/sudoers/Makefile.in:
	CWD no longer used.
	[5c6d2ad68]

	* plugins/sudoers/Makefile.in:
	Fix diff of toke and err output files in "make check"
	[ee135ea26]

2014-03-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/po/de.mo, src/po/de.po:
	sync with translationproject.org
	[7dec05d7d]

2014-03-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Check whether ber.h is needed before ldap.h even if we are not using
	any ber functions. Needed for older versions of nss ldap.
	[0cf7f404a]

	* plugins/sudoers/sssd.c:
	Fix compiler warning in debug code.
	[8461dc6e2]

	* MANIFEST, NEWS, doc/CONTRIBUTORS, src/po/ca.mo, src/po/ca.po:
	Catalan translation for sudo from translationproject.org.
	[ed87af2ae]

2014-03-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Document negation fix in JSON output.
	[23e7f606a]

2014-03-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo_json.c:
	Fix handling of '!' operator when converting sudoers. We now add a
	"negated" boolean flag to objects that have the '!' operator.
	[0030bfe7d]

2014-03-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, NEWS, plugins/sudoers/po/cs.mo,
	plugins/sudoers/po/cs.po:
	Czech translation for sudoers from translationproject.org
	[c934882c3]

2014-02-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Try -libmldap before -lldap in case there is no link from
	libibmldap.so to libldap.so. Since IBM ldap is installed under /opt
	we should only be able to reach it if --with-ldap was given an
	explicit path.

	Only check for ber_set_option() if LBER_OPT_DEBUG_LEVEL is defined.
	[9c17914bf]

2014-02-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/set_perms.c:
	Fix typo in setreuid() PERM_ROOT error message.
	[d75e5f6fe]

	* mkpkg:
	No longer need to disable setresuid() on debian.
	[d8f94bdfd]

2014-02-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/timestamp.c:
	Fix conversion of timestamp_timeout from double to struct timeval.
	Also quiet a printf format warning on 32-bit systems.
	[f2f96d849]

2014-02-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, NEWS, plugins/sudoers/po/sr.mo,
	plugins/sudoers/po/sr.po:
	Serbian translation for sudoers from translationproject.org.
	[b41f5c2d3]

2014-02-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS:
	Add Ingo Schwarze
	[addef6224]

	* NEWS, plugins/sudoers/visudo_json.c:
	When exporting sudoers in JSON format, use the same type of Options
	object for both Defaults and Cmnd_Specs.
	[58341a8bf]

2014-02-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/inet_pton.c:
	Silence cppcheck false positive.
	[c38207138]

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po:
	sync with translationproject.org
	[0cdf4407d]

	* NEWS, doc/UPGRADE:
	Mention init.d scripts on AIX and HP-UX Mention sudoers group
	mismatch fix
	[6bffa9a4a]

	* INSTALL:
	Talk about clearing files at boot time, not reboot time since it
	happens when the system comes up, not down.
	[53d9429b8]

	* plugins/sudoers/sudoers.c:
	We also need to open the sudoers file as root if there is a GID
	mismatch.
	[c6e310b94]

	* sudo.pp:
	Install /etc/rc.d/init.d/sudo and /etc/rc.d/rc2.d/S90sudo for AIX
	rpm packages.
	[2b4bc87c0]

2014-02-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/Makefile.in:
	Remove init.d file and link in uninstall target.
	[0e9b4d30c]

	* configure, configure.ac, sudo.pp:
	Fix INIT_DIR for real this time.
	[cb3cea3fa]

	* configure, configure.ac, sudo.pp:
	Use correct init.d dir on HP-UX. Fix pp warnings from rc.d and
	init.d dirs.
	[0bf299c69]

	* .hgignore, MANIFEST, configure, configure.ac, init.d/aix.sh.in,
	init.d/hpux.sh.in, src/Makefile.in, sudo.pp:
	First cut add installing an init.d file for HP-UX and AIX to remove
	old sudo timestamp files at boot time.
	[96d87d55d]

2014-02-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Use .Ar macro instead of "file ..." Use ".Cm -" instead of ".Li -"
	for the default login class. From Ingo Schwarze.
	[a61935c2b]

	* doc/sudo.conf.mdoc.in, doc/sudo.mdoc.in, doc/sudo_plugin.mdoc.in,
	doc/sudoers.ldap.mdoc.in, doc/sudoers.mdoc.in,
	doc/sudoreplay.mdoc.in, doc/visudo.mdoc.in:
	Remove some extraneous markup; from Ingo Schwarze * No need to
	explicitly end a macro with No before | because | counts as middle
	punctuation and falls out of the macro, anyway. * No need to
	explicitly re-open in-line macros after | because | counts as middle
	punctuation and the macros resume afterwards, anyway. * Simplify the
	mnemonic remarks regarding the option letters, no need for manual
	font and spacing control with No and Ns. * Trim Ns No to just Ns, it
	already implies No.
	[f909c0d13]

	* doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Move zerowidth space in :alpha: after the colon for consistency.
	[d6397e27c]

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.man.in, doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudoers.cat, doc/sudoers.ldap.man.in, doc/sudoers.man.in,
	doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/visudo.cat,
	doc/visudo.man.in:
	regen
	[0ec92dae8]

	* doc/sudo.mdoc.in, doc/sudoreplay.mdoc.in, doc/visudo.mdoc.in:
	Remove extraneous keeps in SYNOPSIS now that mandoc does implied
	keeps when converting from mdoc to man.
	[a9cfe4fc4]

	* doc/sudoers.mdoc.in:
	Properly escape the : in :alpha:
	[94d448223]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Replace some uses of .Sy with .Ar, .Ev and .Pa as appropriate. From
	Jan Stary.
	[28c49748a]

2014-02-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo_json.c:
	Fix indentation of Defaults entries. The initial indent should be
	outside the loop iterating over the entries.
	[0a6ec9615]

2014-02-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po:
	sync with translationproject.org
	[198e73b5c]

	* common/aix.c, common/alloc.c, common/atoid.c, common/atomode.c,
	common/fatal.c, common/gidlist.c, common/sudo_conf.c,
	common/sudo_debug.c, compat/strsignal.c, compat/strtonum.c,
	plugins/sudoers/audit.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/locale.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/visudo.c, plugins/sudoers/visudo_json.c,
	src/locale_stub.c, src/net_ifs.c, src/sesh.c, src/sudo.h:
	We must include gettext.h before missing.h as it includes system
	headers. Also add missing DEFAULT_TEXT_DOMAIN defines in sudoers
	audit code that does not include sudoers.h.
	[12a1b672c]

	* common/sudo_dso.c:
	When emulating DSO_NEXT with shl_get() we need to skip the program's
	handle. This used to be documented as being index -2 but now it
	seems to be index 0. As this is not guaranteed we need to look up
	the real handle value for PROG_HANDLE and skip it when interating
	through all the DSOs. Fixes infinite recursion on HP-UX in the
	getenv() replacement.
	[02d86aafe]

	* src/env_hooks.c:
	Export getenv() so it is visible to shared objects we link with.
	[151f001d8]

2014-02-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/regress/atofoo/atofoo_test.c,
	common/regress/sudo_conf/conf_test.c,
	common/regress/sudo_parseln/parseln_test.c,
	common/regress/tailq/hltq_test.c,
	plugins/sudoers/regress/parser/check_fill.c:
	Add some initprogname() calls to the test programs.
	[d748ebe48]

2014-02-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot:
	regen
	[8b94d558d]

	* doc/UPGRADE:
	Mention that there is now a default LDAP search filter.
	[414edf65e]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Minor word choice change.
	[a54e52d58]

	* NEWS, doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/ldap.c, plugins/sudoers/match.c:
	Add use_netgroups sudoers option. For LDAP-based sudoers, netgroup
	support requires an expensive substring match on the server. If
	netgroups are not needed, this option can be disabled to reduce the
	load on the LDAP server.
	[8287e21d3]

2014-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Update copyright year.
	[7a1cd11c0]

	* NEWS:
	Mention LDAP changes.
	[4727c52e1]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, plugins/sudoers/ldap.c:
	Use a default LDAP search filter of (objectClass=sudoRole). When
	constructing the netgroup query, add (sudoUser=*) to the query so we
	don't fall below the 3 character OpenLDAP substring threshold.
	Otherwise the index for sudoUser will never be used for that query.
	Pointed out by Michael Stroeder.
	[f7a419b5f]

	* plugins/sudoers/timestamp.c:
	Don't warn about an insecure lecture dir twice. Display warnings in
	the user's locale.
	[b299763e3]

2014-02-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Mention the fix for ^Z at the password prompt when sudo was started
	in the background.
	[4e733589e]

	* common/term.c, src/exec_pty.c:
	In term_restore(), only restores the terminal if we are in the
	foregroup process group. Instead of calling tcgetpgrp(), which is
	racy, we set a temporary handler for SIGTTOU and check whether it
	was received after a failed call to tcsetattr().
	[135c85e15]

	* MANIFEST, compat/getaddrinfo.c, compat/inet_pton.c, config.h.in,
	configure, configure.ac, doc/LICENSE, include/missing.h, mkdep.pl,
	plugins/sudoers/interfaces.c, plugins/sudoers/match_addr.c:
	Use inet_pton() instead of inet_aton() and include a version from
	BIND for those without it.
	[85598f77b]

	* common/regress/atofoo/atofoo_test.c:
	Quiet a gcc warning.
	[91141e5cc]

	* compat/getaddrinfo.c:
	Need to include limits.h for USHRT_MAX.
	[fbfe7caba]

2014-02-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/term.c, include/sudo_util.h:
	Use bool for function return values instead of 1 or 0.
	[08af9d051]

	* configure, configure.ac:
	Warn the user if the rundir needs to be cleared in the rc files.
	Neither AIX not HP-UX clear /var/run (if it even exists).
	[249becb1a]

	* NEWS:
	Update for sudo 1.8.9p5
	[b1851f693]

	* src/preserve_fds.c:
	When the closefrom limit is greater than any of the preserved fds,
	the pfds list will be non-empty but lastfd will be -1 triggering an
	ecalloc(0) assertion. Instead, test for lastfd being -1 and make
	sure we always update it, even if dup() fails. Also restore initial
	value of lowfd after we are done relocating. Fixes bug #633
	[31858894c]

	* common/term.c:
	Document function return values.
	[c8984598e]

2014-02-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	term_restore() now restarts itself so we don't need to do it
	ourselves.
	[b1de1bce3]

	* common/term.c:
	syscall restarting is broken on Mac OS X when interrupted by a tty
	signal so restart tcsetattr() by hand. For details, see.
	http://openradar.appspot.com/radar?id=6402578615107584
	[a61abeb36]

	* MANIFEST, common/Makefile.in, common/regress/atofoo/atofoo_test.c:
	Add regress for atobool(), atoid() and atomode()
	[26f2dd3b9]

	* plugins/sudoers/Makefile.in:
	Add back boottime.lo
	[efd31a31e]

	* INSTALL:
	Mention that rundir and vardir may be the same and what to do if
	they are.
	[7292e607f]

	* MANIFEST, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, plugins/sudoers/boottime.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/timestamp.c:
	Bring back boot time checking code and zero out time stamp files
	that predate the boot time. This should help systems w/o /var/run
	where the admin has setup rc.d to clear the timestamp directory.
	[7155fc526]

	* configure, configure.ac:
	Check libraries for inet_pton() if not in libc.
	[b590182ab]

2014-02-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Fix clock_gettime() detection when it lives in librt. Some systems
	have inet_aton() in libresolv (older Solaris).
	[719e58740]

	* sudo.pp:
	Avoid duplicate directories if vardir and rundir are the same.
	[4831eeaac]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[a9a7768d5]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Elaborate on time stamp error message causes.
	[5502051eb]

2014-02-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Remove the time stamp dir and its contents when uninstalling. We
	currently leave the lecture status files installed until there is a
	better way to detect upgrades.
	[17ab16824]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Update time stamp error messages and regen.
	[23c224953]

	* plugins/sudoers/timestamp.c:
	Restore warning when sudoers is unable to update the time stamp
	file.
	[32b897ac6]

	* INSTALL, Makefile.in, configure, configure.ac,
	doc/sudoers.mdoc.in, m4/sudo.m4, plugins/sudoers/Makefile.in,
	sudo.pp:
	Replace --with-timedir and --with-lecture_dir with --with-rundir and
	--with-vardir which are the parent directories of the time stamp and
	lecture dirs. These directories need to be searchable by non-root so
	that the timestampowner setting can function.
	[aeb5ceead]

	* plugins/sudoers/timestamp.c:
	Fix use of timestampowner in the new time stamp world order. Parent
	directories for timestampdir and lecture_dir are now created with
	the execute bit set so that we can traverse them as non-root.
	[fb29e91ef]

2014-01-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in:
	Regen Makefiles.
	[a2dc10ece]

	* common/sudo_debug.c, config.h.in, include/sudo_util.h,
	plugins/sample/sample_plugin.c:
	Move ctim_get and mtim_get to sudo_util.h
	[d0f343ba2]

	* plugins/sudoers/timestamp.c:
	sprinkle some debug printfs and add function header comments
	[32b4713d6]

	* plugins/sudoers/timestamp.c:
	Properly handle the case where /var/run/sudo/ts doesn't exist.
	[d7257a63e]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	fix typo
	[b15b03560]

	* NEWS:
	Mention "sudo -K" change.
	[f04f6eeb4]

	* doc/UPGRADE:
	Upgrade info for 1.8.10
	[51cab5679]

2014-01-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/timestamp.c:
	Warn on ftruncate failure().
	[596fc68ac]

	* plugins/sudoers/timestamp.c:
	Fix checking of lecture status.
	[63e7aa994]

	* mkpkg:
	Do not override timedir on Debian.
	[f4e037a0d]

	* common/event.c, common/event_select.c, include/missing.h,
	plugins/sudoers/iolog.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/visudo.c, src/sudo_edit.c:
	Use sudo_timeval macros and remove compat macros from missing.h
	[b813c4de4]

	* INSTALL, MANIFEST, NEWS, compat/Makefile.in,
	compat/clock_gettime.c, config.h.in, configure, configure.ac,
	doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	include/missing.h, include/sudo_util.h, m4/sudo.m4, mkdep.pl,
	pathnames.h.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/boottime.c, plugins/sudoers/check.h,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/timestamp.c,
	src/Makefile.in:
	Switch to new time stamp file format. Each user now has a single
	file which may contain multiple records when per-tty time stamps are
	in use (the default). The time stamps use a monotonic timer where
	available and are once again stored in /var/run/sudo. The lecture
	status is now stored separately from the time stamps in a different
	directory.
	[659b1f0e3]

2014-01-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/check.c:
	When listing a user's privileges, always prompt the user for their
	own password, regardless of the value of target_pw, root_pw or
	runas_pw.
	[db3b77627]

2014-01-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/atomode.c:
	Zero out errstr when there is no error; fixes bug #632
	[5a636f2ea]

2014-01-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac, plugins/sudoers/interfaces.c,
	plugins/sudoers/match_addr.c:
	Use inet_aton() instead of inet_addr() as it allows us to
	distinguish between the address (or mask 255.255.255.255) and an
	error. In the future we may consider switching to inet_pton() for
	IPv4 too.
	[aaecd326e]

2014-01-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/missing.h:
	Fix typo, ULONG_MAX vs. ULLONG_MAX
	[7e008eb67]

	* plugins/sudoers/sudo_nss.c:
	Fix typo in the AIX case.
	[f6542e90f]

	* plugins/sudoers/sudo_nss.c:
	Size pointer for sudo_parseln() should be size_t not ssize_t. This
	was already correct for the nsswitch.conf case.
	[7e88cc27b]

2014-01-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, common/sudo_conf.c, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, include/sudo_conf.h, src/net_ifs.c:
	It is now possible to disable network interface probing in sudo.conf
	by changing the value of the probe_interfaces setting.
	[1a42e5f63]

2014-01-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match_addr.c:
	If inet_addr() returns INADDR_NONE, return false instead of
	iterating through the interfaces looking for a match that will never
	happen.
	[4c9650f78]

	* configure, configure.ac, src/Makefile.in:
	Add explicit dependency on sudoers.la to sudo target when sudoers is
	compiled statically into the sudo binary.
	[cf6bca139]

2014-01-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/iolog_path.c, plugins/sudoers/logging.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/timestr.c:
	Do not assume localtime(), gmtime() and ctime() always return
	non-NULL.
	[ae6fb933f]

2014-01-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, common/Makefile.in, compat/Makefile.in,
	doc/Makefile.in, include/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in, zlib/Makefile.in:
	Update copyright years
	[5a6db565c]

	* plugins/sudoers/visudo_json.c:
	Eliminate dead store found by clang checker.
	[5f88e95bc]

	* NEWS, configure, configure.ac:
	Update for sudo 1.8.9p4
	[2de0115cb]

	* common/sudo_debug.c, include/sudo_debug.h, src/preserve_fds.c:
	When relocating fds, update the debug fd if it is set so we are
	guaranteed to get debugging output.
	[8ca711ee1]

2014-01-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	If the event loop exits due to an error and we are not logging I/O,
	kill the command if still running. Fixes a bug where sudo could exit
	while the command was still running.
	[640a5ddb4]

	* src/preserve_fds.c:
	When relocating preserved fds, start with the highest ones first to
	avoid moving fds around more than we have to. Now uses a bitmap to
	keep track of which fds are being preserved. Fixes a bug where the
	debugging fd could be relocated to the same fd as the error
	backchannel temporarily, resulting in debugging output being printed
	to the backchannel if util@debug was enabled.
	[77b126acc]

	* src/preserve_fds.c:
	When restoring fds traverse list from high -> low, not low -> high
	to avoid implicitly closing an fd we want to relocate.
	[26cff8bcb]

	* src/exec.c:
	If not logging I/O we may get EOF when the command is executed and
	the other end of the backchannel is closed. Just remove the
	backchannel event in this case or we will continue to receive the
	event. Bug #631
	[d7277fc96]

	* src/po/sr.mo, src/po/sr.po:
	sync with translationproject.org
	[6a76d1a1c]

2014-01-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	Fix strtonum() usage when parsing /proc/self/stat on Linux. Bug #630
	[d99b4f090]

	* NEWS, configure, configure.ac:
	Update for sudo 1.8.9p3
	[50c7e759d]

	* plugins/sudoers/logwrap.c:
	Remove dead store; found by cppcheck
	[bec5786e5]

2014-01-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sesh.c:
	Quiet a cppcheck warning about a negative subscript.
	[73f6e56c5]

	* src/exec_common.c, src/selinux.c, src/sesh.c, src/sudo_exec.h:
	Make noexec parameter to sudo_execve() bool.
	[bb9775879]

	* plugins/sudoers/sudoreplay.c:
	Quiet a few innocuous cppcheck warnings.
	[aa93ef78a]

	* plugins/sudoers/sssd.c:
	Handle in_res being NULL for sudo_debug_printf() in
	sudo_sss_filter_result().
	[57113a536]

	* plugins/sudoers/iolog.c:
	When writing length to timing file, use %u not %d as it is unsigned.
	[12fc51060]

	* plugins/sudoers/visudo_json.c:
	Close export_fp in the error path too, but do not close stdout.
	[4b5ad37b4]

	* plugins/sudoers/auth/secureware.c:
	Move right brace outside #ifdef HAVE_DISPCRYPT; found by cppcheck.
	[7ace435d4]

2014-01-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/group_file/plugin_test.c:
	Make this compile again
	[cadba501e]

	* common/term.c:
	Add suppression line to quiet a bogus (inconclusive) cppcheck
	warning.
	[f7421f769]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Do not leak old istack if realloc fails; found by cppcheck. Also
	modify yyless() to avoid a harmless cppcheck warning every time it
	is used.
	[b75bb6991]

	* Makefile.in, common/Makefile.in, compat/Makefile.in,
	doc/Makefile.in, include/Makefile.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in, zlib/Makefile.in:
	Add cppcheck target to run cppcheck on all source files.
	[78355e618]

2014-01-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.ac:
	Update for sudo 1.8.9p2
	[bf7a51389]

	* config.h.in, configure, ltmain.sh, m4/libtool.m4, m4/ltoptions.m4,
	m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4:
	Update to libtool-2.4.2.418
	[a2a029ecf]

	* config.guess, config.sub:
	Update from http://git.savannah.gnu.org/gitweb/?p=config.git
	[11b1fe60d]

2014-01-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Sudo 1.8.9 also fixes bug #617
	[d94a35709]

2014-01-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	The fix for the hang was already in the 1.8.9 tarballs.
	[2c2ab9c32]

	* NEWS, configure, configure.ac:
	Update for sudo 1.8.9p1
	[a3d88b9db]

	* common/atobool.c, common/event.c, plugins/sudoers/iolog.c,
	plugins/sudoers/parse.h, src/exec.c, src/preserve_fds.c:
	Update copyright year.
	[27598bc0a]

	* 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.
	[f57beb1af]

	* common/atobool.c:
	Use debug_return_int() instead of bare return for debugging support.
	[1bd694362]

2014-01-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/event.c:
	Fix infinite loop that could be triggered by sudo_ev_loopbreak() and
	sudo_ev_loopcontinue().
	[5a6d211d6]

	* NEWS:
	Update for 1.8.9 final.
	[d3fd43fd2]

2014-01-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Handle a sequence file with no trailing newline.
	[0e1d726aa]

2014-01-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Truncate io log and timing files on open when recycling them. Only
	an issue when the sequence number wraps around.
	[391bc02e2]

	* plugins/sudoers/iolog.c:
	Repair reading of the iolog sequence number that got broken when
	adding stricter strtoul() checks.
	[6fe419423]

	* src/exec.c:
	If invoked as sudoedit we can't just exec the command directly since
	the temporary files need to be updated before sudo exits.
	[d013b23ce]

	* src/preserve_fds.c:
	Fix restoration of the close-on-exec flag when moving a relocated fd
	back into its original position.
	[38bf95a76]

2014-01-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Add "see below" to reference "Secure editing" section in "Preventing
	shell escapes".
	[ed029f9a6]

2014-01-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Add initial "Secure editing" section.
	[9bbf4c728]

	* doc/LICENSE:
	Update copyright year.
	[76fb02390]

2013-12-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po, src/po/eo.mo,
	src/po/eo.po, src/po/fi.mo, src/po/fi.po:
	sync with translationproject.org
	[929d8a38e]

	* plugins/sudoers/policy.c:
	Make user_cwd and user_tty dynamically allocated even for the
	"unknown" case.
	[1943396d7]

2013-12-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Use -fstack-protector-strong in preference to -fstack-protector-all
	or -fstack-protector.
	[483e6972f]

	* doc/HISTORY:
	Dell acquired Quest
	[cd77926e1]

2013-12-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po, src/po/ru.mo,
	src/po/ru.po, src/po/vi.mo, src/po/vi.po:
	sync with translationproject.org
	[42dbe7f4b]

2013-12-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	src/po/cs.mo, src/po/cs.po, src/po/da.mo, src/po/da.po,
	src/po/it.mo, src/po/it.po, src/po/pl.mo, src/po/pl.po,
	src/po/pt_BR.mo, src/po/pt_BR.po, src/po/uk.mo, src/po/uk.po,
	src/po/zh_CN.mo, src/po/zh_CN.po:
	sync with translationproject.org
	[72cd57dea]

	* doc/sudoers.ldap.cat:
	regen
	[11babdaab]

	* NEWS:
	Update for recent changes.
	[bb87b3abf]

	* plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	Fix typo; we want setlocale(LC_ALL, "") since we are setting the
	locale for the first time.
	[a6e1766dd]

2013-12-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	Use sudoers_initlocale() in main() startup, not sudoers_setlocal()
	as the latter assumes we are already in the user's locale which may
	not be the case. For sudoreplay, we can just use setlocale()
	directly as there is no sudoers locale.
	[91db1efe9]

2013-12-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/preserve_fds.c, src/sudo.c, src/sudo.h:
	Redo preserve_fds support to remap high fds so we can get the most
	out of closefrom(). The fds are then restored after closefrom().
	[4d80e7cea]

	* plugins/sudoers/Makefile.in:
	Fix install-plugin when sudoers is compiled statically.
	[76544011e]

2013-12-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/sudo_debug.c, doc/sudo_plugin.cat,
	doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	include/sudo_debug.h, include/sudo_plugin.h, src/Makefile.in,
	src/exec.c, src/exec_pty.c, src/preserve_fds.c, src/sudo.c,
	src/sudo.h, src/sudo_exec.h:
	Add support for preventing fds from getting clobbered by
	closefrom().
	[1adeda54e]

2013-12-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	regen
	[388ad69f0]

2013-12-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/alloc.c:
	Need to include limits.h here too.
	[291f88d2b]

2013-12-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.ac, plugins/sudoers/parse.h:
	No need to use __signed.
	[eb44a5ba5]

	* plugins/sudoers/regress/logging/check_wrap.c:
	Need limits.h here too.
	[a0204080e]

	* compat/closefrom.c:
	Still need limits.h here.
	[a18395a90]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[0cfe027b5]

	* compat/closefrom.c:
	Go back to using /proc/self/fd instead of /proc/$$/fd as only AIX
	lacks /proc/self and it has F_CLOSEM.
	[aa849ed94]

2013-12-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo_json.c:
	Use a switch to map digest type to name instead of an array of
	strings.
	[65012dd66]

	* compat/closefrom.c:
	Use /dev/fd in closefrom() on FreeBSD < 8.0 and Mac OS X.
	[1c3f2ac1e]

	* compat/snprintf.c:
	Remove _MAX and _MIN compat; we rely on missing.h for that. We
	already require the compiler handle long long so there's no need to
	use HAVE_LONG_LONG_INT everywhere.
	[8c184dcec]

	* common/ttysize.c, include/missing.h:
	Remove _MAX and _MIN defines that any system from the last 20 years
	should have. Add ULLONG_MAX in case it is missing.
	[f689a8635]

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in,
	plugins/sudoers/visudo.c, plugins/sudoers/visudo_json.c:
	Change visudo -x to take a file name argument, which may be '-' to
	write the exported sudoers file to stdout.
	[68f6e23b0]

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/parse.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_json.c, src/regress/ttyname/check_ttyname.c:
	Move symbol extern defs into sudoers.h
	[b2c456341]

	* plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/logging/check_wrap.c:
	Add missing sudo_util.h
	[624f4fdb1]

2013-12-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	Warn if the time stamp in the I/O log file does not fit in time_t.
	Warn if the info line is not well-formed instead of silently
	ignoring it.
	[cf47b156f]

2013-12-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/Makefile.in, plugins/sudoers/Makefile.in, src/Makefile.in:
	Rename libcommon libsudo_util
	[62b559db1]

2013-12-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/Makefile.in, common/aix.c, common/atobool.c,
	common/atoid.c, common/atomode.c, common/fmt_string.c,
	common/gidlist.c, common/progname.c, common/setgroups.c,
	common/sudo_conf.c, common/term.c, common/ttysize.c,
	include/missing.h, include/sudo_util.h,
	plugins/group_file/Makefile.in, plugins/group_file/getgrent.c,
	plugins/sudoers/Makefile.in, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoreplay.c, plugins/system_group/Makefile.in,
	plugins/system_group/system_group.c, src/Makefile.in, src/sudo.h:
	Move prototypes for functions provided by libcommon that don't have
	their own header files into sudo_util.h.
	[3e2d818ed]

2013-12-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/mkdefaults:
	Now that we have proper number parsing functions we should store
	T_UINT defaults values as unsigned int, not int.
	[ef2cff1d3]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h:
	Don't use int where we really mean enum def_tuple. When this code
	was written it was assumed that we may have multiple tuple types.
	However, that hasn't happened and probably never will.
	[3e4f5c584]

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	Regen after string parsing changes.
	[03b013ab2]

	* common/atoid.c, common/atomode.c, compat/strtonum.c, configure,
	configure.ac, include/missing.h, plugins/sudoers/defaults.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/sudoreplay.c, src/parse_args.c, src/ttyname.c:
	The OpenBSD strtonum() uses very short error strings that can't be
	translated usefully. Convert them to longer strings on error. Also
	use the longer strings for atomode() and atoid().
	[cbf41b8b9]

2013-12-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/Makefile.in, common/atoid.c, common/atomode.c,
	plugins/sudoers/defaults.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h, src/sudo.c, src/sudo.h:
	Add atomode() function for parsing a file mode.
	[d83bfb9fe]

	* common/sudo_conf.c, common/ttysize.c, compat/Makefile.in,
	compat/closefrom.c, compat/getaddrinfo.c, compat/strtonum.c,
	configure, configure.ac, include/missing.h,
	plugins/sudoers/boottime.c, plugins/sudoers/defaults.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/policy.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/sudoreplay.c, plugins/system_group/system_group.c,
	src/parse_args.c, src/sudo.c, src/ttyname.c:
	Use strtonum() instead of atoi(), strtol() or strtoul() where
	possible.
	[8f9ce7249]

	* MANIFEST, compat/Makefile.in, compat/strtonum.c, config.h.in,
	configure, configure.ac, include/missing.h, mkdep.pl:
	Add strtonum.c to compat for simpler number parsing.
	[f83eac40e]

2013-12-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_common.c:
	Fix a warning on Solaris, we need to use debug_return_const_ptr.
	[7dabe334b]

	* plugins/sudoers/Makefile.in:
	check_symbols needs to link with SUDO_LIBS in order to get -lpthread
	on HP-UX for libldap (which uses threads). It would be better to
	have a separate variable for the pthread library but this is no
	worse than it used to be.
	[b7c647a4f]

2013-12-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	add missing comma
	[8e04c592a]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Make -c option description more accurate.
	[47dbe189f]

2013-12-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS, plugins/sudoers/sudoers.c:
	When checking whether a user may change the login class, just check
	pw_uid of the runas user, which was passed in to set_loginclass().
	[8bdf3d9a2]

2013-12-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo_json.c:
	Use atoid() when parsing user/group IDs and print them as unsigned
	int.
	[acdff2d99]

2013-12-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	Correctly parse 64-bit times in I/O log files.
	[e964aa4d8]

	* compat/getgrouplist.c, plugins/group_file/getgrent.c,
	plugins/sudoers/pwutil.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c:
	Use atoid() not atoi() when parsing uids/gids.
	[e1ac1a2ff]

	* plugins/sudoers/match.c, plugins/sudoers/match_addr.c,
	plugins/sudoers/parse.h, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil.h, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/sudoers.h:
	Better match debugging. Sprinkle const in match functions.
	[2508da6f6]

2013-12-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Document that plugins can be compiled statically into the sudo
	binary.
	[1739350e2]

2013-12-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sssd.c:
	sudo_sss_filter_user_netgroup(): fix comment typos, break out of
	loop early if we match ALL or netgroup.
	[9e964a8c0]

	* plugins/sudoers/sssd.c:
	When filtering netgroups, use the passwd struct stashed in the
	handle, not user_name since we may be listing another users
	privileges.
	[302d3273a]

	* mkpkg:
	RHEL 6 and above builds sudo with SSSD support
	[af72b1ad5]

	* plugins/sudoers/sssd.c:
	Avoid passing NULL domainname to sudo_debug_printf().
	[f477b343f]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document sssd debug subsystem.
	[ede55a2f7]

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	Document "event" debug subsystem.
	[5b491573e]

	* plugins/sudoers/match.c:
	Use atoid() instead of atoi() when parsing uids/gids so we get
	proper range checking.
	[878ddb178]

	* plugins/sudoers/sssd.c:
	Add user netgroup filtering for SSSD. Previously, rules for a
	netgroup were applied to all even when they did not belong to the
	specified netgroup. RedHat Bugzilla 880150.
	[f56eca805]

	* plugins/sudoers/sssd.c:
	Fix several issues found by the clang static analyzer; Daniel
	Kopecek
	[543d3b701]

2013-12-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README.LDAP:
	Mention how to dump sudoers info from LDAP.
	[dc69e5af5]

	* src/exec_common.c:
	On Solaris, disabling the proc_exec privilege appears to interfere
	with DAC file permissions. Adding DAC override permissions to the
	inheritable set works around this for commands run as root without
	giving extra permissions to other users. Bug #626
	[b082a614f]

2013-12-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/Makefile.in, common/progname.c,
	compat/Makefile.in, compat/getprogname.c, configure, configure.ac,
	include/missing.h, mkdep.pl, plugins/sample/sample_plugin.c,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c, src/parse_args.c,
	src/regress/ttyname/check_ttyname.c, src/sudo.c:
	Instead of setprogname(), add initprogname() which gets the program
	name for getprogname() using /proc or pstat() if possible.
	[0d81263e2]

2013-11-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	Ignore EOVERFLOW from pstat_getproc(). The HP-UX kernel appears to
	return this in certain situations but it appears to be harmless at
	least insofar as retrieving the tty goes.
	[902215a8c]

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	src/po/cs.mo, src/po/cs.po, src/po/eo.mo, src/po/eo.po,
	src/po/fi.mo, src/po/fi.po, src/po/it.mo, src/po/it.po,
	src/po/pl.mo, src/po/pl.po, src/po/pt_BR.mo, src/po/pt_BR.po,
	src/po/ru.mo, src/po/ru.po, src/po/uk.mo, src/po/uk.po,
	src/po/vi.mo, src/po/vi.po, src/po/zh_CN.mo, src/po/zh_CN.po:
	Sync with translationproject.org
	[fdf56ee94]

2013-11-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	Add missing newline in help message after export option.
	[188e92156]

2013-11-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Do not add LIBDL to SUDO_LIBS or SUDOERS_LIBS in configure, do it in
	Makefile.in so we can make it last. Fixes a linking problem on
	Ubuntu precise.
	[4247c1741]

2013-11-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, m4/ax_func_getaddrinfo.m4:
	Do not rely on NULL being defined for getaddrinfo() test. Fixes the
	check on HP-UX 11.23.
	[94ad47ff9]

2013-11-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	Regen for sudo 1.8.9b1
	[58a0540b9]

	* src/po/de.mo, src/po/de.po, src/po/sr.mo, src/po/sr.po:
	Sync with translationproject.org
	[853384124]

2013-11-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, MANIFEST, NEWS, common/Makefile.in, common/sudo_dso.c,
	compat/Makefile.in, compat/dlfcn.h, compat/dlopen.c, config.h.in,
	configure, configure.ac, include/sudo_dso.h, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/group_plugin.c,
	plugins/sudoers/ldap.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/sssd.c, plugins/system_group/Makefile.in,
	plugins/system_group/system_group.c, src/Makefile.in,
	src/env_hooks.c, src/load_plugins.c, src/preload.c, src/sudo.c,
	src/sudo.h:
	Add wrapper functions for dlopen() et al so that we can support
	statically compiling in the sudoers plugin but still allow other
	plugins to be loaded. The new --enable-static-sudoers configure
	option will cause the sudoers plugin to be compiled statically into
	the sudo binary. This does not prevent other plugins from being
	loaded as per sudo.conf.
	[12f3bdf60]

2013-11-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo_json.c:
	Handle non-unix groups correctly. Get rid of runasuser and
	runasgroup types and use username and usergroup instead. The fact
	that the user or group is inside a Runas_List doesn't affect its
	underlying type.
	[0fb17059a]

2013-11-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo_json.c:
	Simplify Defaults list option object. The name and value strings are
	superfluous.
	[bf700fdd5]

	* compat/dlopen.c:
	Back out unintended change.
	[627099136]

	* MANIFEST, aclocal.m4, configure, configure.ac,
	m4/ax_func_getaddrinfo.m4:
	Add dedicated test for getaddrinfo(). Tru64 UNIX contains two
	versions of getaddrinfo and we must include netdb.h to get the
	proper definition.
	[6a1d1e148]

	* compat/dlopen.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c:
	Define RTLD_GLOBAL for older systems without it. Bug #621
	[ba40be9dd]

2013-11-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/snprintf.c, include/missing.h:
	Rename snprintf replacement rpl_snprintf since we may now replace
	the libc version and #define rpl_snprintf snprintf in missing.h so
	we get our version when needed. This is consistent with how we
	replace glob and fnmatch.
	[192cbbb49]

	* common/Makefile.in, common/regress/sudo_conf/conf_test.c,
	common/regress/sudo_parseln/parseln_test.c,
	common/regress/tailq/hltq_test.c, src/Makefile.in:
	libcommon tests need locale_stub.lo to link.
	[4075ee77c]

	* MANIFEST, aclocal.m4, compat/snprintf.c, config.h.in, configure,
	configure.ac, m4/ax_func_snprintf.m4:
	Add check for C99 compliant (v)snprintf function.
	[42b1e4a9c]

	* compat/sig2str.c, configure, configure.ac:
	Include unistd.h in sig2str.c for Tru64 as it defines SIGRTMIN and
	SIGRTMAX in terms of sysconf(), which is prototyped in unistd.h. Bug
	#621; from Daniel Richard G.
	[0a47860ef]

	* include/gettext.h, plugins/sudoers/locale.c, src/locale_stub.c:
	Add definition of U_ for --disable-nsl Don't define warning_gettext
	if --disable-nsl Bug #621; from Daniel Richard G.
	[054a94e6c]

2013-11-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo_json.c:
	When merging Defaults entries we need to check the type of the next
	entry and not just assume it is the same as the previous one.
	[0a7ebf8b2]

	* plugins/sudoers/visudo_json.c:
	runasgroups not runasgroup in the Cmnd_Spec.
	[f16ce9714]

	* plugins/sudoers/visudo_json.c:
	Fix some syntax errors and change how lists are handled.
	[a1b1c80b2]

	* common/sudo_debug.c, config.h.in, configure, configure.ac,
	include/fatal.h, include/sudo_debug.h:
	Allow sudo to compile without variadic macro support in cpp.
	Debugging support will be limited (no file info from warnings.) From
	Daniel Richard G.; Bug #621
	[3dab6bd8e]

	* Makefile.in, common/aix.c, common/fatal.c, common/gidlist.c,
	common/sudo_conf.c, include/fatal.h, include/gettext.h,
	include/missing.h, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/defaults.c,
	plugins/sudoers/env.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/match.c,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/set_perms.c,
	plugins/sudoers/sssd.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	plugins/sudoers/visudo.c, plugins/sudoers/visudo_json.c, src/exec.c,
	src/exec_common.c, src/exec_pty.c, src/load_plugins.c,
	src/locale_stub.c, src/net_ifs.c, src/parse_args.c, src/selinux.c,
	src/sesh.c, src/signal.c, src/solaris.c, src/sudo.c,
	src/sudo_edit.c, src/tgetpass.c, src/utmp.c:
	Add warning_gettext() wrapper function that changes to the user
	locale, then calls gettext(). Add U_ macro that calls
	warning_gettext() instead of gettext(). Rename warning2()/error2()
	back to warning_nodebug()/error_nodebug().
	[96eb2c4f8]

2013-11-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/fileops.c, compat/getaddrinfo.c, compat/mktemp.c,
	compat/utimes.c, configure.ac, plugins/sudoers/boottime.c,
	plugins/sudoers/check.c, plugins/sudoers/getdate.c,
	plugins/sudoers/getdate.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/logging.h, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/visudo.c, src/exec.c, src/exec_pty.c, src/preload.c,
	src/sudo.c, src/sudo_edit.c, src/ttyname.c, src/utmp.c:
	Fix some #if vs. #ifdef and remove an extraneous semicolon. Bug
	#624; from Daniel Richard G.
	[99b7351de]

	* include/sudo_debug.h, plugins/sudoers/defaults.c,
	plugins/sudoers/ldap.c, src/exec_common.c:
	Add debug_return_const_str and debug_return_const_ptr for returning
	a const string or pointer. Using const for the normal versions
	produces warnings with the Tru64 compiler.
	[6c71ad5c1]

	* common/event_poll.c, compat/getaddrinfo.c, config.h.in, configure,
	configure.ac, m4/sudo.m4:
	Fixes for building under Tru64; from Daniel Richard G. Bug #624
	[bf65cc041]

2013-11-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.c:
	log_{fatal,warning} now logs to the debug file itself.
	log_{fatal,warning} now calls warningx2() after setting the locale
	itself instead of using the wrapper macros. This removes the only
	use of warningx(ngettext(...)).
	[7017c904c]

2013-11-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.ac:
	Add -Wpointer-arith to --enable-warnings
	[942f732a5]

	* configure, configure.ac:
	Fix more instances of #include directives where the '#' was not in
	column 1. From Daniel Richard G. (bug #622)
	[e684f6a09]

	* MANIFEST, doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/visudo.c,
	plugins/sudoers/visudo_json.c:
	Add support to visudo to export sudoers in JSON format.
	[6d8b078e2]

2013-11-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.h:
	Remove unused digest field from struct cmndspec, the digest really
	lives in struct sudo_command.
	[bba91c008]

	* config.h.in, configure:
	Regen with autoconf 2.69
	[362080220]

	* MANIFEST, Makefile.in, config.h.in, configure.ac, doc/Makefile.in:
	Rename configure.in -> configure.ac
	[e31b2ba6a]

	* MANIFEST, aclocal.m4, autogen.sh, config.h.in, configure,
	configure.in, ltmain.sh, m4/sudo.m4:
	From Daniel Richard G. (bug #622) Add an autogen.sh script that
	rebuilds the autoconf world. Move old aclocal.m4 contents to
	m4/sudo.m4. New (generayed) aclocal.m4 contains the m4_include
	directives. Some tests had #include directives where the '#' was not
	in column 1. Updated obsolete macro usage via autoupdate.
	[97b60e3eb]

2013-11-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_exec.h:
	Very old systems (pre XPG 4.2) may not support MSG_WAITALL. The
	likelihood of receiving a partial message is quite low so this is
	not a big deal.
	[bb45f8e84]

	* configure, configure.in:
	HP-UX may require _XOPEN_SOURCE_EXTENDED to be defined for
	MSG_WAITALL to be visible.
	[142fff6db]

	* MANIFEST, plugins/sudoers/regress/visudo/test5.out.ok,
	plugins/sudoers/regress/visudo/test5.sh:
	Add regress test for bug #623
	[69f7ed79c]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Cope with a comment on the last line of the file with no newline.
	Bug #623
	[a3aa40b0f]

	* compat/getaddrinfo.c:
	Include arpa/inet.h for HP-UX; from Daniel Richard G.
	[9d9d8e852]

	* doc/Makefile.in:
	Add missing $(mansrcdir) to visudo.mdoc and visudo.man. From Daniel
	Richard G.
	[89c162ec6]

2013-11-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/fatal.h:
	In v{warning,fatal}x?() make a new copy of ap for the debug
	functions. It is not legal to use ap twice without reinitializing
	it. Noticed by Daniel Richard G.
	[237ae0b77]

	* include/fatal.h:
	Remove errant warning_restore_locale() call.
	[31e83c3e7]

	* include/missing.h, plugins/sudoers/logging.c:
	Move va_copy compat macro to missing.h
	[702ec173d]

	* common/Makefile.in, compat/Makefile.in, mkdep.pl,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in, zlib/Makefile.in:
	Uniquify header dependencies so we don't end up with duplicates when
	a header file includes other headers. The header dependencies are
	sorted so the generated order is stable.
	[87e1ae76a]

	* compat/Makefile.in, configure, configure.in, doc/CONTRIBUTORS,
	mkdep.pl:
	Add getaddrinfo.lo to LTLIBOBJS for systems that need it. From
	Daniel Richard G.
	[88a57822e]

	* plugins/sudoers/testsudoers.c:
	Fix pasto
	[906eba927]

2013-11-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.mdoc.in:
	Fix typo.
	[a69ed4a2d]

2013-11-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/getdate.c, plugins/sudoers/gram.c:
	regen
	[e8dac0e4a]

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/toke.c:
	Fix warnings from -Wold-style-definition
	[8e503a229]

	* configure, configure.in:
	Add -Wold-style-definition to --enable-warnings
	[3b65249bd]

	* common/event_poll.c:
	Extra debugging for ready fds.
	[b616a0431]

	* common/event_select.c:
	When deleting an event, check ev->events to determine whether to
	remove from readfds or writefds instead of blinding removing from
	both. Also fix highfd adjustment.
	[60d58f3a6]

2013-11-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/event_select.c:
	Only check an fd that is >= 0. Timeout-only events may have a
	negative fd.
	[0eb38a228]

2013-11-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/event.c:
	Don't call sudo_ev_{add,del}_impl() for timeout-only events. This
	makes it possible to pass sudo_ev_alloc() an fd of -1 for events
	only use SUDO_EV_TIMEOUT.
	[1a548a5dd]

2013-10-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/alloc.c, common/event_select.c, include/sudo_event.h:
	Make a copy of readfds/writefds before calling select() instead of
	calculating it each time. Keep track of high fd in the base.
	[adef363d0]

2013-10-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS:
	Add Stephen Gelman
	[7af8c3484]

	* plugins/sudoers/getdate.c, plugins/sudoers/gram.c:
	Fix sign comparison warning.
	[1202e54cd]

	* plugins/sudoers/sudoreplay.c:
	Fix potential NULL dereference in non-interactive mode.
	[9f761dc44]

2013-10-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_pty.c:
	Use MSG_WAITALL when receiving struct command_status over the Unix
	domain socket since we no longer use datagrams. This should avoid
	the need to handle incomplete reads, though in theory it is still
	possible.
	[fd88ed42c]

	* plugins/sudoers/sudoreplay.c:
	SIGKILL is not catchable
	[abe0314e0]

	* common/event.c, include/sudo_event.h,
	plugins/sudoers/sudoreplay.c:
	Add sudo_ev_get_timeleft() to get the amount of time left before an
	event times out and use it in sudoreplay.
	[449c4a290]

2013-10-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	plugins/sudoers/sudoreplay.c:
	If the user presses <return> or <enter> in sudoreplay, skip to the
	next event. Useful for skipping past long pauses in the data.
	[f4cd08ef6]

	* common/event.c, common/event_poll.c, common/event_select.c:
	Fix sudo_ev_scan_impl() return value in event_poll.c. Make sure we
	clear active flag from unprocessed events if sudo_ev_loopbreak() or
	sudo_ev_loopcontinue() are used. Remove bogus optimization when the
	timeout is zero or negative; it could prevent an I/O event from
	being triggered.
	[1bc2901a2]

	* plugins/sudoers/sudoreplay.c:
	Move session replay into its own function.
	[b8f5d3edf]

	* common/event.c, common/event_poll.c, common/event_select.c,
	include/sudo_event.h:
	Get rid of cur and pending pointers in struct sudo_event_base. We
	now pop the first event off the active queue instead of using a
	foreach loop with deferred removal of the event. Add
	SUDO_EVQ_INSERTED and SUDO_EVQ_TIMEOUTS flags to indicate that the
	event on the event queue and timeouts queue respectively. No longer
	need to compare the timeout to {0,0} or compare the event's base
	pointer to NULL to determine queue membership.
	[4d1f91274]

	* common/event_poll.c:
	rename sudo_ev_loop_impl() -> sudo_ev_scan_impl()
	[4413f89bd]

	* MANIFEST, common/event.c, common/event_poll.c,
	common/event_select.c, compat/Makefile.in, compat/nanosleep.c,
	config.h.in, configure, configure.in, include/missing.h,
	include/sudo_event.h, mkdep.pl, plugins/sudoers/Makefile.in,
	plugins/sudoers/sudoreplay.c, src/exec.c, src/exec_pty.c:
	Add support for libevent-style timed events. Adding a timed event is
	currently O(n). The only consumer of timed events is sudoreplay
	which only used a singled one so O(n) == O(1) for now. This also
	allows us to remove the nanosleep compat function as we now use a
	timeout event instead.
	[8861e01d1]

2013-10-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_pty.c:
	Now that sudo_ev_base_free() removes all events before freeing we
	don't need to do this by hand.
	[d8b368b50]

	* common/event.c, common/event_poll.c, common/event_select.c,
	include/sudo_event.h:
	Add a list of active events in the base that the back end sets when
	it calls poll or select. This allows the front end to iterate over
	the events instead of having that code in both back ends. It will
	also simplify support for timeout events. Also make sure we can't
	touch freed memory if a callback frees its own event.
	[e16c99cd2]

	* common/event.c:
	Remove any existing events before freeing the event base.
	[f68ca0168]

2013-10-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	mon_handler() should be static
	[60d20f1e6]

2013-10-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	If user specified start_tls and ldaps, display a warning and ignore
	start_tls. There's no reason to make this a fatal error.
	[e2bfbe603]

	* src/exec_pty.c:
	Add missing else when the connection from the monitor to the parent
	sudo process is broken (due to the parent dying). Prevents a
	spurious "unexpected reply type on backchannel" warning.
	[07e0a068d]

	* src/exec_pty.c:
	When flushing output we don't care whether we are the foreground
	process or not, we still need to flush to /dev/tty. If we are in the
	background, it is OK to get SIGTTOU.
	[a090d0678]

	* plugins/sudoers/ldap.c:
	Should not attempt start_tls on an ldaps connection.
	[38a5b0a65]

2013-10-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/parser/check_fill.c:
	Fix sign compare warning.
	[548efb83d]

	* doc/Makefile.in:
	Eliminate warning about circular dependency from GNU make.
	[8dfe0b605]

	* plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c,
	src/ttyname.c:
	More sign compare fixes. On Solaris id_t is signed so use uid_t in
	the set_perms.c ID macro instead.
	[081742958]

	* common/fileops.c, common/lbuf.c, common/secure_path.c,
	common/sudo_debug.c, include/secure_path.h,
	plugins/sudoers/find_path.c, plugins/sudoers/getdate.c,
	plugins/sudoers/group_plugin.c, plugins/sudoers/interfaces.h,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/ldap.c, plugins/sudoers/logging.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/parse.h,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/set_perms.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, src/load_plugins.c, src/sudo.c,
	src/ttyname.c:
	Quiet sign comparision warnings.
	[07a804caf]

	* configure, configure.in:
	Add -Wsign-compare to --enable-warnings
	[f4d2978f3]

	* plugins/sudoers/ldap.c:
	Ignore SIGPIPE when connecting to the LDAP server so we can get a
	proper error message with the IBM LDAP libs. Also return
	LDAP_SUCCESS instead of 0 from most sudo_ldap_* functions that
	return an int.
	[994879c04]

	* plugins/sudoers/regress/parser/check_base64.c,
	plugins/sudoers/regress/parser/check_digest.c:
	Quiet compiler warnings.
	[340fc0a58]

2013-10-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	sudo_ldap_parse_uri() should join multiple URIs in the string list
	together but it was clearing the host entry each time through the
	loop. Fixes a bug with multiple URI entries in ldap.conf where only
	the last one was being honored.
	[29361ec00]

	* src/exec_pty.c:
	Avoid a double free introduced when plugging a memory leak in
	safe_close(). A new ev_free_by_fd() function is used to remove and
	free any events sharing the specified fd. This can be used after
	safe_close() to make sure we don't try to select() on a closed fd.
	[d825a5894]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y, src/exec.c:
	Quiet some llvm check false positives. The common idiom of using
	TAILQ_FIRST, TAILQ_REMOVE and free in a loop to free each entry in a
	TAILQ confuses llvm. Use TAILQ_FOREACH_SAFE instead (which is
	probably faster anyway).
	[e8ce021e7]

	* plugins/sudoers/auth/pam.c:
	If pam_open_session() fails don't call pam_getenvlist() with a NULL
	pam handle.
	[65c6f34aa]

	* plugins/sudoers/defaults.c:
	Fix newly introduced use after frees found by llvm checker.
	[798e82bd6]

	* common/event_select.c:
	Remove an errant list_next() call that should have been removed in
	the TAILQ conversion.
	[b2cba8368]

	* MANIFEST, common/Makefile.in, common/list.c,
	common/regress/tailq/hltq_test.c, include/list.h, include/queue.h,
	plugins/sudoers/Makefile.in, plugins/sudoers/alias.c,
	plugins/sudoers/defaults.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/match.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Add "headless" tail queues and use them in place of the
	semi-circular lists in sudoers. Once the headless tail queue is
	built up it is converted to a normal TAILQ. This removes the last
	consumer of list.c and list.h so those can now be removed.
	[b38d253e9]

	* common/Makefile.in, common/fatal.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/env.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/interfaces.h, plugins/sudoers/ldap.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/visudo.c, src/Makefile.in, src/exec_pty.c,
	src/hooks.c:
	Use SLIST and STAILQ macros instead of doing headless singly linked
	lists manually. As a bonus we now use a tail queue for ldap.c and
	sudoreplay.c.
	[f85106ea6]

	* MANIFEST, common/Makefile.in, common/event.c, common/event_poll.c,
	common/event_select.c, common/list.c,
	common/regress/sudo_conf/conf_test.c, common/sudo_conf.c,
	doc/LICENSE, include/list.h, include/missing.h, include/queue.h,
	include/sudo_conf.h, include/sudo_event.h,
	plugins/sudoers/Makefile.in, plugins/sudoers/ldap.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/sssd.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudo_nss.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/visudo.c,
	src/Makefile.in, src/exec.c, src/exec_pty.c, src/load_plugins.c,
	src/sudo.c, src/sudo.h, src/sudo_plugin_int.h:
	Convert sudo to use BSD TAILQ macros instead of home ground tail
	queue functions. This includes a private queue.h header derived from
	FreeBSD. It is simpler to just use our own header rather than try to
	deal with macros that may or may not be present in various queue.h
	incarnations.
	[923edabe6]

2013-10-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	Fix AND operator broken by changes to fix OR.
	[fe0e953e9]

2013-10-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	Fix OR operator.
	[2c8d5add8]

2013-10-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Fix memory leak of I/O buffer events in safe_close().
	[04588f613]

2013-10-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/sudo_debug.c:
	Don't allow the debug subsystem to be initialized twice. Otherwise
	we can exhuast our stack when built in static mode.
	[69ab48f16]

	* common/event_poll.c:
	Make sure we do not try to usie index -1 in base->pfds[].
	[6a5d6f9e9]

2013-10-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.in:
	Bump version to 1.8.9
	[58f71c00e]

2013-10-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Convert the monitor process to the event subsystem.
	[b985948e7]

	* src/exec.c, src/exec_pty.c, src/sudo_exec.h:
	Convert the main sudo event loop to use the event subsystem. Read
	events for I/O buffers are added before the loop starts. Write
	events are added on demand as the buffers are filled.
	[83d2d25c4]

	* INSTALL, MANIFEST, common/Makefile.in, common/event.c,
	common/event_poll.c, common/event_select.c, common/list.c,
	common/sudo_debug.c, config.h.in, configure, configure.in,
	include/list.h, include/sudo_debug.h, include/sudo_event.h,
	mkdep.pl, plugins/sudoers/Makefile.in, src/Makefile.in,
	src/exec_pty.c:
	Simple event subsystem that uses poll() or select(). Basically a
	simplied subset of libevent2. Currently only fd events are supported
	(since that's all we need). The poll() backend is used by default,
	except on Mac OS X where poll() is broken for devices (including
	/dev/tty and ptys).
	[79acd5db4]

	* src/exec.c, src/exec_pty.c:
	Use SOCK_STREAM for socketpair, not SOCK_DGRAM so we get consistent
	semantics when the other end closes. This should make the conversion
	to poll() less problematic.
	[ff18c6586]

2013-10-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/sudo_debug.c:
	Fix removal of trailing newlines in a debug message.
	[a6b4f4110]

2013-10-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	When checking for unused Runas_Aliases, count those used as part of
	a Runas Group too. Fixes a false positive warning.
	[020fb0094]

2013-09-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/missing.h:
	Include stddef.h for rsize_t and errno_t on systems that support it
	natively.
	[e223df690]

	* MANIFEST:
	Fix braino.
	[48d7c407e]

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/de.mo,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/fi.mo,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/pl.mo,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/uk.mo,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/zh_CN.mo:
	Rebuild message catalog files.
	[fc332461e]

	* src/po/da.mo, src/po/eo.mo, src/po/fi.mo, src/po/it.mo,
	src/po/pl.mo, src/po/pt_BR.mo, src/po/ru.mo, src/po/uk.mo,
	src/po/vi.mo, src/po/zh_CN.mo:
	Rebuild message catalog files.
	[4b5021fed]

	* MANIFEST, NEWS, doc/CONTRIBUTORS, src/po/cs.mo, src/po/cs.po:
	Czech translation for sudo from translationproject.org.
	[aff3320f3]

2013-09-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.po, plugins/sudoers/po/de.po,
	plugins/sudoers/po/eo.po, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/it.po, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.po, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.po, plugins/sudoers/po/zh_CN.po, src/po/da.po,
	src/po/eo.po, src/po/fi.po, src/po/it.po, src/po/pl.po,
	src/po/pt_BR.po, src/po/ru.po, src/po/uk.po, src/po/vi.po,
	src/po/zh_CN.po:
	Sync with translationproject.org
	[4b10880f8]

	* NEWS, plugins/sudoers/getdate.c, plugins/sudoers/getdate.y:
	Change "next" back to 2. In the context of "next Friday" we really
	do want the friday of the upcoming (not current) week.
	Unfortunately, this means that things like "next week" and "next
	year" will match one more than we really want. Fixing this will
	require some fairly major changes to the grammar.
	[9a657e884]

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in:
	Mention that relative times don't always do what you might expect.
	[d197e42d4]

2013-09-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS:
	Add diacritical for Zdenek Behan.
	[e6833bed7]

2013-09-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/regress/ttyname/check_ttyname.c:
	Do not fail if ttyname() cannot determine the tty but sudo can.
	Should fix problems with running "make check" under pbuilder.
	[c91c5343e]

	* plugins/sudoers/Makefile.in:
	Remove extraneous $$CWD; from Bdale Garbee
	[5d56fd5f8]

2013-09-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, plugins/sudoers/getdate.c, plugins/sudoers/getdate.y:
	Make "this" and "next" qualifiers work a bit better. There is still
	room for improvement as "this week" will use the current time
	instead of the beginning of the week. That's a separate issue
	though.
	[e59d5624d]

2013-09-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/regress/sudo_conf/conf_test.c,
	common/regress/sudo_parseln/parseln_test.c:
	Mark main() public to silence a warning on HP-UX.
	[4fbcde304]

2013-09-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, plugins/sudoers/timestamp.c:
	Be specific that we are talking about the Unix epoch; bug #615
	[bd5286905]

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/po/sudoers.pot,
	src/po/sudo.pot, src/selinux.c:
	Do not use "setup" as a verb; bug #614
	[6b0a909d9]

	* plugins/sudoers/iolog.c:
	Fix logic goof when checking open() status.
	[6b57ef4f6]

	* plugins/sudoers/po/nl.mo, plugins/sudoers/po/nl.po, src/po/nl.mo,
	src/po/nl.po, src/po/ru.mo, src/po/ru.po:
	Sync with translationproject.org
	[13fd13e17]

	* NEWS, plugins/sudoers/sudoreplay.c:
	Work around a bug in sudo 1.8.7 timing files where the indexes are
	off by two.
	[b2d0bdee2]

	* MANIFEST, plugins/sudoers/iolog.c, plugins/sudoers/iolog.h,
	plugins/sudoers/sudoreplay.c:
	Repair writing of the I/O log file indices broken in sudo 1.8.7.
	[422115d72]

2013-08-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Try to improve the PAGERS noexec example a bit.
	[92a3e13e6]

2013-08-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Document comment character in ldap.conf Clarify what is and is not
	supported in TLS_KEYPW Mention that gsk8capicmd can be used to
	create a stash file
	[55ea043a9]

2013-08-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	New bugs fixed for 1.8.8.
	[596d94dc6]

	* plugins/sudoers/visudo.c:
	Fix setting of quiet flag when -q / --quiet is specified. Do not
	print "sudoers: parsed OK" in quiet mode.
	[de566ac2c]

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po, src/po/fi.mo,
	src/po/fi.po, src/po/it.mo, src/po/it.po:
	Updated translations from translationproject.org
	[316fe3612]

	* plugins/sudoers/check.c:
	Don't allow root to change its SELinux role without a password. Bug
	#611
	[3389108f1]

2013-08-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Mention new Mac OS X symbol interposition.
	[95d41437d]

	* plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po, src/po/eo.mo,
	src/po/eo.po, src/po/fr.mo, src/po/fr.po:
	Updated translations from translationproject.org
	[6d1ee8cf2]

	* config.h.in, configure, configure.in, src/sudo_noexec.c:
	Add configure checks for the exec functions we will dummy out. This
	is only really needed on Mac OS X when symbol interposition is being
	performed but won't hurt elsewhere.
	[40b24c5da]

2013-08-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, src/Makefile.in,
	src/sudo_noexec.c:
	Fix installation of sudo_noexec on Mac OS X. Use library symbol
	interposition on Mac OS X 10.4 and higher so we don't need to set
	DYLD_FORCE_FLAT_NAMESPACE=1.
	[b0f5c498f]

2013-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Fix error display from ldap_ssl_client_init(). There are two error
	codes. The return value can be decoded via ldap_err2string() but the
	ssl reason code cannot (you have to look it up in a table online).
	[925984d88]

2013-08-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Fix typo in tls_key example for Tivoli
	[dbdd328f4]

	* src/parse_args.c:
	Don't escape '$' when running "sudo -i command". Bug #564
	[6484574f9]

	* plugins/sudoers/iolog_path.c:
	Fix typo in comment.
	[e507c05bb]

	* plugins/sudoers/auth/pam.c:
	Fix comment.
	[e54f11ae4]

	* plugins/sudoers/timestr.c, plugins/sudoers/visudo.c:
	Quiet some gcc -Wformat=2 false positives
	[bd589f234]

2013-08-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/pam.c:
	Remove now-obsolete arg to env_merge()
	[ebbdee421]

	* plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/pt_BR.mo, plugins/sudoers/po/pt_BR.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	src/po/pl.mo, src/po/pl.po, src/po/pt_BR.mo, src/po/pt_BR.po,
	src/po/uk.mo, src/po/uk.po, src/po/vi.mo, src/po/vi.po,
	src/po/zh_CN.mo, src/po/zh_CN.po:
	Updated translations from translationproject.org
	[ffef732ac]

	* MANIFEST, NEWS, doc/CONTRIBUTORS, src/po/fr.mo, src/po/fr.po:
	French translation for sudo from translationproject.org.
	[1624e8987]

	* plugins/sudoers/logging.h:
	Add __printflike to audit_failure.
	[0f091f478]

	* include/missing.h:
	Use __nonnull__ attribute in __printflike.
	[5caa61d68]

2013-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/env.c, plugins/sudoers/sudoers.h:
	When merging the PAM environment, allow environment variables set in
	PAM to override ones set by sudo as long as they do not match the
	env_keep or env_check lists.
	[7a76844d9]

	* plugins/sudoers/auth/pam.c:
	Call pam_getenvlist() after we've opened the session to get the
	session-specific environment variables.
	[f72f47aa1]

2013-08-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	option not flag
	[1a652757c]

	* compat/getopt_long.c, config.h.in, configure, configure.in:
	Don't redefine opterr, optind, optopt, optarg in getopt_long.c. Add
	a check for optreset which is a BSD extension and provide a
	definition in getopt_long.c if it is not present.
	[3c2a9b994]

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	regen
	[082c73338]

	* plugins/sudoers/sudoreplay.c, plugins/sudoers/visudo.c:
	Use lower case for the long option arguments to match the manual.
	This is inconsistent with GNU but it is better to match the sudo
	documentation.
	[acac6ae2a]

	* NEWS:
	Sudo 1.8.8
	[752418ffe]

	* src/parse_args.c:
	Use lower card for the long option arguments to match the manual.
	This is inconsistent with GNU but it is better to match the sudo
	documentation.
	[a5b64a1d2]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Describe how remote command execution can be implemented.
	[87ec2dd6e]

	* doc/sudoers.ldap.cat:
	Bump version.
	[f76bd772e]

2013-08-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo.c:
	Make it a fatal error if the plugin returns invalid or out of range
	command info.
	[d40b30284]

	* plugins/sudoers/policy.c:
	Use strtol() instead of atoi() and perform error checking of
	parameters passed from the sudo front-end.
	[b8d539984]

	* plugins/sudoers/auth/pam.c:
	It is not possible for auth to be NULL here.
	[91ec1c476]

	* plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Initialize user_runhost and user_srunhost to user_host and
	user_shost in visudo and testsudoers.
	[ea65c82b6]

	* MANIFEST, common/Makefile.in, common/aix.c, common/alloc.c,
	common/fatal.c, common/gidlist.c, common/lbuf.c, common/list.c,
	common/sudo_conf.c, common/sudo_debug.c, compat/Makefile.in,
	compat/getopt_long.c, include/fatal.h, plugins/sudoers/Makefile.in,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/hexchar.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/locale.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoreplay.c,
	src/Makefile.in, src/locale_stub.c, src/net_ifs.c,
	src/regress/ttyname/check_ttyname.c, src/sesh.c, src/sudo.h:
	Rename error.h -> fatal.h now that there is no error() function.
	[99352d673]

	* common/sudo_debug.c, include/sudo_debug.h:
	Add support to the debug subsystem for zero-length strings. This can
	happen for things like warning(NULL) or fatal(NULL) where we just
	want to log the errno string.
	[bec394dc1]

	* include/error.h:
	Add __printflike for vfatal, vfatalx, vwarning and vwarningx.
	[a44d82763]

	* plugins/sudoers/audit.c:
	Need to include gettext.h for BSM audit.
	[1b39c3758]

	* common/alloc.c, plugins/sudoers/env.c, src/exec_common.c,
	src/parse_args.c, src/sudo.c:
	Change some fatalx(NULL) that should be fatal(NULL).
	[85fc5792d]

	* include/error.h, include/missing.h:
	Use __printf0like for warning() and fatal() since the fmt string may
	be NULL.
	[4928c8c72]

	* compat/pw_dup.c:
	Quiet a gcc "used uninitialized in this function" false positive.
	[e5f0e1f75]

	* mkpkg:
	Enable bsm audit on Mac OS X and Solaris >= 11.
	[e34fe030b]

	* plugins/sudoers/bsm_audit.c:
	Fix compilation on Solaris 11.
	[2f251caf4]

	* plugins/sudoers/bsm_audit.c:
	Add missing missing.h
	[251c79a77]

	* plugins/sudoers/sudoers.c:
	Move the -C (user_closefrom) check until after set_cmnd() so that
	closefrom_override can be used in a command-specific Defaults line.
	Fixes bug #610 from Mengtao Sun.
	[c376c7161]

2013-08-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	If not using a pty and the child process gets SIGTTOU or SIGTTIN and
	sudo is the foreground process, make the child the foreground
	process and continue it.
	[299a881fe]

	* src/sudo.c:
	If sudo is not setuid and was not invoked with a full path, look in
	the user's PATH for the sudo binary to give a better error message.
	[c909f6100]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in,
	plugins/sudoers/logging.c, plugins/sudoers/match.c,
	plugins/sudoers/policy.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.h:
	Add limited support for "sudo -l -h other_host". Since group lookups
	are done on the local host, rules that use group membership may be
	incorrect if the group database is not synchronized between hosts.
	[d0e386758]

	* src/parse_args.c:
	Fix parsing of "-h host" when used in conjunction with the -l flag.
	[79104ce75]

	* configure, configure.in, doc/fixman.sh, doc/fixmdoc.sh,
	doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in, doc/visudo.cat,
	doc/visudo.man.in, doc/visudo.mdoc.in, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/visudo.c, src/parse_args.c, src/sudo.c,
	src/sudo_usage.h.in:
	Simplify usage messages a bit and make --help output more closely
	resemble GNU usage wrt long options. Sync usage and man page
	SYNOPSYS sections and improve long options in the manual pages. Now
	that we have long options we don't need to give the mnemonic for the
	single-character options in the description.
	[8b1d64553]

2013-08-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.c:
	Fix setting of mailer argv[0] to basename of mailerpath. No need to
	strdup() mailerpath as it is not modified.
	[91e66c481]

	* plugins/sudoers/logging.c:
	Make sure the mailer exists and is a regular file before trying to
	exec it.
	[04b290e38]

	* plugins/sudoers/timestamp.c:
	If tty_tickets are enabled but there is no tty, use a ticket file
	based on the parent pid.
	[39d630f2f]

	* common/sudo_conf.c, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, include/sudo_conf.h, src/parse_args.c:
	Allow default plugin dir to be configured in sudo.conf.
	[d9fd6281e]

	* doc/CONTRIBUTORS:
	UTF8 for Ruusamae, Elan; from Tae Wong
	[d10641cdb]

2013-08-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/regress/sudo_conf/test5.in,
	common/regress/sudo_conf/test5.out.ok,
	common/regress/sudo_conf/test6.in,
	common/regress/sudo_conf/test6.out.ok, common/sudo_conf.c,
	doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	plugins/sudoers/policy.c, plugins/sudoers/pwutil_impl.c, src/sudo.c:
	Don't allow max_groups to be set to zero, it just complicates things
	needlessly. Fixes an assertion in visudo when there is a group-based
	Defaults entry.
	[9b2fb418c]

2013-08-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/Makefile.in, common/gidlist.c,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.h, src/sudo.c,
	src/sudo.h:
	Refactor code to parse list of gids into its own function that is
	shared by the sudo front-end and the sudoers module. Make uid/gid
	parse error be fatal, not just a warning.
	[8b4fbc5cc]

	* common/atoid.c:
	Add function comment block.
	[6126c08f7]

	* common/atoid.c:
	Default text domain is now sudo, not sudoers.
	[141f91e77]

	* common/Makefile.in:
	Update dependency for atoid.lo
	[5556a0f21]

	* common/atoid.c, plugins/sudoers/iolog.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/tsgetgrpw.c, src/sudo.c,
	src/sudo.h:
	Add endpointer and separator args to atoid()
	[fe23e7c03]

2013-08-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/getgrouplist.c:
	Use private version of atoid() to avoid a dependency on libcommon.a
	(since that already depends on libreplace.a).
	[39cbfcd40]

	* doc/CONTRIBUTORS:
	More UTF8 in names; from Tae Wong
	[03fc668e5]

	* compat/getgrouplist.c, plugins/sudoers/iolog.c,
	plugins/sudoers/tsgetgrpw.c, src/sudo.c, src/sudo.h:
	Use atoid() in more places.
	[dde7331a0]

	* MANIFEST, common/Makefile.in, common/atoid.c,
	plugins/sudoers/Makefile.in:
	Move atoid() to common so it can be used in src and compat too.
	[40cb480f0]

	* compat/closefrom.c:
	Avoid a crash on Mac OS X 10.8 (at least) when we close
	libdispatch's fds out from under it before executing the command.
	Switch to just setting the close on exec flag instead.
	[2c6e68df0]

	* doc/CONTRIBUTORS:
	Convert to last, first for easier sorting and use UTF8 (including a
	BOM).
	[30adf33ea]

	* plugins/sudoers/atoid.c:
	Add atoid() function to convert a string to an id_t (uid, gid or
	pid). We have to be careful to choose() either strtol() or strtoul()
	depending on whether the string appears to be signed or unsigned.
	Always using strtoul() is unsafe on 64-bit platforms since the uid
	might be represented as a negative number and (unsigned long)-1 on a
	64-bit system is 0xffffffffffffffff not 0xffffffff. Fixes a problem
	with uids larger than 0x7fffffff on 32-bit platforms.
	[c3fb47a88]

	* MANIFEST, config.h.in, configure, configure.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h:
	Add atoid() function to convert a string to an id_t (uid, gid or
	pid). We have to be careful to choose() either strtol() or strtoul()
	depending on whether the string appears to be signed or unsigned.
	Always using strtoul() is unsafe on 64-bit platforms since the uid
	might be represented as a negative number and (unsigned long)-1 on a
	64-bit system is 0xffffffffffffffff not 0xffffffff. Fixes a problem
	with uids larger than 0x7fffffff on 32-bit platforms.
	[5dc56ea81]

	* plugins/sudoers/sudoers.c:
	Avoid "perm stack underflow" error when logging the unknown uid
	error.
	[972ee9a0f]

	* plugins/sudoers/set_perms.c:
	In rewind_perms() there is nothing to do if perm_stack_depth == 0.
	[23a2bdbcb]

2013-08-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/auth/pam.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in:
	Add pam_setcred sudoers option to allow the user to control whether
	pam_setcred() is called on the user's behalf.
	[3898f5d7f]

	* configure, configure.in, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, plugins/sudoers/auth/pam.c,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c:
	Add pam_service and pam_login_service sudoers settings to control
	the service name passed to pam_start.
	[52954481e]

	* mkpkg:
	Newer Xcode places the SDKs under Xcode.app
	[385e20c7b]

2013-08-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/Makefile.in, common/zero_bytes.c,
	compat/Makefile.in, compat/memset_s.c, config.h.in, configure,
	configure.in, doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, include/missing.h, include/sudo_plugin.h,
	mkdep.pl, plugins/sudoers/Makefile.in,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/defaults.c,
	plugins/sudoers/logging.c, plugins/sudoers/sha2.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c,
	src/Makefile.in, src/conversation.c, src/sudo.h, src/sudo_edit.c,
	src/tgetpass.c:
	Implement memset_s() and use it instead of zero_bytes(). A new
	constant, SUDO_CONV_REPL_MAX, is defined by the plugin API as the
	max conversation reply length. This constant can be used as a max
	value for memset_s() when clearing passwords filled in by the
	conversation function.
	[1f3ea50af]

2013-08-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/system_group/Makefile.in:
	Do not try to install plugins when shared modules are disabled
	(sudoers already had the check).
	[8c867be41]

	* plugins/sudoers/Makefile.in:
	Update dependencies to take into account compat/getopt.h and
	compat/dlfcn.h.
	[d882303b8]

	* src/Makefile.in:
	Update dependencies now that sudo_usage.h is always included from
	the build dir.
	[235d32c99]

2013-07-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Add some warnings and debugging to sasl ccname handling.
	[62da46a9c]

	* plugins/sudoers/ldap.c:
	Fix write loop invariant in sudo_krb5_copy_cc_file()
	[c0c782ae1]

2013-07-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Strip off leading FILE: or WRFILE: prefix before trying to copy the
	user's credential cache.
	[09e752274]

2013-07-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo.c:
	Instead of setting RLIMIT_NPROC to unlimited when sudo initializes,
	just save RLIMIT_NPROC in exec_setup() before the final setuid() and
	restore it immediately after. We don't need to modify RLIMIT_NPROC
	for simple euid changes, just for changing the real (and saved) uids
	before we exec. This also means we no longer need to worry about
	_SC_CHILD_MAX returning -1. Bug #565
	[3582ad340]

2013-07-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c, src/preload.c:
	Now that the ldap code runs with the real and effective uid set to
	0, it is not possible for the gssapi libs to find the user's krb5
	credential cache file. To work around this, we make a temporary copy
	of the user's credential cache specified by KRB5CCNAME (opened with
	the user's effective uid) and point gssapi to it. To set the
	credential cache file name, we dynamically look up
	gss_krb5_ccache_name() and use it if available, otherwise fall back
	to setting KRB5CCNAME.
	[b1c8f0575]

2013-07-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.man.in, doc/sudoreplay.cat, doc/sudoreplay.man.in,
	doc/sudoreplay.mdoc.in, doc/visudo.cat, doc/visudo.man.in,
	doc/visudo.mdoc.in, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/visudo.c:
	Long option support for visudo and sudoreplay.
	[39575aecf]

2013-07-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in, src/Makefile.in,
	src/parse_args.c, src/sudo.c, src/sudo_usage.h.in:
	Add support for long options and fix inclusion of sudo_usage.h with
	modern gcc broken in 8597:1fcb7ba13018.
	[6e56e6d8c]

	* src/Makefile.in:
	Add rule to rebuild sudo_usage.h when the .in file changes.
	[fbfd0ad63]

	* compat/Makefile.in, mkdep.pl, src/Makefile.in:
	Add make rules for building getopt_long.c
	[deb384495]

	* src/parse_args.c:
	Make "-h hostname" work. Optional args in GNU getopt() only work
	when there is no space between the option flag and the argument.
	[db05b9ae0]

2013-07-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, compat/getopt.h, compat/getopt_long.c, config.h.in,
	configure, configure.in, doc/LICENSE, src/parse_args.c:
	Use getopt_long() so we can make the -h flag take an optional
	argument. Includes a version for those without it.
	[9309c9eab]

2013-07-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Document that the -h option can be used specify a host name for
	future plugins.
	[29908cb6d]

	* include/sudo_plugin.h, src/parse_args.c, src/sudo_usage.h.in:
	Overload -h option to specify an optional hostname for remote
	access. This is future-proofing; no policy plugins currently support
	this.
	[c2860cce5]

	* configure, configure.in:
	Bump version to 1.8.8
	[1e4497331]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Document the remote_host setting (-h host)
	[1d20a0ab6]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	fix "the the"
	[ba615bd58]

	* src/parse_args.c, src/sudo.c, src/sudo.h:
	Do not error out if arg to -U option cannot be resolved, that is for
	the plugin to decide. There is no need for runas_user and
	runas_group to be global, make them local to parse_args() instead.
	[b4e1f7c44]

	* MANIFEST, doc/CONTRIBUTORS, plugins/sudoers/po/pt_BR.mo,
	plugins/sudoers/po/pt_BR.po, src/po/es.mo, src/po/es.po,
	src/po/pt_BR.mo, src/po/pt_BR.po:
	Sync with translationproject.org
	[e53e80187]

2013-07-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/TROUBLESHOOTING:
	Remove old bits about sudo setuid problems that should have been
	cleaned up in changeset 7917:fa4894896d8a. Also update the mode of
	sudo to 04755 to match current packaging.
	[adce34358]

	* plugins/sudoers/auth/pam.c:
	Go back to ignoring the return value of pam_setcred() since with
	stacked PAM auth modules a failure from one module may override
	PAM_SUCCESS from another. If the first module in the stack fails,
	the others may be run (and succeed) but an error will be returned.
	This can cause a spurious warning on systems with non-local users
	(e.g. pam_ldap or pam_sss) where pam_unix is consulted first.
	[6dff70db0]

	* src/net_ifs.c:
	Remove unused variable.
	[f32a1c7ed]

	* NEWS:
	Fix typo
	[a72d04c39]

2013-07-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sssd.c:
	Fix pasto; sudo_sss_extract_digest() not sudo_ldap_extract_digest().
	From Dan Harnett.
	[4d6cb6eff]

2013-06-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Fix formatting typo; from Eric S. Raymond
	[bf9d823c2]

2013-06-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	Use -gxcoff on aix so dbx can be used to debug sudo.
	[0799e9679]

2013-06-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Fix typo; bug 605
	[e8046e4be]

2013-06-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/po/da.mo, src/po/eo.mo, src/po/es.mo, src/po/it.mo,
	src/po/tr.mo:
	Regen .mo files that were out of date.
	[8b44c5d42]

2013-05-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.in:
	On Solaris 11 and higher, tag binaries for ASLR if supported by the
	linker.
	[c057692da]

	* mkpkg:
	No longer need to disable PIE on Solaris.
	[d962673a7]

2013-05-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, NEWS, configure, configure.in, doc/TROUBLESHOOTING:
	Restrict default creation of PIE binaries (-fPIE and -pie) to Linux.
	OpenBSD also supports PIE but enables it by default so we don't need
	to do anything. This fixes problems on systems with a version of GNU
	ld that accepts -pie but where the run-time linker doesn't actually
	support PIE. Also verify that a trivial PIE binary works unless PIE
	is explicitly enabled.
	[67d8af4be]

2013-05-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4, configure, configure.in:
	Attempt to detect PIE failure on Solaris 10 with GNU as and GNU ld
	where we can end up crashing due to malloc() failures. Sems OK when
	Using Sun as and ld.
	[521e17b13]

	* NEWS:
	Update with final changes.
	[a6ee84b0a]

2013-05-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Add -fPIE to PIE_LDFLAGS as per gcc manual.
	[62c7945c0]

2013-05-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/Makefile.in, compat/Makefile.in:
	Add missing $(PIE_LDFLAGS) $(SSP_LDFLAGS) for test programs
	[f9c4fb69d]

	* MANIFEST, plugins/sudoers/alias.c, plugins/sudoers/match.c,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/visudo/test4.out.ok,
	plugins/sudoers/regress/visudo/test4.sh, plugins/sudoers/visudo.c:
	Replace sequence number-based cycle detection in visudo with a
	"used" flag in struct alias. The caller is required to call
	alias_put() when it is done with the alias. Inspired by a patch from
	Daniel Kopecek.
	[ab61c0254]

2013-05-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Eliminate a few relocations related to sudoers_io.
	[8a57f129a]

	* plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po:
	Sync with translationproject.org
	[32a29d596]

2013-05-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	Clarify a comment.
	[586991653]

2013-05-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	Handle d_type == DT_UNKNOWN when resolving the device to a name and
	sprinkle some more debugging.
	[5549e44cd]

2013-05-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/TROUBLESHOOTING:
	Add message about disabling PIE if sudo gets SIGSEGV.
	[2dd71e838]

	* plugins/sudoers/check.h, plugins/sudoers/timestamp.c:
	No longer store the ctime of a devpts tty. The handling of ctime on
	devpts in Linux has been changed to conform to POSIX. As a result we
	can no longer assume that the ctime will stay unchanged throughout
	the life of the session. We store the session ID in the time stamp
	file so there is a much smaller chance of the time stamp file being
	reused by a new login. While here, store the uid/gid in the
	timestamp file too for good measure.
	[1e5e5fb44]

	* configure, configure.in:
	PIE is broken on FreeBSD/arm
	[ca4f8d949]

	* mkpkg:
	Add explicit sendmail path for Linux since we may not have sendmail
	installed in the build chroot.
	[04f9cedef]

2013-05-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/sudo_debug.c, plugins/sudoers/iolog.c,
	plugins/sudoers/set_perms.c, src/sudo.c, src/tgetpass.c:
	Quiet a few -Wunused-result compiler warnings.
	[f6e8fb8b1]

2013-04-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Mention what SHA-2 formats are supported.
	[874d84f26]

	* doc/CONTRIBUTORS:
	List code and translations separately.
	[61c0a24c8]

2013-04-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/de.mo, plugins/sudoers/po/de.po,
	plugins/sudoers/po/tr.mo, plugins/sudoers/po/tr.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po:
	Sync with translationproject.org
	[a971ac423]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[8aaea60a7]

	* Makefile.in:
	Fix c-format for fatal/fatalx
	[cf5f505fb]

2013-04-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, plugins/sudoers/iolog.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/visudo.c, src/exec_pty.c, src/sudo.h:
	Change some error/errorx -> fatal/fatalx in comments and xgettext
	flags.
	[368a6558c]

	* NEWS:
	There is now a Turkish translation of sudoers.
	[08506b66a]

	* MANIFEST, plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/tr.mo, plugins/sudoers/po/tr.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po:
	Updated translations from translationproject.org including new
	Turkish translation.
	[e17e4c951]

2013-04-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document that sudoers will re-use existing I/O log paths unless they
	are mktemp-style with trailing X's.
	[7c9aaa2f2]

	* NEWS, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, plugins/sudoers/ldap.c,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.h:
	Allow ldap_conf and ldap_secret to be specified as plugin arguments
	in sudo.conf
	[fa6c85711]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	sudoers_debug is now deprecated in favor of the sudo debugging
	framework.
	[67dad9a83]

	* plugins/sudoers/ldap.c:
	Replace DPRINTF with DPRINTF1 and DPRINTF2 macros that use
	SUDO_DEBUG_DIAG and SUDO_DEBUG_INFO respectively for logging to the
	debug file with the ldap subsystem. The sudoers_debug setting in
	ldap.conf is still honored for now but will be removed in a future
	release.
	[a40de4135]

2013-04-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers2ldif:
	Add support for converting sudoers files with SHA-2 command digests.
	[8248fb329]

	* doc/fixman.sh, doc/fixmdoc.sh, mkdep.pl, mkpkg,
	plugins/sudoers/sudoers2ldif:
	Add copyright notice to scripts
	[e05d2732a]

	* MANIFEST, plugins/sudoers/regress/sudoers/test14.in,
	plugins/sudoers/regress/sudoers/test14.out.ok,
	plugins/sudoers/regress/sudoers/test14.toke.ok:
	Add regress for SHA-2 digests.
	[5a7e54d37]

	* compat/getgrouplist.c:
	Solaris maps negative gids to GID_NOBODY.
	[c5971524f]

	* plugins/sudoers/visudo.c:
	Clear up an llvm checker warning which appears to be a false
	positive and fix an old XXX while I'm at it.
	[50bdd5f13]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in:
	Correct last change date
	[7ab68a35d]

	* plugins/sudoers/po/sudoers.pot, plugins/sudoers/sudoreplay.c:
	No need to translate this error message.
	[8ca50e13b]

	* doc/UPGRADE:
	Mention .sl vs. .so extension handling on HP-UX Mention group
	membership changes Fix typos
	[ad019da9e]

	* aclocal.m4, common/aix.c, common/alloc.c, common/atobool.c,
	common/error.c, common/fmt_string.c, common/lbuf.c, common/list.c,
	common/setgroups.c, common/term.c, common/ttysize.c,
	compat/Makefile.in, compat/dlopen.c, compat/endian.h,
	compat/getline.c, compat/getprogname.c, compat/isblank.c,
	compat/memrchr.c, compat/mksiglist.c, compat/mktemp.c,
	compat/nanosleep.c, compat/pw_dup.c, compat/sig2str.c,
	compat/snprintf.c, compat/strlcat.c, compat/strlcpy.c,
	compat/strsignal.c, compat/utimes.c, doc/Makefile.in,
	include/Makefile.in, include/alloc.h, include/fileops.h,
	include/gettext.h, include/lbuf.h, include/missing.h,
	include/sudo_plugin.h, pathnames.h.in,
	plugins/group_file/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample/sample_plugin.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/alias.c, plugins/sudoers/audit.c,
	plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/bsm_audit.h, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/getspwuid.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/interfaces.c, plugins/sudoers/interfaces.h,
	plugins/sudoers/iolog_path.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/linux_audit.h, plugins/sudoers/locale.c,
	plugins/sudoers/logging.h, plugins/sudoers/match.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil.h, plugins/sudoers/redblack.c,
	plugins/sudoers/redblack.h,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudo_nss.h, plugins/sudoers/sudoers_version.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.h, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/tsgetgrpw.c,
	plugins/sudoers/visudo.c, plugins/system_group/Makefile.in,
	plugins/system_group/system_group.c, src/Makefile.in,
	src/conversation.c, src/exec.c, src/exec_common.c, src/get_pty.c,
	src/net_ifs.c, src/parse_args.c, src/preload.c, src/selinux.c,
	src/sesh.c, src/signal.c, src/sudo_edit.c, src/sudo_exec.h,
	src/sudo_noexec.c, src/sudo_plugin_int.h, src/tgetpass.c,
	src/utmp.c:
	Update copyright years.
	[d6282d154]

	* plugins/sudoers/mon_systrace.h:
	Systrace support was removed long ago.
	[7b4f990d1]

2013-04-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/regress/sudoers/test10.toke.out.ok,
	plugins/sudoers/regress/sudoers/test9.toke.out.ok:
	Remove some files that were mistakenly added.
	[2923a6652]

	* common/sudo_debug.c, config.h.in, configure, configure.in,
	plugins/sudoers/boottime.c, plugins/sudoers/iolog.c,
	plugins/sudoers/ldap.c, plugins/sudoers/logging.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/timestamp.c:
	Use time(&now) instead of now = time(NULL) when storing the current
	time in a time_t (better compiler error checking). Better parsing
	and printing of 64-bit time_t on 32-bit platforms.
	[95b50f84a]

2013-04-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	Don't check the tty of the parent process. Now that we get the
	controlling tty device number from the kernel there is no need. If
	the process has really disassociated from the tty then reporting
	"unknown" is appropriate.
	[2b1b9ae72]

2013-04-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/error.c:
	Use EXIT_FAILURE instead of 1 as the fatal() exit value.
	[7ac5730a4]

	* src/sesh.c:
	Change remaining errorx -> fatalx
	[8b0c6c508]

2013-04-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/pwutil.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Replace sudo_fakepwnamid() with sudo_mkpwent() and don't return an
	error if the entry already exists in the cache.
	[5337da144]

	* plugins/sudoers/bsm_audit.c, plugins/sudoers/po/sudoers.pot:
	Change "foo: failed" to just "foo" since we print the string form of
	errno. Gets rids of some useless translations.
	[d913fe69c]

2013-04-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match.c:
	Fix pasto in debug_decl
	[40772f5aa]

	* plugins/sudoers/Makefile.in:
	regen
	[71f9fe33d]

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/parse.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/timestamp.c:
	Rename log_error() -> log_warning() for consistency with
	warning()/fatal()
	[1162b5504]

	* plugins/sudoers/auth/API:
	The NO_EXIT flag was removed a while ago.
	[2c3a4e035]

	* common/aix.c, common/alloc.c, common/error.c, include/error.h,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/hexchar.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/visudo.c, src/exec.c, src/exec_common.c,
	src/exec_pty.c, src/net_ifs.c, src/parse_args.c, src/selinux.c,
	src/signal.c, src/sudo.c, src/sudo_edit.c, src/tgetpass.c,
	src/utmp.c:
	Rename error/errorx -> fatal/fatalx and remove the exit value as it
	was always 1.
	[39acd2fcb]

	* NEWS:
	digests are supported in sudoers ldap too
	[0fe2c3eb9]

	* plugins/sudoers/regress/check_symbols/check_symbols.c:
	Print test failures to stdout like the final count so the outputis
	not displayed out of order.
	[fbcff81cd]

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/eo.po, plugins/sudoers/po/hr.mo,
	plugins/sudoers/po/hr.po, plugins/sudoers/po/it.po, src/po/da.mo,
	src/po/da.po, src/po/eo.po, src/po/hr.mo, src/po/hr.po,
	src/po/it.po, src/po/tr.po:
	Sync with translationproject.org
	[904428dd5]

	* Makefile.in:
	Check for any uncommitted changes in dist target and add force-dist
	target that omit check-dist.
	[dc618b991]

2013-04-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/regress/ttyname/check_ttyname.c:
	Fix logic bug when checking tty via ttyname().
	[6c9c2b242]

	* compat/endian.h:
	Fix check for _BIG_ENDIAN and _LITTLE_ENDIAN (Solaris) and
	__BIG_ENDIAN__ and __LITTLE_ENDIAN__ (HP-UX)
	[5d7579816]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[e8cd84c35]

	* NEWS, doc/sample.sudoers, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document digest support.
	[ed6d6963d]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/parser/check_base64.c:
	Simple bas64 decode unit test.
	[e91e30b4b]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/base64.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.h:
	Move base64_decode into its own source file.
	[9c1ee1fe7]

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y:
	Only check year against 2038 if time_t is 32-bit.
	[d32cb3d65]

2013-04-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c, plugins/sudoers/parse.h,
	plugins/sudoers/sssd.c:
	Add digest support for sudoers in ldap and sss.
	[cc3c76b85]

	* INSTALL, configure, configure.in:
	Error out in configure if the compiler doesn't support "long long".
	[d1580ff59]

	* plugins/sudoers/match.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Include stdint.h or inttypes.h before sha2.h
	[26a256260]

	* common/lbuf.c:
	Simplify lbuf append functions by moving the realloc code into
	lbuf_expand(). We now expand as needed each time bytes need to be
	written to the lbuf. Also handle a NULL pointer being passed in for
	paranoia's sake.
	[19d094602]

	* plugins/sudoers/iolog.c:
	Zero out struct iolog_details early to avoid a potential (though
	unlikely) dereference of stack garbage if we hit a fatal error
	before iolog_deserialize_info() is called.
	[6c737f043]

2013-04-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Update copyright year.
	[f2a007fb9]

	* plugins/sudoers/sudoers_version.h:
	Bump SUDOERS_GRAMMAR_VERSION for new digest support.
	[b0df32a77]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/match.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Sanity check digest in parser so visudo can catch errors. Add base64
	support
	[e715841fc]

	* MANIFEST, compat/endian.h, config.h.in, configure, configure.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/sha2.c:
	For big endian architectures just use memcpy() instead of BE macros
	in a loop.
	[89759fa36]

2013-04-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, config.h.in, configure, configure.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/hexchar.c, plugins/sudoers/ldap.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.h,
	plugins/sudoers/regress/parser/check_digest.c,
	plugins/sudoers/regress/parser/check_digest.out.ok,
	plugins/sudoers/sha2.h, plugins/sudoers/sssd.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c:
	Initial implementation of checksum support in sudoers. Currently
	supports SHA-224, SHA-256, SHA-384, SHA-512. TODO: checksum format
	validation in parser and base64 support. checksum support for ldap
	sudoers
	[35375a2b7]

2013-04-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS, plugins/sudoers/sha2.c, plugins/sudoers/sha2.h:
	SHA-224, SHA-256, SHA-384 and SHA-512. Derived from the public
	domain SHA-1 and SHA-2 implementations by Steve Reid and Wei Dai
	respectively.
	[1aa490352]

2013-04-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Add sudo 1.8.6p8
	[22c8c1217]

	* plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/po/sudoers.pot:
	Add missing "not" in error message when mixing standalone and
	non-standalone authentication methods.
	[bce9a96a6]

	* plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/secureware.c:
	Check for crypt() returning NULL. Traditionally, crypt() never
	returned NULL but newer versions of eglibc have a crypt() that does.
	Bug #598
	[6f718ee3c]

	* plugins/sudoers/auth/pam.c:
	Better PAM error messages
	[e9726e597]

	* plugins/sudoers/auth/kerb5.c:
	Better error messages
	[c00cc3bfe]

	* plugins/sudoers/bsm_audit.c:
	Use same error message for getauid() failure.
	[8d2c79180]

	* plugins/sudoers/sssd.c:
	Start warning with a lower case letter for consistency and to match
	existing translated strings.
	[236f306a2]

2013-04-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	Disable PIE on Solaris where it is not really supported.
	[8ffac2aa6]

	* src/ttyname.c:
	AIX may have a 64-bit pr_ttydev that we need to convert to 32-bit
	before we try to match it against st_rdev.
	[42313adc0]

	* src/ttyname.c:
	Break out of the loop if sudo_ttyname_scan() returns non-NULL. Fixes
	a problem finding the tty name when it is not in /dev/pts.
	[54f092c3e]

	* compat/snprintf.c:
	Support %lld and %llu
	[e3b61c11f]

	* .hgignore, MANIFEST, src/Makefile.in,
	src/regress/ttyname/check_ttyname.c:
	Add ttyname test.
	[ec3219415]

2013-04-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/sl.mo, plugins/sudoers/po/sl.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	src/po/de.mo, src/po/de.po, src/po/fi.mo, src/po/fi.po,
	src/po/pl.mo, src/po/pl.po, src/po/ru.mo, src/po/ru.po,
	src/po/sl.mo, src/po/sl.po, src/po/uk.mo, src/po/uk.po,
	src/po/vi.mo, src/po/vi.po, src/po/zh_CN.mo, src/po/zh_CN.po:
	Sync with translationproject.org
	[c3b9c94e8]

	* plugins/sudoers/timestamp.c:
	Log timestampfile to debug file.
	[5555b86d7]

	* plugins/sudoers/auth/pam.c, plugins/sudoers/po/sudoers.pot:
	Don't add the "Password: " string we look up in the PAM text domain
	to the sudoers.pot file.
	[9914cd8a7]

2013-04-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot:
	Synce with regcomp() error message change.
	[e2ed8cc9f]

	* plugins/sudoers/sudoreplay.c:
	Be consistent with error message when regcomp() fails.
	[b6d644b30]

2013-04-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/testsudoers/test5.out.ok,
	plugins/sudoers/regress/testsudoers/test5.sh:
	Use group -1 instead of 1 as the invalid group since the running
	user might have group 1 as their default group.
	[e17267b5e]

	* plugins/sudoers/Makefile.in:
	PWD may be a shell builtin, use CWD instead.
	[f1aed773e]

2013-04-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	Split up check_user().
	[faf150c4d]

2013-04-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure.in:
	Cosmetic fixes in the comments.
	[baa9041fe]

2013-04-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Use AC_LINK_IFELSE instead of AC_TRY_LINK Fix printing of status
	message for visibility checks when the test fails.
	[e003c793b]

	* config.h.in:
	regen
	[9438c8ab3]

	* configure, configure.in:
	We no longer use mbr_check_membership() and setrlimit64() is
	AIX-specific.
	[4bd1b5e35]

	* Makefile.in:
	The first (all) target must be by itself or some makes will choose
	the run the entire target list.
	[09754a11a]

	* configure, configure.in:
	Do exec_prefix expansion when enable_shared even if noexec is not
	enabled.
	[7364f0ce9]

	* compat/getgrouplist.c:
	Use free() not efree() since we don't include alloc.h here
	[b9bb50ff5]

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	regen
	[382640839]

	* plugins/sudoers/regress/testsudoers/test2.sh,
	plugins/sudoers/regress/testsudoers/test3.sh,
	plugins/sudoers/regress/testsudoers/test5.sh:
	Pass in expected gid to testsudoers in addition to the uid that
	matches the test sudoers files.
	[46db7a20e]

2013-04-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/missing.h:
	Tru64 5.x does declare innetgr() and getdomainname().
	[414fc377c]

	* plugins/sudoers/match.c:
	Fix compilation when getdomainame() is not present.
	[cd980f0b4]

	* config.h.in, configure.in, include/missing.h:
	Move SET/CLR/ISSET from config.h.in to missing.h
	[f7b62e8dc]

	* configure, configure.in:
	Fix getgrouplist() check.
	[3a83dbafb]

	* MANIFEST:
	No more timestamp.h
	[159664ad7]

	* plugins/sudoers/check.c:
	Neded sys/time.h for struct timeval in struct sudo_tty_info.
	[073989aa6]

	* plugins/sudoers/Makefile.in:
	regen depends
	[e7e739f65]

	* NEWS:
	Mention libibmldap on HP-UX
	[87e191787]

	* NEWS, plugins/sudoers/match.c:
	Instead of checking the domain name explicitly for "(none)", just
	check for illegal characters.
	[e23ebd53c]

	* plugins/sudoers/visudo.c:
	Only warn once when we are unable to open the sudoers file.
	[328994740]

	* plugins/sudoers/sudoers.c:
	Fall back to opening /dev/tty to determine whether there is a tty if
	the system doesn't have kernel support for determing the tty.
	[41ab8da22]

	* compat/getprogname.c:
	Update guard to take __progname into account
	[afc95dd11]

	* compat/snprintf.c:
	Some older systems have inttypes.h but not stdint.h
	[d7ea8fead]

	* compat/closefrom.c, compat/dlopen.c, compat/fnmatch.c,
	compat/getaddrinfo.c, compat/getcwd.c, compat/getgrouplist.c,
	compat/getline.c, compat/getprogname.c, compat/glob.c,
	compat/isblank.c, compat/memrchr.c, compat/mktemp.c,
	compat/nanosleep.c, compat/pw_dup.c, compat/sig2str.c,
	compat/snprintf.c, compat/strlcat.c, compat/strlcpy.c,
	compat/strsignal.c, compat/utimes.c:
	Add guards in compat source files. Not really needed since we only
	include them in the Makefile if they are needed but should not hurt
	either.
	[98ffa5154]

2013-03-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Don't include gram.h in gram.y, its contents are already included.
	Move sudoerserror to the end of gram.y so COMMENT is declared when
	we need to use it.
	[d30008d58]

2013-03-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure.in:
	Remove some pre-ANSI cruft.
	[6b2a085a2]

	* plugins/sudoers/match.c:
	Rename NAME_MATCH -> SUDOERS_NAME_MATCH and avoid pulling in glob.h
	when it is set.
	[7796d6456]

	* NEWS, plugins/sudoers/iolog_path.c:
	We still want to recognize %{seq} for the SUDOERS_NO_SEQ case but
	just leave it as-is.
	[a17d17115]

2013-03-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Add missing semicolon in rule.
	[a2ce6fd29]

	* plugins/sudoers/sudoers.c:
	Now that we can determine the terminal even when file descriptors
	are redirected we can check user_ttypath rather than opening
	/dev/tty when enforcing requiretty.
	[37b4b5d15]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Stash umask in struct sudo_user so we don't need to look it up
	later.
	[38dac1e0a]

	* plugins/sudoers/sudoers.c:
	Minor cosmetic change
	[5bac16f5c]

	* plugins/sudoers/regress/parser/check_addr.c:
	No longer need to declare interfaces
	[d482b00ec]

	* plugins/sudoers/logging.c:
	Fix compilation in SUDOERS_NO_SEQ case
	[b7e351683]

	* plugins/sudoers/regress/parser/check_addr.c:
	No longer need to define sudo_printf
	[155669cfe]

	* plugins/sudoers/check.c, plugins/sudoers/check.h,
	plugins/sudoers/timestamp.c:
	Pass auth_pw to the timestamp functions.
	[4d3fc204f]

	* plugins/sudoers/iolog_path.c:
	Fix SUDOERS_NO_SEQ
	[254125769]

	* plugins/sudoers/locale.c:
	Don't need all of sudoers.h in here
	[7eb2394b4]

	* plugins/sudoers/sudoers.c:
	Don't need to include sudoers_version.h here.
	[213f7ff11]

2013-03-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	DEFAULT_LECTURE is no longer used.
	[ec19ea97f]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.c:
	Move sudo_conv into policy.c
	[13dbba174]

	* plugins/sudoers/pwutil.c:
	cosmetic fixes
	[c66cf7c87]

	* plugins/sudoers/match.c:
	RHEL (and perhaps other Linux distros) use the string "(none)"
	instead of an empty string when there is no actual NIS-style domain
	name. Bug #596
	[ddc1d36a0]

	* plugins/sudoers/match.c:
	Fix return values when NAME_MATCH is defined.
	[64e558bcf]

2013-03-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/pwutil.c, plugins/sudoers/pwutil.h:
	Update copyright year.
	[b729284df]

	* plugins/sudoers/pwutil.c, plugins/sudoers/pwutil.h,
	plugins/sudoers/pwutil_impl.c, plugins/sudoers/sudoers.h:
	Add sudo_set_grlist(), currently unused by the back end.
	[6e5008701]

	* plugins/sudoers/pwutil.c:
	Remove unused macros, fix a debug_decl
	[cee83cbf2]

	* include/missing.h:
	Tru64 Unix doesn't prototype innetgr() or getdomainname().
	[608394793]

	* include/missing.h:
	Whitespace fixes
	[d710f1b41]

	* common/error.c:
	Don't need to include setjmp.h here, error.h already includes it.
	[adee3cded]

2013-03-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/Makefile.in, plugins/sudoers/Makefile.in:
	regen depends
	[837cda0c5]

	* plugins/sudoers/check.h:
	Rename guard define.
	[84ff871a5]

	* plugins/sudoers/check.c, plugins/sudoers/check.h,
	plugins/sudoers/timestamp.c, plugins/sudoers/timestamp.h:
	Move contents of timestamp.h into check.h.
	[8b4c19205]

	* plugins/sudoers/sudoers.h:
	expand_prompt() is now in prompt.c sudo_printf extern is now in
	error.h
	[d6b5ffbbd]

	* plugins/sudoers/bsm_audit.h, plugins/sudoers/defaults.h,
	plugins/sudoers/ins_2001.h, plugins/sudoers/ins_classic.h,
	plugins/sudoers/ins_csops.h, plugins/sudoers/ins_goons.h,
	plugins/sudoers/insults.h, plugins/sudoers/interfaces.h,
	plugins/sudoers/linux_audit.h, plugins/sudoers/logging.h,
	plugins/sudoers/parse.h, plugins/sudoers/pwutil.h,
	plugins/sudoers/redblack.h, plugins/sudoers/sudo_nss.h,
	plugins/sudoers/sudoers.h, plugins/sudoers/timestamp.h,
	plugins/sudoers/toke.h:
	Change multiple inclusion guards to be _SUDOERS_FOO_H
	[a803b4d2e]

2013-03-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/nl.mo, plugins/sudoers/po/nl.po,
	src/po/nl.mo, src/po/nl.po, src/po/tr.mo, src/po/tr.po:
	New Dutch translation for sudo and sudoers New Turkish translation
	for sudo From translationproject.org
	[b507f0a85]

2013-03-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in:
	Fix a typo in a comment and make sure we don't mistakenly include
	_PATH_SUDO_ASKPASS and _PATH_SUDO_SESH in config.h.in
	[b4ca9535b]

2013-03-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Don't build check_symbols if we are linking sudoers in statically.
	[17c5f8b15]

	* configure, configure.in:
	Use $host_os not $host when we only care about the os name and
	version.
	[575466027]

	* aclocal.m4, configure, configure.in:
	Suppress duplicate -L and -I flags.
	[017c7a15d]

	* common/Makefile.in, compat/regress/fnmatch/fnm_test.c:
	Fix regress tests on non-OpenBSD platforms.
	[c078614b4]

	* configure, configure.in:
	If we find sasl/sasl.h there's no need to check for sasl.h too
	[3c139fa3c]

	* aclocal.m4, configure, configure.in:
	Add -R flags at the very end after configure link tests are done
	since we can only count on libtool to accept -R, the compiler front
	end may not. Also unify the libldap and libibmldap tests using
	AC_SEARCH_LIBS and check for -lCsup on HP-UX which is needed by
	libibmldap (but is not an explicit dependency).
	[46da6159d]

2013-03-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Back out changes that broke detection of skey, opie and ldap
	libraries.
	[0b9967927]

	* plugins/sudoers/regress/testsudoers/test1.sh,
	plugins/sudoers/regress/testsudoers/test2.sh,
	plugins/sudoers/regress/testsudoers/test3.sh,
	plugins/sudoers/regress/testsudoers/test4.sh,
	plugins/sudoers/regress/testsudoers/test5.sh,
	plugins/sudoers/regress/visudo/test1.sh,
	plugins/sudoers/regress/visudo/test2.sh,
	plugins/sudoers/regress/visudo/test3.sh:
	Add explicit "exit 0" to prevent the check target from ending
	prematurely.
	[2f86c1c09]

	* plugins/sudoers/Makefile.in:
	Fix exit values in check target so we don't have to ignore errors.
	[b0ab02854]

	* plugins/sudoers/Makefile.in:
	Fail a test if there is unexpected stderr output.
	[ae7679a31]

	* MANIFEST:
	Fix path to sudo.conf manuals; remove non-existant test2.err.ok
	[6bd884860]

	* src/load_plugins.c:
	Fix compilation in dynamic mode.
	[ce502e2ae]

	* configure, configure.in:
	On HP-UX, libibmldap has a hidden dependency on libCsup
	[1a51a993d]

	* compat/dlopen.c:
	Pass BIND_VERBOSE to shl_load()
	[7109e46de]

	* configure, configure.in:
	Only create static helper libs when --disable-shared is specified.
	[eef31be22]

	* src/load_plugins.c:
	Ubreak static build.
	[e78381e7c]

	* INSTALL, aclocal.m4, configure, configure.in:
	Replace --with-rpath and --with-blibpath with --disable-rpath. Now
	that we use libtool for linking we can just use the -R flag and have
	libtool translate it to the proper linker flag.
	[c8f630c06]

2013-03-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Bump I/O buffer size 32K
	[5cda642eb]

2013-03-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in:
	Document sesh Path setting.
	[1614c3cad]

	* src/exec.c, src/exec_common.c:
	Move exec_cmnd to exec.c to fix a compilation issue with sesh.c
	[eb2259bc1]

	* common/sudo_conf.c, configure, configure.in, include/sudo_conf.h,
	src/selinux.c:
	Make sesh path configurable in sudo.conf
	[7f32d1ca4]

	* configure, configure.in:
	Use -fno-pie and -nopie if supported when --disable-pie is
	specified.
	[449355429]

2013-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Document direct execution of the command if the policy plugin has no
	close function.
	[2e84f169c]

2013-03-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/pam.c:
	Only delete creds if we actually established them. Print an error if
	pam_setcred() fails and we actually authenticated.
	[1791721ef]

	* common/Makefile.in, plugins/group_file/Makefile.in:
	regen
	[496dc384a]

	* common/alloc.c, include/alloc.h:
	Convert efree() to a macro that just casts to void * and does
	free(). If the system free() can't handle free(NULL) this may crash
	but C89 was a long time ago.
	[d26c0d87f]

	* configure, configure.in:
	Define _REENTRANT for HP-UX when we add -lpthread to SUDO_LIBS.
	Fixes a problem with errno sometimes not being set on error on
	HP-UX.
	[d07d453ab]

	* common/sudo_debug.c:
	Fix debug logging from the plugin when there is no error number.
	This was broken in the big debugging reorg for 1.8.7.
	[1e0a7d511]

2013-03-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in, plugins/group_file/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/load_plugins.c:
	Always install plugins with a .so extension regardless of what
	extension the system uses for shared libraries. That way the
	group_plugin sudoers setting can be shared between heterogenous
	systems.
	[9722784e1]

	* plugins/sudoers/match.c:
	Mac OS X has netgroup functions in netdb.h.
	[e051df657]

	* plugins/sudoers/parse.h:
	Tags in struct cmndtag can be set to IMPLIED as well.
	[8f7657943]

	* plugins/sudoers/parse.c:
	Quiet a compiler warning.
	[b0595e6e2]

	* plugins/sudoers/testsudoers.c:
	Quiet an llvm checker warning.
	[4bfeed221]

	* plugins/sudoers/parse.c:
	Quiet gcc -Wuninitialized false positive
	[56d45003e]

2013-03-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in:
	Document group_file and system_group plugins.
	[7d3ce01a0]

	* NEWS:
	Sudo 1.8.7
	[d695d7be9]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Try to clarify that sudoedit in sudoers should not include a leading
	pathname.
	[8397297de]

	* plugins/sudoers/pwutil_impl.c:
	Make sure groupname_len is at least 32 just to be on the safe side.
	It is better to allocate a little extra and not need it than to have
	to reallocate and start over.
	[593832152]

	* include/alloc.h, include/missing.h:
	Add __malloc_like macro to apply __malloc__ attribute to emalloc,
	ecalloc and estrdup. It cannot be applied to realloc since that may
	return the same pointer.
	[4e5baccb9]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix potential double free in an error path.
	[c47f5f7ab]

	* src/exec_pty.c:
	When running the command in a pty, defer the call to exec_setup()
	until just before we exec the command. This is consistent with the
	non-pty path. As a side effect, the monitor process runs as root and
	not the runas user.
	[19f37400d]

2013-03-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/closefrom.c:
	Update copyright year.
	[a43318959]

2013-03-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/closefrom.c:
	Use pst_highestfd from pstat_getproc() on HP-UX.
	[f524c515e]

2013-02-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, common/Makefile.in, doc/Makefile.in,
	plugins/sudoers/Makefile.in:
	Clean up generated test files and other minor housekeeping.
	[3e6843383]

	* plugins/sudoers/iolog.c:
	Add back gettimeofday() call inadvertantly removed in e1abb9810a83
	[fa93dede3]

	* config.h.in, configure, configure.in, src/ttyname.c:
	Use pstat() on HP-UX to determine the tty device.
	[e30b0bd12]

	* plugins/sudoers/auth/pam.c:
	Fix PAM compilation: def_pam_session, not just pam_session.
	[9a4bd3cce]

	* doc/fixmdoc.sh:
	Don't remove the -S option description when trimming out selinux.
	Bug #592
	[af2d4dbfb]

2013-02-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update for Sudo 1.8.6p7
	[1c30fbb71]

2013-02-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Document when sudo may exec the command directly instead of forking.
	[30f63386d]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Document that close and version be NULL for plugin API >= 1.3 and
	that sudo may execute the command directly if there is no close, or
	pty or timeout needed.
	[d946fdaa7]

	* plugins/sudoers/auth/sudo_auth.c:
	Fix debug_decl for sudo_auth_begin_session and
	sudo_auth_end_session.
	[0eef336ed]

	* configure, configure.in, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, plugins/sudoers/auth/pam.c,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c:
	Add pam_session sudoers option.
	[59692ad28]

	* plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.h:
	Dummy out close function if there is no end_session for the auth
	method and the front-end can handle a NULL close function. Avoids
	the extra sudo process when we don't actually need it.
	[d3ff0f31e]

2013-02-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, aclocal.m4:
	Add m4/ to paths m4_include parameters so we don't need to use
	autoconf's -I flag.
	[2b8cb9898]

	* src/exec.c, src/exec_common.c, src/exec_pty.c, src/sudo_exec.h,
	src/sudo_plugin_int.h:
	If the policy plugin does not provide a close function, there is no
	command timeout and no pty is required, skip the event loop and just
	exec the command directly.
	[5cb928c51]

	* src/sudo.c:
	Do not crash if the plugin close and version functions are not
	defined. If there is no policy close function, simply print a
	warning that the command was not found.
	[5e674a790]

2013-02-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.c:
	Fix typos in selinux/solaris privs specific code.
	[2228763ff]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, src/parse_args.c:
	Pass the default plugin directory to the plugin via the settings
	list. Could be used by a stacking plugin.
	[af4d3489f]

	* plugins/sudoers/timestamp.c:
	Completely ignore time stamp file if it is set to the epoch,
	regardless of what gettimeofday() returns.
	[04b25a8bc]

	* doc/CONTRIBUTORS:
	Add Nikolai Kondrashov
	[f336580bb]

	* plugins/sudoers/ldap.c, plugins/sudoers/sssd.c:
	Use userpw_matches() for username matching so #uid works for
	sudoRunAsUser.
	[1da8739c3]

	* plugins/sudoers/sssd.c:
	Avoid calling realloc3() with a zero size parameter when all
	retrieved sssd rules fail. Otherwise we'll get a run-time error due
	to malloc(0) checking.
	[b929dd3c4]

	* plugins/sudoers/sssd.c:
	Do not send error mail if a user is not found in SSSD. Local users
	can run sudo too. From Nikolai Kondrashov
	[c80603eac]

2013-02-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/regress/sudo_conf/test4.in,
	common/regress/sudo_conf/test4.out.ok:
	Test setting disable_coredump to illegal value.
	[5d7925b24]

	* common/sudo_conf.c:
	Fix atobool() usage.
	[a17fb1de7]

	* common/regress/sudo_conf/conf_test.c:
	Remove unused variable.
	[299298ae4]

	* plugins/sudoers/sudoers.c:
	Make "sudo -l non_existent_command" warn that non_existent_command
	doesn't exist, not the "list" pseudo-command.
	[29becec0e]

	* plugins/sudoers/parse.c:
	Make sudoers file long list output better match the format used by
	ldap sudoers. Tags are now converted to options and there is a
	single command per line.
	[fa924d09b]

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Use the correct the sudoers policy symbol names and undo an editor
	goof committed when adding max_groups to sudo.conf.
	[05e53aea0]

	* plugins/sudoers/parse.c, plugins/sudoers/sudo_nss.c:
	For "sudo -l" start a new line if the runas list changes to make the
	output easier to read.
	[064cb0ced]

2013-02-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.c, plugins/sudoers/sudo_nss.c:
	For "sudo -l" and "sudo -ll" only print the runas info for
	subsequent commands in a list if the runas info has changed. If we
	have new runas info, print out the tags again so as to be less
	confusing to the user. For "sudo -ll" set the line continuation
	indent to 8.
	[d00ad3bbe]

2013-02-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, Makefile.in, configure, configure.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/group_file/Makefile.in, plugins/group_file/getgrent.c,
	plugins/group_file/group_file.c, plugins/group_file/group_file.exp,
	plugins/group_file/plugin_test.c:
	Rename sample_group plugin to group_file. Install group_file and
	system_group plugins by default.
	[e07280eee]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/iolog.c,
	plugins/sudoers/policy.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Add maxseq sudoers option to limit the max number of I/O log files.
	[b9159ecb2]

2013-02-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Log lines and columns in the iolog file.
	[618871a33]

2013-02-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/Makefile.in,
	common/regress/sudo_conf/conf_test.c,
	common/regress/sudo_conf/test1.in,
	common/regress/sudo_conf/test1.out.ok,
	common/regress/sudo_conf/test2.in,
	common/regress/sudo_conf/test2.out.ok,
	common/regress/sudo_conf/test3.in,
	common/regress/sudo_conf/test3.out.ok, common/sudo_conf.c,
	include/sudo_conf.h, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c, src/sesh.c,
	src/sudo.c:
	Add simple regress tests for sudo.conf parsing.
	[0c40e82c1]

	* src/sudo.c:
	Always display the I/O plugin version as long as its open functions
	doesn't return an error. Previously it was only displayed if the
	plugin open returned 1.
	[790304789]

	* plugins/sudoers/pwutil_impl.c:
	Use sysconf(_SC_LOGIN_NAME_MAX) to find max username length instead
	of poking around in struct utmpx.
	[791b75142]

	* plugins/sudoers/pwutil_impl.c, src/parse_args.c, src/sudo.c:
	#include "sudo_usage.h" not <sudo_usage.h> so we get the one in the
	build directory and not the src dir when using a separate build
	directory.
	[2d9da6588]

2013-02-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/fileops.c:
	If a line was longer that 0x80000000 the bit hack to round to the
	next power of two would roll over to zero.
	[0f0ef228a]

	* plugins/sudoers/policy.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/sudoers.h, src/sudo.c:
	Use max_groups in front-end and plugin.
	[d83770034]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, src/parse_args.c:
	Pass max_groups to plugin in settings list.
	[35548ae4e]

	* common/sudo_conf.c, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, include/sudo_conf.h:
	Add max_groups setting to sudo.conf (currently unused) and remove
	unused return value from setters.
	[67fed118b]

2013-02-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	Reorganize configure options
	[c715df98f]

2013-02-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Add Sudo 1.8.6p7
	[6871b25df]

2013-02-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL.configure:
	Sync with autoconf 2.68
	[a72c8d7ac]

	* INSTALL, README:
	Remove obsolete OS notes and move build requirements to INSTALL.
	[d18e05045]

2013-02-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Sort elements of the settings, user_info and command_info lists.
	[987d62ec5]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Remove trailing white space
	[6ba6a454e]

	* plugins/sudoers/policy.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/timestamp.c, plugins/sudoers/timestamp.h:
	Store the session ID in the tty ticket file too. A tty may only be
	in one session at a time so if the session ID doesn't match we
	ignore the ticket.
	[2e08777f2]

2013-02-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c, src/sudo.c:
	Move tzset() call from sudoers plugin to sudo front end.
	[af0bb5528]

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in,
	doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Mention line continuation
	[74881843e]

	* MANIFEST, common/Makefile.in, common/fileops.c,
	common/regress/sudo_parseln/parseln_test.c,
	common/regress/sudo_parseln/test1.in,
	common/regress/sudo_parseln/test1.out.ok,
	common/regress/sudo_parseln/test2.in,
	common/regress/sudo_parseln/test2.out.ok,
	common/regress/sudo_parseln/test3.in,
	common/regress/sudo_parseln/test3.out.ok,
	common/regress/sudo_parseln/test4.in,
	common/regress/sudo_parseln/test4.out.ok,
	common/regress/sudo_parseln/test5.in,
	common/regress/sudo_parseln/test5.out.ok,
	common/regress/sudo_parseln/test6.in,
	common/regress/sudo_parseln/test6.out.ok, common/sudo_conf.c,
	include/fileops.h, plugins/sudoers/env.c, plugins/sudoers/ldap.c,
	plugins/sudoers/sudo_nss.c:
	Add line continuation support to sudo_parseln() and make it use
	getline() instead of fgets() internally.
	[7aae6bd6e]

2013-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sample/sample_plugin.c:
	Fix memory leak in error path; found by llvm checker
	[2d6095420]

	* plugins/sudoers/sudoreplay.c:
	Remove useless store detected by llvm checker.
	[11e04d30d]

	* configure, configure.in, doc/UPGRADE, mkpkg, src/Makefile.in,
	src/load_plugins.c, sudo.pp:
	Sudo now stores its libexec files in a "sudo" subdirectory instead
	of in libexec itself. For backwards compatibility, if the plugin is
	not found in the default plugin directory, sudo will check the
	parent directory default directory ends in "/sudo".
	[6b09c76a2]

	* plugins/sample/sample_plugin.c,
	plugins/sample_group/sample_group.c,
	plugins/system_group/system_group.c:
	Add missing __dso_public to plugin structs so they are exported.
	[becc5fca7]

	* doc/sudo.conf.cat, doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	Mention that sudoers has its own plugins too.
	[fbb8ea504]

2013-02-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Correct last change date.
	[b51d1a9f6]

	* doc/sudo.cat, doc/sudo.conf.cat, doc/sudo.conf.man.in,
	doc/sudo.conf.mdoc.in, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in:
	Remove duplicated sudo.conf info in the sudo, sudoers and
	sudo_plugin manuals and cross-reference the new sudo.conf manual.
	[14bf23c4a]

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in:
	Fix typos
	[5debfeeaf]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in:
	Fix some typos.
	[f6e61640d]

	* MANIFEST, doc/Makefile.in, doc/sudo.conf.cat,
	doc/sudo.conf.man.in, doc/sudo.conf.mdoc.in:
	Add standalone sudo.conf manual page.
	[c5816ca6a]

	* doc/sample.sudo.conf:
	add group_source example
	[f0fdf41d2]

	* configure, configure.in, doc/sample.sudo.conf, doc/sudo.man.in,
	doc/sudo.mdoc.in, doc/sudo_plugin.man.in, doc/sudo_plugin.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Use PLUGINDIR in the manuals and fix a typo in the sample sudo.conf.
	[0bd79612b]

	* plugins/sudoers/po/it.mo, plugins/sudoers/po/it.po, src/po/it.mo,
	src/po/it.po:
	Sync with translationproject.org
	[380fa828d]

2013-02-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/vi.mo, plugins/sudoers/po/vi.po, src/po/fi.mo,
	src/po/fi.po, src/po/gl.mo, src/po/gl.po, src/po/vi.mo,
	src/po/vi.po:
	Sync with translationproject.org
	[e96d58304]

2013-02-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.po, plugins/sudoers/po/eo.mo,
	plugins/sudoers/po/eo.po, src/po/da.po, src/po/eo.mo, src/po/eo.po,
	src/po/es.po, src/po/gl.po:
	Sync with translationproject.org
	[78ca828a3]

2013-01-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Clarify ttyname changes.
	[9a76946cd]

	* NEWS:
	Add 1.8.6p6
	[5fb8749bf]

	* src/ttyname.c:
	Remove ttyname() fall back code on systems where we can query the
	kernel for the tty device via /proc or sysctl(). If there is no
	controlling tty, it is better to just treat the tty as unknown
	rather than to blindly use what is hooked up to std{in,out,err}.
	[23649bef1]

2013-01-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/sudo_conf.c, include/sudo_conf.h, src/sudo.c:
	Add group_source setting in sudo.conf to allow the admin to specify
	how a user's groups are looked up. Legal values are static (just the
	kernel list from getgroups), dynamic (whatever the group database
	includes) and adaptive (only use group db if kernel group list is
	full).
	[630b47e22]

	* plugins/sudoers/policy.c:
	Pass back exec_background to front end if it is enabled in sudoers.
	[8ab7cf61b]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Mention that exec_background is for 1.8.7 and higher only.
	[9ed1f0287]

2013-01-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST:
	Add missing test files.
	[479cd25b2]

	* plugins/sudoers/regress/visudo/test3.err.ok,
	plugins/sudoers/regress/visudo/test3.out.ok,
	plugins/sudoers/regress/visudo/test3.sh:
	Add regress test for bug 361
	[c2e678d73]

	* plugins/sudoers/iolog.c:
	Add __dso_public to extern declaration of declaration to match
	actual definition.
	[f2beaaa89]

	* NEWS:
	Add 1.8.6p5
	[210ab2449]

2013-01-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/regress/visudo/test2.err.ok,
	plugins/sudoers/regress/visudo/test2.out.ok,
	plugins/sudoers/regress/visudo/test2.sh:
	Add test for visudo cycle check core dump; test case from Daniel
	Kopecek
	[db7ea4123]

	* plugins/sudoers/visudo.c:
	Fix potential stack overflow due to infinite recursion in alias
	cycle detection. From Daniel Kopecek.
	[6fe6ccb04]

	* common/sudo_conf.c, include/sudo_conf.h, src/load_plugins.c:
	Ignore duplicate entries in sudo.conf and report the line number
	when there is an error. Warn, don't abort if there is more than one
	policy plugin.
	[ef8e14124]

	* plugins/sudoers/tsgetgrpw.c:
	Use strtoul() not atoi().
	[c00c96801]

2013-01-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/Makefile.in:
	regen depends for to add compat/nss_dbdefs.h for getgrouplist.lo
	[0fdb89e3b]

	* compat/nss_dbdefs.h:
	Fix typo that breaks the build on HP-UX.
	[e1859cac1]

	* MANIFEST, compat/getgrouplist.c, compat/nss_dbdefs.h, config.h.in,
	configure, configure.in:
	Use nss_search() to implement getgrouplist() where available. Tested
	on Solaris and HP-UX. We need to include a compatibility header for
	HP-UX which uses the Solaris nsswitch implementation but doesn't
	ship nss_dbdefs.h.
	[6bc3d4aed]

2013-01-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_pty.c, src/signal.c, src/sudo.h:
	Remove extra flag to sudo_sigaction(). We want to trap the signal
	regardless of whether or not it is ignored by the underlying command
	since there's no way to know what signal handlers the command will
	install. Now we just use sudo_sigaction() to set a flag in
	saved_signals[] to indicate whether a signal needs to be restored
	before exec.
	[e76460448]

2013-01-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/getgrouplist.c, config.h.in, configure, configure.in:
	Use _getgroupsbymember() on Solaris to get the groups list. Fixes
	performance problems with the getgroupslist() compat on Solaris
	systems with network-based group databases.
	[a06a14838]

2013-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Document signal handler behavior in plugin API 1.3
	[872e16883]

	* MANIFEST, include/sudo_plugin.h, src/Makefile.in, src/exec.c,
	src/exec_pty.c, src/signal.c, src/sudo.c, src/sudo.h:
	Move signal code into its own source file and add sudo_sigaction()
	wrapper that has an extra flag to check the saved_signals list to
	only install the handler if the signal is not already ignored. Bump
	plugin API version for the new front-end signal behavior.
	[855a11af2]

	* plugins/sudoers/sudoers.c, src/exec.c, src/sudo.c, src/sudo.h,
	src/sudo_exec.h:
	Catch SIGINT, SIGQUIT and SIGTSTP in the front end before we execute
	the command. If we get SIGINT or SIGQUIT, call the plugin close()
	functions as if the command was interrupted. If we get SIGTSTP,
	uninstall the handler and deliver SIGTSTP to ourselves.
	[99704cc10]

	* src/exec.c, src/exec_pty.c:
	Rename handle_signals() to dispatch_signals(). Block other signals
	in handler() so we don't have to worry about the write() being
	interrupted.
	[541315212]

2013-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/tgetpass.c:
	Rename signal handler to avoid name clash with one in exec.c
	[2be741d8a]

2013-01-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo.c:
	Add missing call to save_signals().
	[90c6ace77]

2013-01-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	Fill in the comment block at the top of the .pot files and preserve
	it when regenerating them.
	[70976f30e]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.mdoc.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/sudoers.c, src/exec_pty.c, src/sudo.c, src/sudo.h:
	Add exec_background option in plugin command info and a sudoers
	option to match. When set, commands are started in the background
	and automatically foregrounded as needed. There are issues with some
	ill-mannered programs (like Linux su) so this is not the default.
	[9479bb623]

	* common/Makefile.in:
	regen
	[a6f3517f2]

	* src/Makefile.in:
	Add SESH_OBJS variable for sesh object files.
	[64bf4bb05]

	* configure.in, doc/LICENSE, plugins/sudoers/redblack.c:
	Update copyright year.
	[4bc616b67]

	* src/exec_pty.c:
	Always resume the command in the foreground if sudo itself is the
	foreground process. This helps work around poorly behaved programs
	that catch SIGTTOU/SIGTTIN but suspend themselves with SIGSTOP. At
	worst, sudo will go into the background but upon resume the command
	will be runnable. Otherwise, we can get into a situation where the
	command will immediately suspend itself.
	[8b3edcc4a]

	* configure, configure.in:
	Use -fstack-protector-all in preference to -fstack-protector where
	supported.
	[adbc8a574]

2013-01-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Only test for -fstack-protector and -fvisibility=hidden on GNU
	compatible compilers.
	[34d018fb9]

2013-01-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Add Sudo 1.8.6p4
	[726a7daa6]

	* common/Makefile.in, compat/Makefile.in, configure, configure.in,
	plugins/sample/Makefile.in, plugins/sample_group/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/system_group/Makefile.in,
	src/Makefile.in:
	Break out stack smashing protector options into SSP_CFLAGS and
	SSP_LDFLAGS so we can use it everywhere (unlike LT_LDFLAGS).
	[6e560f2ba]

2013-01-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS, plugins/sudoers/redblack.c:
	In rbrepair(), make sure we never try to change the color of the
	sentinel node, which is the first entry, not the root. From Michael
	King
	[90d58685f]

2012-12-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	No need to restore default signal handler for SIGSTOP as it is not
	catchable. Attempting to do so is harmless but sigaction() will fail
	and set errno to EINVAL which makes it looks like there is an error.
	[782da0aa8]

	* src/exec.c:
	Print SIGCONT_FG and SIGCONT_BG properly in debug output.
	[d129290ec]

2012-12-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Disable PIE on FreeBSD/ia64, otherwise sudo will segfault.
	[948253a15]

2012-12-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/missing.h:
	Add howmany() macro since some systems have this in sys/param.h
	which we no longer include.
	[a449e8b3e]

2012-12-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/sudoers/test11.toke.out.ok:
	Remove errant file.
	[652d0de98]

2012-12-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_fill.c:
	Remove obsolete sudoers_cleanup() stubs.
	[3391038d4]

	* common/alloc.c, common/atobool.c, common/fileops.c,
	common/fmt_string.c, common/lbuf.c, common/secure_path.c,
	common/sudo_conf.c, common/sudo_debug.c, common/term.c,
	compat/closefrom.c, compat/getcwd.c, compat/glob.c,
	compat/snprintf.c, include/missing.h,
	plugins/sample/sample_plugin.c, plugins/sample_group/getgrent.c,
	plugins/sample_group/plugin_test.c,
	plugins/sample_group/sample_group.c, plugins/sudoers/alias.c,
	plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/boottime.c,
	plugins/sudoers/check.c, plugins/sudoers/defaults.c,
	plugins/sudoers/env.c, plugins/sudoers/find_path.c,
	plugins/sudoers/getspwuid.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/group_plugin.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/logging.c, plugins/sudoers/match.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/parse.c,
	plugins/sudoers/policy.c, plugins/sudoers/prompt.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/pwutil_impl.c,
	plugins/sudoers/redblack.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestamp.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c,
	plugins/system_group/system_group.c, src/conversation.c, src/exec.c,
	src/exec_common.c, src/exec_pty.c, src/get_pty.c,
	src/load_plugins.c, src/net_ifs.c, src/parse_args.c, src/sudo.c,
	src/sudo_edit.c, src/tgetpass.c, src/ttyname.c, src/utmp.c:
	Don't include <sys/param.h>. We only needed it for MAXPATHLEN,
	MAXHOSTNAMELEN and the MIN/MAX macros. We now use PATH_MAX and
	HOST_NAME_MAX throughout without falling back on MAXPATHLEN or
	MAXHOSTNAMELEN and define our own MIN/MAX macros as needed.
	[1d7072fe0]

	* include/missing.h, plugins/sudoers/match.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c, src/sudo.c:
	Use MAX_HOST_NAME+1 (limits.h) instead of MAXHOSTNAMELEN
	(sys/param.h or netdb.h).
	[3c9da162e]

2012-11-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.c:
	Move debug_decl() in log_failure() to be after the variable
	declarations for C89.
	[9a1889a61]

2012-11-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/error.c, include/error.h, plugins/sudoers/iolog.c,
	plugins/sudoers/logging.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Cannot wrap sigsetjmp() or we end up returning to the wrong place.
	Use a macro instead.
	[b7ae7977a]

2012-11-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/policy.c:
	Fix return in sudoers_policy_open that should be debug_return.
	[02ad501ec]

2012-11-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	Define sudo_ttyname_dev() for the HAVE_STRUCT_PSINFO_PR_TTYDEV case
	too.
	[d3ab8b080]

	* src/solaris.c:
	Quiet a gcc warning and add comment about needing to keep the handle
	open.
	[dd5d0eada]

2012-11-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	mention --disable-shared
	[a94e94cf8]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Add missing command_info argument in I/O plugin open() prototype.
	Bug #579
	[94e2b1fbd]

2012-11-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/gram.c:
	Regen for proper line numbers.
	[1660c2692]

	* configure, configure.in:
	Add locale_stub.o to SUDO_OBJS, not locale_stub.lo.
	[415dc8297]

	* common/sudo_printf.c:
	Include missing.h for __printflike.
	[14e5f35d4]

	* plugins/sudoers/iolog.c:
	Saner loop invariant in io_mkdirs (cosmetic only).
	[727be2989]

	* MANIFEST, common/Makefile.in, common/error.c,
	common/sudo_printf.c, configure, configure.in, include/error.h,
	mkdep.pl, plugins/sudoers/Makefile.in, plugins/sudoers/locale.c,
	plugins/sudoers/logging.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c, src/Makefile.in, src/error.c,
	src/exec_pty.c, src/locale_stub.c, src/sesh.c:
	Move warn/error into common and make static builds work.
	[2632ec7e6]

	* MANIFEST, common/Makefile.in, common/sudo_debug.c,
	common/sudo_printf.c, include/error.h, plugins/sudoers/Makefile.in,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/iolog.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/policy.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/Makefile.in, src/conversation.c, src/sesh.c:
	Move _sudo_printf from src/conversation.c to common/sudo_printf.c.
	Add sudo_printf function pointer that is initialized to
	_sudo_printf() instead of requiring a sudo_conv function pointer
	everywhere. The plugin will reset sudo_printf to point to the
	version passed in via the plugin open function. Now plugin_error.c
	can just call sudo_printf in all cases. The sudoers binaries no
	longer need their own version of sudo_printf.
	[c2c6616a0]

	* plugins/sudoers/iolog.c, plugins/sudoers/logging.c,
	plugins/sudoers/plugin_error.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Add plugin_setjmp() wrapper for siglongjmp(error_jmp, 1) so we don't
	need error_jmp to be extern. Also add plugin_clearjmp() that clears
	a flag so error()/errorx() knows when to call exit() vs. longjmp().
	[5496ffe1e]

	* plugins/sudoers/set_perms.c:
	Let warning() call gettext() for us.
	[d658d1219]

	* include/error.h, plugins/sudoers/plugin_error.c, src/error.c:
	Do locale swapping in the warning()/error() macros themselves
	instead of in the underlying functions.
	[88c6446da]

	* common/alloc.c, common/list.c, include/error.h,
	plugins/sudoers/env.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/visudo.c, src/error.c,
	src/hooks.c:
	Rename warning2()/error2() -> warning_nodebug()/error_nodebug().
	[4bde57b8b]

	* common/sudo_conf.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/defaults.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/ldap.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/logging.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/policy.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/visudo.c, src/error.c,
	src/exec.c, src/exec_common.c, src/exec_pty.c, src/load_plugins.c,
	src/net_ifs.c, src/parse_args.c, src/selinux.c, src/sesh.c,
	src/solaris.c, src/sudo.c, src/sudo_edit.c, src/tgetpass.c:
	Call gettext() on parameters for warning()/warningx() instead of
	having warning() do it for us.
	[7b3d26868]

	* Makefile.in, plugins/sudoers/alias.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c:
	Call gettext() in sudoerserror() in the user's locale and pass the
	untranslated string to it.
	[15c69e0e3]

	* plugins/sudoers/Makefile.in, plugins/sudoers/locale.c,
	plugins/sudoers/logging.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Allow sudoers programs (visudo, sudoreplay, visudo) to use
	plugin_error.c instead of the error.c from the front-end. This means
	sudoers_setlocale() needs to be independent of the sudo_user struct
	and the defaults table. The sudoers locale is now updated via a
	callback.
	[90147bb60]

	* plugins/sudoers/iolog.c, plugins/sudoers/logging.c,
	plugins/sudoers/plugin_error.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Include setjmp.h in sudoers.h Move error_jmp into plugin_error.c
	Rename sudoers_plugin_cleanup sudoers_cleanup Make sudoers
	warning/error functions work when sudo_conv is NULL
	[3e5bd8dc5]

	* src/error.c:
	No need to change locale in front-end warning()/error().
	[3b5f78699]

	* plugins/sudoers/tsgetgrpw.c:
	Ignore bad lines in passwd/group file instead if stopping processing
	when we hit one.
	[e81eb5b00]

	* plugins/sudoers/regress/testsudoers/test2.sh,
	plugins/sudoers/regress/testsudoers/test3.sh,
	plugins/sudoers/regress/testsudoers/test5.sh:
	Bash doesn't let you set UID to use MYUID instead.
	[cca915e39]

	* plugins/sudoers/visudo.c:
	Avoid NULL deref for unknown Defaults in strict mode.
	[056c08a5b]

	* common/sudo_conf.c, common/sudo_debug.c:
	See DEFAULT_TEXT_DOMAIN
	[6849fff4d]

2012-11-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* .hgignore:
	Add signame.c and mksigname.
	[6e3965160]

	* plugins/sudoers/Makefile.in:
	Fold preinstall into install-plugin and pass the path to the plugin
	binary to the preinstall command.
	[5e09ae9b7]

	* pp:
	sync with upstream
	[c46a6a5b2]

	* src/sudo.h:
	repair spacing
	[8195fe1bd]

2012-11-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/sudo_debug.c:
	Set group on sudo_debug when creating it to gid 0 so systems without
	BSD group semantics don't get the invoking user's group.
	[0178d5ae0]

	* plugins/sudoers/iolog.c:
	Rename mkdir_parents() io_mkdirs() and add a flag to specify whether
	path is a temporary, in which case the final component is created
	via mkdtemp() instead of mkdir().
	[edf088182]

	* plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.h:
	For PERM_ROOT set egid to 0 so log files are not created with the
	gid of the user.
	[cab6b976d]

	* plugins/sudoers/logging.c:
	Add calls to set_perms(PERM_ROOT) becore logging to a file. We
	should already be root but since we cache the current permission
	status it is basically free. That way, if more of sudoers runs as
	non-root in the future logging will still work correctly.
	[02aa965a2]

	* common/sudo_conf.c, config.h.in, configure, configure.in,
	include/gettext.h, plugins/sudoers/locale.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/error.c, src/exec.c, src/sesh.c, src/sudo.c:
	#unifdef HAVE_SETLOCALE, it is C89 so no need to check for it.
	[acf8af9aa]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in:
	Mention that sudo.conf is parsed in the C locale.
	[648590658]

	* common/sudo_conf.c:
	Parse sudo.conf in the "C" locale.
	[4bd4a9171]

	* plugins/sudoers/locale.c, plugins/sudoers/logging.h,
	plugins/sudoers/sudoers.h:
	Fix compilation on systems w/o setlocale()
	[336021a9c]

	* doc/TROUBLESHOOTING:
	Sudo now includes a workaround for the Solaris 11 locale issue.
	[5957c88f4]

2012-11-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/gettext.h, plugins/sudoers/iolog_path.c,
	plugins/sudoers/locale.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/error.c, src/exec.c, src/sesh.c, src/sudo.c, src/sudo.h:
	Always include locale.h from gettext.h so we no longer need to
	include locale.h from the .c files.
	[c1db4b154]

	* MANIFEST, config.h.in, configure, configure.in, mkdep.pl,
	plugins/sudoers/Makefile.in, src/Makefile.in, src/openbsd.c,
	src/solaris.c, src/sudo.c, src/sudo.h:
	Add os-specific initialization functions for solaris (workaround
	setuid locale problem in Solaris 11) and openbsd (set malloc_options
	if SUDO_DEVEL). Also move set_project() to solaris.c.
	[83dde2fbb]

2012-11-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/find_path.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/timestamp.c:
	Avoid strerror() when possible and just rely on warning/error to
	handle errno in the proper locale.
	[56de023de]

	* plugins/sudoers/logging.c:
	Set sudoers locale in log_allowed()
	[e28ce01fe]

	* plugins/sudoers/check.c:
	Make the sudo lecture translatable.
	[69cb0c321]

	* Makefile.in:
	Add the values of badpass_message, passprompt and mailsub to
	sudoers.pot so they can be translated.
	[5e637ad83]

	* plugins/sudoers/logging.c:
	Expand the FMT_FIRST anf FMT_CONTD macros inline so they get picked
	up by xgettext.
	[693e6767f]

2012-11-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c, plugins/sudoers/prompt.c,
	plugins/sudoers/sudoers.h:
	Make expand_prompt() args const and free the prompt when we are done
	with it.
	[6a7884d47]

	* plugins/sudoers/policy.c:
	Fix cut and pasto
	[e88c8941d]

	* plugins/sudoers/defaults.c, plugins/sudoers/logging.c:
	Expand def_mailsub in the sudoers locale, not the user's.
	[cac7ca6a6]

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/check.c,
	plugins/sudoers/env.c, plugins/sudoers/iolog.c,
	plugins/sudoers/locale.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/parse.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/timestamp.c:
	Call gettext inside log_error et al instead of having the caller do
	it. This way we can display any messages to the user in their own
	locale but log in the sudoers local.
	[a0c53bd75]

	* common/sudo_conf.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/defaults.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/ldap.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/logging.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/policy.c, plugins/sudoers/sssd.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/visudo.c, src/error.c, src/exec.c,
	src/exec_common.c, src/exec_pty.c, src/load_plugins.c,
	src/net_ifs.c, src/parse_args.c, src/selinux.c, src/sesh.c,
	src/sudo.c, src/sudo_edit.c, src/tgetpass.c:
	Display warning/error messages in the user's locale.
	[595d3b265]

	* plugins/sudoers/audit.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/logging.c, plugins/sudoers/sudoers.c:
	audit_failure() now calls gettext itself using the sudoers locale.
	[f454a852c]

	* plugins/sudoers/iolog_path.c, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers.c:
	Convert setlocale() to sudoers_setlocale() in the sudoers module.
	This only converts existing uses, there are more places where we
	need to sprinkle sudoers_setlocale() calls.
	[3f82a3407]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/env.c,
	plugins/sudoers/locale.c, plugins/sudoers/logging.h,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Add simple locale switching to make it easy to switch from the
	user's locale to the sudoers locale without making excessive
	setlocale() calls when we don't need to.
	[4207589fe]

	* common/sudo_debug.c, include/error.h, include/sudo_debug.h,
	plugins/sudoers/plugin_error.c, src/error.c:
	Add variants of warn/error and sudo_debug_printf that take a va_list
	instead of a variable number of args.
	[f8660f998]

	* INSTALL, doc/TROUBLESHOOTING:
	Document Solaris 11 locale issues and workarounds.
	[56857f7f0]

	* Makefile.in, configure, configure.in:
	Solaris gettext() looks in lang.UTF-8, not just lang for UTF-8
	locales. Make links from localdir/lang -> localdir/lang.UTF-8
	[9d2dc4c30]

2012-11-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/sudoers.c:
	Do not inform the user that the command was not permitted by the
	policy if they do not successfully authenticate. This is a
	regression introduced in sudo 1.8.6.
	[5d052aeb6]

	* plugins/sudoers/Makefile.in:
	Add preinstall target that runs SUDO_PREINSTALL_CMD. Used to fixup
	the rpath in HP-UX SOM shared libraries for the LDAP libs.
	[941d759c5]

	* src/parse_args.c:
	The -a option should be #ifdef HAVE_BSD_AUTH_H, not -A.
	[e6207003b]

2012-10-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, configure, configure.in:
	Allow the user to specify and alternate libtool
	[0586a5e28]

2012-10-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS, plugins/sudoers/sudo_nss.c:
	Allow sudo to be build with sss support without also including ldap
	support. From Stephane Graber.
	[68376c138]

2012-10-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/iolog_path.c, plugins/sudoers/logging.c,
	plugins/sudoers/plugin_error.c, plugins/sudoers/policy.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Refactor policy plugin interface code from sudoers.c into policy.c
	[475662aaa]

	* plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c:
	Refactor command_info setting into its own function.
	[3651377e1]

	* plugins/sudoers/interfaces.c, plugins/sudoers/interfaces.h,
	plugins/sudoers/match_addr.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Make interfaces pointer private to interfaces.c and add
	get_interfaces() accessor.
	[929aef075]

2012-10-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog_path.c, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers.h:
	Make user_cwd const since it is either a string literal or passed in
	from the front-end.
	[319fe95d0]

	* configure, configure.in:
	sudo 1.8.7
	[8aca292b2]

	* plugins/sudoers/sudoers.c:
	Avoid nested strtok() calls.
	[4134b24ec]

2012-10-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/check.c,
	plugins/sudoers/prompt.c, plugins/sudoers/sudoers.h:
	Move expand_prompt() into its own source file for easier unit
	testing.
	[2b23d2b12]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/check.c,
	plugins/sudoers/check.h, plugins/sudoers/sudoers.h,
	plugins/sudoers/timestamp.c, plugins/sudoers/timestamp.h:
	Make check.c independent of the underlying timestamp implementation.
	[0a7af2303]

	* plugins/sudoers/iolog_path.c:
	Add SUDOERS_NO_SEQ define to allow ${seq} to be disabled.
	[fb037caff]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Use a list for the possible values of Tag_Spec with a minimal indent
	to improve readability. In the pod version, these were =head3. Also
	use .St -p1003.1 instead of just POSIX when talking about glob() and
	fnmatch().
	[3442a0aea]

2012-10-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	sudo_ttyname_dev() is unused if there is no /proc or sysctl().
	[84eedd3f7]

	* compat/mksiglist.c, compat/mksigname.c,
	compat/regress/fnmatch/fnm_test.c, compat/regress/glob/globtest.c,
	plugins/sample_group/plugin_test.c,
	plugins/sudoers/regress/check_symbols/check_symbols.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c, src/sesh.c, src/sudo.c:
	Explicitly mark main() as public in executables to avoid an HP-UX ld
	warning.
	[a3a1574cd]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in:
	Remove grep from SEE ALSO section.
	[09140fd1a]

	* common/alloc.c:
	If vasprintf() fails, just use the errno it sets instead of assuming
	ENOMEM.
	[1cf3def4b]

2012-09-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/TROUBLESHOOTING:
	Mention HP-UX pam.conf settings.
	[acb9c6298]

2012-09-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/check.c,
	plugins/sudoers/defaults.c, plugins/sudoers/timestamp.c,
	plugins/sudoers/timestamp.h:
	Split off timestamp functions into their own source file.
	[0fa33ccf0]

2012-09-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Mention how !foo is not the same as ALL,!foo
	[05896f9cf]

2012-09-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Start commands in the background when I/O logging is enabled. We
	can't do this on Mac OS X due to a kernel bug in tc[gs]etattr(2)
	which returns EINTR on signal instead of restarting automatically.
	[592f6fefb]

	* src/exec_pty.c:
	Handle SIGCONT_FG and SIGCONT_BG when converting signal number to
	string in deliver_signal().
	[616d713e9]

2012-09-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Fix running commands that need the terminal in the background when
	I/O logging is enabled. E.g. "sudo vi &". When the command is
	foregrounded, it will now resume properly.
	[0e94e8ca9]

	* plugins/sudoers/match.c:
	Add rudimentary support for name-based matching as a compile-time
	option. This unsafe when used in conjunction with the '!' operator.
	[6a25affb4]

2012-09-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/pwutil.c,
	plugins/sudoers/pwutil.h, plugins/sudoers/pwutil_impl.c:
	Split out implementation-specific back end code out of pwutil.c into
	pwutil_impl.c. This will allow the main pwutil code to be used for
	lookup methods other than getpw* and getgr*.
	[883e0ec3c]

2012-09-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.in:
	sudo 1.8.6p3
	[a7ce1909f]

2012-09-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/fixman.sh:
	Don't use embedded newline when matching, use \n. This got expanded
	at some point. Bug #573
	[4446e22a9]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Rename yyerror() to sudoerserror() to match yacc prefix changes. Not
	really needed due to the #defines that yacc makes but it is less
	confusing this way as the lexer calls sudoerserror().
	[7f36643a6]

	* common/alloc.c, plugins/sample_group/plugin_test.c,
	plugins/sudoers/env.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	src/exec_common.c, src/parse_args.c, src/sudo.c:
	No need to translate "unable to allocate memory" when we can just
	use the system translation via strerror().
	[1d90c0ad7]

	* plugins/sudoers/sudoreplay.c:
	Fall back on lstat(2) if d_type in struct dirent is DT_UNKNOWN. Not
	all file systems support d_type. Bug #572
	[f808fead0]

	* plugins/sudoers/sudoreplay.c:
	Avoid calling fclose(NULL) in the error path when we cannot open an
	I/O log file.
	[37d70a999]

2012-09-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.in:
	Sudo 1.8.6p2
	[0c94a95ef]

	* src/exec.c:
	When setting the signal handler for SIGTSTP to the default value in
	non-I/O log mode, store the old handler value for when we restore it
	after resume.
	[885b6e7cd]

	* plugins/sudoers/env.c:
	Replace the guts of sudo_setenv_nodebug() with our old setenv.c
	which supports non-standard BSD and glibc semantics. sudo_setenv()
	now simply calls sudo_setenv2().
	[faf112c53]

2012-09-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.mdoc.in, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document non-Unix group support in LDAP sudoers.
	[3c34c0a4b]

	* plugins/sudoers/ldap.c:
	Enable non-Unix group support for LDAP sudoers. We now check for
	non-Unix groups and netgroups with the same query in the second
	pass. Bug #571
	[bdf93e8d3]

2012-09-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/parse.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	plugins/sudoers/visudo.c:
	Set yacc prefix to "sudoers" to avoid conflicts other yacc parsers.
	[5276ab3a5]

2012-09-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Mention support for SUCCESS=return in /etc/nsswitch.conf
	[0c9083b14]

	* NEWS, configure, configure.in:
	sudo 1.8.6p1
	[824092b88]

2012-09-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/env.c:
	Avoid setting LOGNAME, USER and USERNAME variables twice when
	set_logname is enabled.
	[40d0492a4]

	* plugins/sudoers/env.c:
	Fix duplicate detection in sudo_putenv(), do not prune out the
	variable we just set when overwriting an existing instance. Fixes
	bug #570
	[6beab1914]

	* plugins/sudoers/env.c:
	Add some debuggging
	[d2a46c0f8]

2012-09-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudo_nss.c:
	Disable word wrap in list mode when stdout is a pipe to make "sudo
	-l | grep ..." more useful. Adapted from a diff by Daniel Kopecek.
	[3af7a0daf]

	* common/lbuf.c:
	Print a trailing newline in lbuf_print() when there is not enough
	space to do word wrapping and the lbuf does not end with a newline.
	[e5257d48d]

	* plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c:
	Add support for [SUCCESS=return] in nsswitch.conf; from Daniel
	Kopecek
	[d787df3c1]

	* MANIFEST:
	Add sssd.c
	[2068d941b]

2012-09-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/fi.mo,
	plugins/sudoers/po/hr.mo, plugins/sudoers/po/sl.mo,
	plugins/sudoers/po/uk.mo, src/po/fi.mo, src/po/hr.mo, src/po/it.mo,
	src/po/ru.mo, src/po/sl.mo, src/po/uk.mo, src/po/vi.mo:
	regen .po files
	[a71e685aa]

	* MANIFEST, plugins/sudoers/po/vi.mo:
	Add Vietnamese sudoers translation from translationproject.org
	[8de12a2bc]

	* NEWS:
	mention PIE
	[cab82ddcf]

	* MANIFEST, plugins/sudoers/po/vi.po:
	Add Vietnamese sudoers translation from translationproject.org
	[4380a60a9]

2012-08-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, compat/Makefile.in, mkdep.pl:
	Add missing signame dependency
	[4017e63b9]

	* src/exec.c, src/ttyname.c:
	Silence compiler warnings.
	[ae21fb299]

	* MANIFEST, compat/Makefile.in, compat/sig2str.c, config.h.in,
	configure, configure.in, include/missing.h, mkdep.pl, src/exec.c,
	src/exec_pty.c:
	Replace strsigname() with sig2str(), emulating it as needed.
	[ab7dda035]

	* config.h.in, configure, configure.in, src/utmp.c:
	Use fseeko() for legacy utmp handling if available.
	[71e2d8290]

2012-08-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/strsigname.c, config.h.in, configure, configure.in:
	Detect sys_sigabbrev[] and use it in place of sys_signame[] if
	present. For some reason glibc does not declare sys_sigabbrev so we
	must add an extern definition of our own.
	[f44afdc42]

	* compat/strsignal.c, compat/strsigname.c:
	Handle NULL entries in sys_siglist and sys_signame.
	[af4f02d3e]

	* compat/mksiglist.c, compat/mksiglist.h, compat/mksigname.c,
	compat/mksigname.h, compat/strsignal.c, compat/strsigname.c:
	Convert my_sys_sig{list,name} -> sudo_sys_sig{list,name}
	[24991069f]

2012-08-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	sync
	[a371c50f0]

	* src/exec.c:
	Pass on SIGTSTP to the command if it was sent by a user process (not
	the kernel or the terminal) when we are not I/O logging and set the
	default SIGTSTP handler when we re-send the signal to ourself,
	restoring our handler after we resume.
	[37269d662]

	* src/exec.c:
	Shells typically change their process group when they start up so
	that they can implement job control. Most well-behaved shells change
	the pgrp back to its original value before suspending so we must not
	try to restore in that case, lest we race with the child upon
	resume, potentially stopping sudo with SIGTTOU while the command
	continues to run. Some shells, such as pdksh, just suspend the shell
	by sending SIGSTOP to themselves without restoring the pgrp. In this
	case we need to change the pgrp back for them. Should fix bug #568
	[29907e357]

2012-08-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, compat/Makefile.in, compat/mksigname.c,
	compat/mksigname.h, compat/strsignal.c, compat/strsigname.c,
	config.h.in, configure, configure.in, include/missing.h, mkdep.pl,
	src/exec.c, src/exec_pty.c:
	Use strsigname() to print signal names in the debug output. If the
	system has no strsigname(), use our own.
	[537dc94b9]

2012-08-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/testsudoers/test5.inc,
	plugins/sudoers/regress/testsudoers/test5.sh:
	Remove generated file and change path for temporary include file.
	[ac4b21b3e]

	* plugins/sudoers/Makefile.in:
	When running regress tests, list pass/fail rate for each dir
	(testsudoers and visudo) instead of the total. Also prevent the
	result files from clobbering each other by keeping them in the
	relevant directories.
	[6d08c4b40]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Don't print an error message in yyerror() if open_sudoers() fails,
	we've already printed an error message. Also restore the check for
	sudoers_warnings in yyerror().
	[e498bab4c]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l:
	Avoid printing the >>> parse error <<< message for testsudoers when
	the -t flag is specified.
	[0c8c3c0cd]

2012-08-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.c:
	Fix NULL deref when an entry has no Runas_Entry
	[793426106]

	* plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	src/po/ja.mo, src/po/ja.po, src/po/pl.mo, src/po/pl.po,
	src/po/zh_CN.mo, src/po/zh_CN.po:
	sync with translationproject.org
	[81d42ae4e]

	* NEWS:
	sync
	[f82515a8c]

	* plugins/sudoers/check.c:
	Correct the check_user() comment header.
	[778895adf]

	* plugins/sudoers/auth/sudo_auth.c:
	Change a log_fatal() into log_error() when no auth methods are
	configured. The caller already checks the return value.
	[60ba36979]

	* plugins/sudoers/logging.c:
	Add missing debug_return
	[2b5d43b8a]

2012-08-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Make the capitalization consistent for .Ss and .Sx
	[2d3a0d14d]

	* doc/Makefile.in, doc/fixman.sh, doc/fixmdoc.sh, doc/sudo.cat,
	doc/sudo.man.in, doc/sudo.mdoc.in:
	Add COMMAND EXECUTION section that describes how sudo runs the
	command, the extra sudo processes and signal handling.
	[8f3232ee6]

2012-08-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Happy Easter
	[c1d6e86d6]

2012-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/Makefile.in:
	Don't echo the awk command when building siglist.in
	[2cdd315a0]

	* doc/fixman.sh, doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Cosmetic changes.
	[7afcef8ee]

	* doc/Makefile.in:
	The HISTORY, LICENSE and CONTRIBUTORS files are not longer
	generated.
	[3bef51c62]

	* MANIFEST, plugins/sudoers/po/da.po, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/hr.po, plugins/sudoers/po/it.mo,
	plugins/sudoers/po/it.po, plugins/sudoers/po/sl.po,
	plugins/sudoers/po/uk.po, src/po/de.mo, src/po/de.po, src/po/fi.po,
	src/po/hr.po, src/po/it.po, src/po/ru.po, src/po/sl.po,
	src/po/uk.po, src/po/vi.po:
	Sync with translationproject.org and add Italian sudoers
	translation.
	[57f1c7fe0]

2012-08-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Expand description of fqdn to talk about systems where the hosts
	file is searched before DNS.
	[82115dfa1]

2012-08-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/Makefile.in:
	For cat pages there is nothing to make unless DEVEL is set.
	[c2b6033c7]

	* configure, configure.in, doc/Makefile.in:
	Always use mandoc to format cat pages and remove now-extraneous
	nroff configure tests.
	[1e43242b3]

	* pp:
	sync polypkg from git
	[35d51f3b5]

	* plugins/sudoers/sudoers.c:
	Use AI_FQDN instead of AI_CANONNAME if available since "canonical"
	is not always the same as "fully qualified".
	[6260a7589]

2012-08-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.mdoc.in:
	Fix some typos. Describe error messages not related to policy
	permissions.
	[e01886ed2]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/visudo.c:
	Add new check_defaults() function to check (but not update) the
	Defaults entries. Visudo can now use this instead of update_defaults
	to check all the defaults regardless instead of just the global
	Defaults entries.
	[7aeadbd5b]

2012-08-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Document sudoers log format.
	[d764db707]

	* NEWS:
	Update for sudo 1.8.5p3
	[d312b241d]

	* src/load_plugins.c:
	Add missing check for I/O plugin API version when checking for the
	presence of I/O plugin hooks.
	[805039bec]

	* src/hooks.c:
	Can't call debug code in the process_hooks_xxx functions() since
	ctime() may look up the timezone via the TZ environment variable.
	[f32aaed29]

2012-08-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_common.c, src/sesh.c, src/utmp.c:
	Include signal.h before sudo_exec.h since it uses sigset_t * in the
	fork_pty prototype.
	[e4e815dd8]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in,
	doc/visudo.cat, doc/visudo.man.in, doc/visudo.mdoc.in:
	Remove OPTIONS section; options now go inside DESCRIPTION
	[50eae1c22]

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	regen
	[66ad86594]

	* MANIFEST, NEWS, plugins/sudoers/po/da.mo,
	plugins/sudoers/po/da.po, plugins/sudoers/po/eo.mo,
	plugins/sudoers/po/eo.po, plugins/sudoers/po/fi.mo,
	plugins/sudoers/po/fi.po, plugins/sudoers/po/hr.mo,
	plugins/sudoers/po/hr.po, plugins/sudoers/po/ja.mo,
	plugins/sudoers/po/ja.po, plugins/sudoers/po/pl.mo,
	plugins/sudoers/po/pl.po, plugins/sudoers/po/sl.mo,
	plugins/sudoers/po/sl.po, plugins/sudoers/po/uk.mo,
	plugins/sudoers/po/uk.po, plugins/sudoers/po/zh_CN.mo,
	plugins/sudoers/po/zh_CN.po, src/po/da.mo, src/po/da.po,
	src/po/hr.mo, src/po/hr.po, src/po/sl.mo, src/po/sl.po,
	src/po/vi.mo, src/po/vi.po:
	Sync with translationproject.org and add new Slovenian translation.
	[ef33ee45d]

	* common/alloc.c, plugins/sudoers/check.c, plugins/sudoers/env.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c:
	Reduce the number of "internal error, foo overflow" messages that
	need to be translated.
	[241b2395c]

	* NEWS:
	Mention HP-UX reboot fix.
	[afaf5e07f]

	* INSTALL, NEWS, common/sudo_debug.c, configure, configure.in,
	doc/CONTRIBUTORS, include/sudo_debug.h, mkdep.pl, pathnames.h.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/sssd.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c:
	Support for using SSSD (http://fedorahosted.org/sssd/) as a sudoers
	data source. From Daniel Kopecek and Pavel Brezina.
	[d89b1a6be]

2012-08-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/sudo_conf.c, src/load_plugins.c:
	If sudo.conf contains an I/O plugin but no policy plugin, use
	sudoers for the policy plugin. If a policy plugin is specified
	without an I/O plugin, only the policy plugin will be loaded.
	[a7424cc00]

	* doc/Makefile.in, doc/sudoers.man.in:
	Do not modify the .Os section when building the .man.in file from
	.mdoc.in.
	[9ad4d4804]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Add a note about wildcards matching multiple words and include an
	example. Also mention that for sudoedit, a wildcard in command line
	args does not match a slash.
	[507df9d5c]

2012-08-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c, src/sudo_exec.h:
	Fix a comment, update a variable name in a prototype; all cosmetic.
	[0655deab5]

	* plugins/sudoers/iolog.c:
	Cast 2nd argument of lseek() to off_t if it is a constant for
	systems with 64-bit off_t but without a proper lseek() prototype.
	[3ba8da4ab]

	* compat/getline.c, plugins/sudoers/check.c, plugins/sudoers/env.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/visudo.c:
	Fix some warnings from clang checker-267
	[7d255e42c]

	* plugins/sample/sample_plugin.c:
	Fix memory leak found by clang checker-267
	[487c8abb0]

2012-08-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_pty.c, src/sudo.h, src/sudo_exec.h:
	If we receive a signal from the command we executed, do not forward
	it back to the command. This fixes a problem with BSD-derived
	versions of the reboot command which send SIGTERM to all other
	processes, including the sudo process. Sudo would then deliver
	SIGTERM to reboot which would die before calling the reboot() system
	call, effectively leaving the system in single user mode.
	[dc08cf3c9]

2012-08-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/fixman.sh, doc/fixmdoc.sh:
	Remove section about Solaris 10 on other systems. Add missing
	sudoers.man.in bit to fixman.sh.
	[d10fb81fe]

2012-08-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in:
	Expand section on Solaris privileges.
	[61dfad9c5]

	* NEWS:
	Expand a bit on the Solaris priv set changes.
	[e7d1f8d54]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	The second argument to init_parser() is now bool.
	[355d40aa8]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Fix printing of parse error message to stderr.
	[80597710c]

	* plugins/sudoers/check.c, plugins/sudoers/defaults.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c:
	If a command matches using an empty Runas_List (i.e. Runas_List is
	present but empty) and the -u option was not specified, set runas_pw
	to user_pw instead of using runas_default. This is intended to be
	used in conjunction with the Solaris Privilege Set support for rules
	that grant privileges without changing the user.
	[57699c553]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.mdoc.in,
	plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/match.c,
	plugins/sudoers/parse.c, plugins/sudoers/sudoers_version.h:
	Add support for parsing an empty Runas_List, which only allows the
	command to be run as the invoking user. This can be used in
	conjunction with the Solaris Privilege Set support to grant
	privileges without changing the user.
	[e2d210a34]

2012-08-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/fixman.sh:
	Fix HP-UX, just use ".TH name section" like the vendor manuals.
	[acba09fbb]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix compilation on Solaris
	[b1d1d8989]

	* .hgignore, MANIFEST, doc/Makefile.in, doc/fixman.sh,
	doc/fixmdoc.sh, doc/sudo.man.sh, doc/sudo.mdoc.sh,
	doc/sudoers.man.sh, doc/sudoers.mdoc.sh:
	Generate a sed script file when munging *.mdoc or *.man instead of
	passing sed expressions on the command line. Older seds do not
	support \n in a replacement so generate and run a sed script
	instead.
	[602510f1b]

	* doc/Makefile.in, doc/sudo.man.in, doc/sudo_plugin.man.in,
	doc/sudoers.ldap.man.in, doc/sudoers.man.in, doc/sudoreplay.man.in,
	doc/visudo.man.in:
	Use "Sudo VERSION" as the 4th arg to .TH instead of just "VERSION"
	[37cfbc8ea]

2012-07-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	When checking whether a signal is user-generated, compare si_code
	against SI_USER instead of <= 0 since on HP-UX, terminal-related
	signals get a code of 0.
	[5e502bd6d]

	* src/sudo.c:
	SuSE Enterprise Linux uses RLIMIT_NPROC and _SC_CHILD_MAX
	interchangably. This causes problems when setting RLIMIT_NPROC to
	RLIM_INFINITY due to a bug in bash where bash tries to honor the
	value of _SC_CHILD_MAX but treats a value of -1 as an error, and
	uses a default value of 32 instead.

	Previously, we just checked RLIMIT_NPROC and, if it was unlimited,
	restored the previous value of RLIMIT_NPROC. However, that makes it
	impossible to set nproc to unlimited. We now only restore the nproc
	resource limit if sysconf(_SC_CHILD_MAX) is negative. In most cases,
	pam_limits will set RLIMIT_NPROC for us.
	[9c321baa7]

2012-07-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Active Directory apparently requires that tenths of a second be
	present in a date so append .0 to the "now" value in the time
	filter. Also remove space for the global AND from TIMEFILTER_LENGTH
	since it was not being used consistently. Buffers of
	TIMEFILTER_LENGTH now need to account for the terminating NUL byte.
	[f205243bd]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix SELinux build
	[a9623c29c]

2012-07-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST:
	Remove pod versinons of HISTORY, CONTRIBUTORS and LICENSE as they
	were not being kept in sync.
	[82c808c7c]

	* doc/HISTORY, doc/Makefile.in, doc/contributors.pod,
	doc/history.pod, doc/license.pod:
	Remove pod versinons of HISTORY, CONTRIBUTORS and LICENSE as they
	were not being kept in sync.
	[e470b86cb]

2012-07-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.c:
	Fix printing of the permission denied message to standard error when
	a user is not allowed to run a command. This got broken by the
	recent logging changes.
	[383e0c860]

	* plugins/sudoers/sudoers_version.h:
	Bump grammar version for Solaris privs.
	[2c7df2925]

	* doc/schema.ActiveDirectory:
	Fix errors introduced when sudoNotBefore, sudoNotAfter and sudoOrder
	were added. From David Hicks.
	[ab64e36e5]

2012-07-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Remove lex.yy.c when building toke.c
	[6ce246f0b]

	* doc/Makefile.in:
	Fix building docs in a build dir.
	[ecb74d3e2]

	* doc/sudo.man.pl, doc/sudo.pod, doc/sudo_plugin.pod,
	doc/sudoers.ldap.pod, doc/sudoers.man.pl, doc/sudoers.pod,
	doc/sudoreplay.pod, doc/visudo.pod:
	Remove pod versions of the manual; we now use mdoc.
	[12bad90ba]

	* MANIFEST, doc/Makefile.in, doc/sudo.man.sh, doc/sudo.mdoc.sh,
	doc/sudoers.man.sh, doc/sudoers.mdoc.sh:
	Add post-processing scripts to strip out login class, BSD auth,
	SELinux and privilege set bits when they are not supported.
	[336233c2e]

	* NEWS, configure.in, doc/CONTRIBUTORS, doc/Makefile.in,
	doc/contributors.pod, doc/sudoers.cat, doc/sudoers.man.in,
	doc/sudoers.man.pl, doc/sudoers.mdoc.in, doc/sudoers.pod,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, src/sudo.c, src/sudo.h:
	Merge in Solaris privilege support by Darren Moffat and John
	Zolnowsky
	[4abd2a6cf]

2012-07-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/contributors.pod:
	Sync with CONTRIBUTORS file
	[a726a1ccf]

	* doc/sudo.man.in, doc/sudo_plugin.man.in, doc/sudoers.ldap.man.in,
	doc/sudoers.man.in, doc/sudoreplay.man.in:
	Regen .man.in files with my private mandoc.
	[d29991f41]

	* doc/Makefile.in:
	add MANDOC variable
	[84a8573aa]

2012-07-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.man.in, doc/sudo_plugin.man.in, doc/sudoers.ldap.man.in,
	doc/sudoers.man.in, doc/sudoreplay.man.in, doc/visudo.man.in:
	Regen .man.in files with hacked mandoc to avoid issues with historic
	nroff.
	[a06f7540f]

2012-07-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.mdoc.in, doc/sudoers.mdoc.in:
	Fix groff warnings.
	[05e7cac89]

	* doc/Makefile.in:
	Fix dependencies for .man.in files.
	[909f3da4d]

	* .hgignore:
	Add doc/*.mdoc to ignore file
	[42e6496ed]

	* INSTALL, MANIFEST, NEWS, configure, configure.in, doc/Makefile.in,
	doc/sudo.cat, doc/sudo.man.in, doc/sudo.mdoc.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.mdoc.in, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.mdoc.in,
	doc/sudoers.man.in, doc/sudoers.mdoc.in, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/sudoreplay.mdoc.in, doc/visudo.cat,
	doc/visudo.man.in, doc/visudo.mdoc.in:
	Build .man.in and .cat files from .mdoc.in files. Add new --with-man
	and --with-mdoc configure options.
	[90f2cfa58]

2012-07-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.mdoc.in, doc/sudo_plugin.mdoc.in,
	doc/sudoers.ldap.mdoc.in, doc/sudoers.mdoc.in,
	doc/sudoreplay.mdoc.in, doc/visudo.mdoc.in:
	Sudo manuals formatted in mdoc, to replace the pod versions.
	[0d8aa46bb]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.pod, doc/sudoers.man.in, doc/sudoers.pod,
	doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.pod,
	doc/visudo.cat, doc/visudo.man.in, doc/visudo.pod:
	More minor costmetic fixes.
	[c5b374fac]

2012-07-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.pod:
	Minor cosmetic fixes.
	[f31f58a96]

2012-07-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.c, plugins/sudoers/po/sudoers.pot:
	Use "a password is required" instead of "password required" when the
	-n flag is used and we need to read a password.
	[f7dc1d849]

2012-07-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Mention logging changes.
	[7aaa10173]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[5f83d35f7]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	Document that other mail_* flags have precedence over mail_badpass.
	[6cc8c161a]

	* plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/check.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Move log_denial() calls and logic to log_failure(). Move
	authentication failure logging to log_auth_failure(). Both of these
	call audit_failure() for us.

	This subtly changes logging for commands that are denied by sudoers
	but where the user failed to enter the correct password. Previously,
	these would be logged as "N incorrect password attempts" but now are
	logged as "command not allowed". Fixes bug #563
	[8b03f3e7d]

2012-07-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/aix.c:
	Do not set a resource limit to zero when we are unable to fetch a
	value from /etc/security/limits.
	[9c9cf9da4]

2012-07-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Add "Provides: sudo" to debian sudo-ldap package
	[5904f7ede]

2012-07-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in, zlib/Makefile.in:
	Define NO_VIZ for zlib when gcc doesn't support symbol visibility
	attributes.
	[958e39fc6]

	* configure, configure.in:
	Use the autoconf cache when checking for symbol export control
	support.
	[f38349a02]

	* INSTALL, common/Makefile.in, compat/Makefile.in, configure,
	configure.in, mkpkg, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in:
	Add configure check for building PIE executables instead of doing it
	in mkpkg.
	[f8f002171]

	* sudo.pp:
	MacOS pp backend doesn't like modes longer than 4 characters.
	[aab4b3589]

2012-07-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Add -Wc,-fstack-protector to LT_LDFLAGS instead of adding
	-fstack-protector to LDFLAGS so it doesn't get stripped out. Libtool
	will strip -fstack-protector from the linker flags and we always
	link with libtool.
	[effd6cd91]

2012-06-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo_plugin.cat,
	doc/sudo_plugin.man.in, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.man.in, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/visudo.cat, doc/visudo.man.in:
	Regen for sudo 1.8.6
	[2e36b1ef2]

	* NEWS, doc/sudoers.ldap.pod:
	Document improved Tivoli Directory Server support.
	[80502c3bc]

	* config.h.in, configure, configure.in, plugins/sudoers/ldap.c:
	Add support for ldaps using Tivoli LDAP libraries. Add ldap.conf
	option to specify Tivoli key db password. Allow TLS ciphers to be
	configured for Tivoli.
	[3c57d6a06]

2012-06-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Tivoli Directory Server 6.3 libs always return a (bogus) error when
	setting LDAP_OPT_CONNECT_TIMEOUT.
	[f56bada40]

	* NEWS:
	Update
	[06637e528]

	* plugins/sudoers/ldap.c:
	Treat LDAP_OPT_CONNECT_TIMEOUT (Tivoli Directory Server 6.3) the
	same as LDAP_OPT_CONNECT_TIMEOUT (OpenSSH). Don't make failure to a
	set an ldap option fatal.
	[cfe0034cd]

2012-06-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Zero pointers in sudo_user struct after freeing, just in case.
	[7d5048a5b]

	* plugins/sudoers/sudoers.c:
	Free user_gids in close function if it has not already been freed.
	[899fcc05a]

	* plugins/sudoers/pwutil.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Defer group ID to name resolution until we actually need it.
	[1cd50d0bc]

	* src/sudo.c:
	It is safe to read in sudo.conf before calling user_info().
	[faf89fc79]

	* plugins/sudoers/env.c, plugins/sudoers/ldap.c:
	Use MAX_UID_T_LEN + 1 for uid/gid buffers, not MAX_UID_T_LEN to
	prevent potential truncation. Bug #562.
	[e9f5a3839]

2012-06-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	If installing with installp, error out if there is already an
	instance of the rpm package installed.
	[386ba7b06]

	* mkpkg:
	Add --disable-nls for AIX
	[bcd8549a9]

2012-06-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Debian sudo-ldap packages should now depend on libldap-2.4-2, not
	libldap2.
	[5c1ba0b49]

2012-06-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Add Homepage and Bugs to debian control file.
	[e571d6ff6]

2012-06-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	fix typo when setting aix_freeware
	[6103bbc67]

	* common/Makefile.in, compat/Makefile.in, configure, configure.in,
	doc/Makefile.in, include/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in, zlib/Makefile.in:
	Don't run regress tests or sudoers sanity check (using the
	newly-built visudo) when cross compiling. Bug #560
	[9497df293]

	* MANIFEST, configure, configure.in, plugins/sample/Makefile.in,
	plugins/sample/sample_plugin.exp, plugins/sample/sample_plugin.map,
	plugins/sample_group/Makefile.in,
	plugins/sample_group/sample_group.exp,
	plugins/sample_group/sample_group.map, plugins/sudoers/Makefile.in,
	plugins/sudoers/sudoers.exp, plugins/sudoers/sudoers.map,
	plugins/system_group/Makefile.in,
	plugins/system_group/system_group.exp,
	plugins/system_group/system_group.map:
	Rename foo.sym -> foo.exp Remove foo.map from the repo and generate
	it on demand Use a loader option file for HP-UX ld to explicitly
	export symbols
	[bcfeddc99]

	* src/Makefile.in:
	Remove extraneous backslash
	[b0475b59d]

	* plugins/sudoers/regress/check_symbols/check_symbols.c:
	Don't check for errorx as an exported symbols as it is now a macro.
	Check for user_in_group() instead.
	[a49238e3f]

2012-06-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Adjust ld map file support to use an anonymous scope to match the
	updated .map files.
	[b567282f8]

2012-06-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, include/gettext.h:
	Older versions of Solaris lack ngettext()
	[c74d40631]

	* configure, configure.in:
	Move the check for -static-libgcc until after AC_LANG_WERROR has
	been called and use AX_CHECK_COMPILE_FLAG().
	[af8a211e4]

	* include/gettext.h:
	Sudo defines HAVE_SETLOCALE not HAVE_LOCALE_H
	[2ef0cc73f]

	* include/error.h, include/sudo_debug.h:
	Fix gcc 2.x variant macro support.
	[5ac272c03]

	* plugins/sudoers/logging.c, plugins/sudoers/sudoreplay.c:
	Fix compilation on gcc 2.95 and other compilers that only allow
	variable declarations at the beginning of a block.
	[45fea137f]

	* configure, configure.in, plugins/sudoers/Makefile.in:
	Link check_symbols with SUDO_LIBS to make sure we link with the
	requisite libraries to successfully dlopen sudoers.so. This is
	needed on HP-UX where a program dlopen()ing a shared object that
	uses pthreads must also be linked with pthreads (and HP-UX LDAP uses
	pthreads).
	[fdcc8e1fc]

	* plugins/sudoers/regress/check_symbols/check_symbols.c:
	Add check for exported local symbols. This will cause a "make check"
	failure on systems where we don't support symbol hiding.
	[86cececc1]

	* configure, configure.in:
	Additional ${foo} -> $(foo) Makefile tweaks.
	[7e67a9153]

	* plugins/sample/sample_plugin.map,
	plugins/sample_group/sample_group.map, plugins/sudoers/sudoers.map,
	plugins/system_group/system_group.map:
	No need to provide a name for the scope in the map file since we
	don't use the it for versioning.
	[437978bd3]

2012-06-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/check_symbols/check_symbols.c:
	Add regress test for symbol visibility.
	[2a83d1c6d]

2012-06-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.in:
	sudo 1.8.6
	[0888101bb]

	* configure, configure.in, include/missing.h:
	Add support for controlling symbol visibility using the HP and
	Solaris C compilers.
	[60a301948]

	* plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/sudoers.h:
	Use the expanded io log dir when updating the sequence number.
	Includes a workaround for older versions of sudo where the sequence
	number was stored in the unexpanded io log dir.
	[203abd98b]

2012-06-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/parse_args.c:
	Simplify "sudo -s" argv rewriting.
	[85c607865]

	* MANIFEST, configure, configure.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in,
	src/sudo_noexec.map:
	Don't use a map file for sudo_noexec.so since Solaris ld doesn't
	allow '*' in the global section. The libtool export flag is now
	added to LT_LDFLAGS instead of commenting/uncommenting lines.
	[47abbb90a]

2012-06-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, include/missing.h:
	The visibility attribute was actually added in gcc 3.3.x, not 4.0.
	Just assume that if -fvisibility=hidden works that the attribute is
	usable.
	[1fe3f9f40]

	* plugins/sudoers/check.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_path.c, plugins/sudoers/ldap.c,
	plugins/sudoers/match.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoers.map,
	plugins/sudoers/sudoers.sym, plugins/sudoers/testsudoers.c,
	plugins/system_group/system_group.c:
	Export group cache from sudoers.so for system_group.so to use.
	[649edc319]

	* MANIFEST, configure, configure.in, include/missing.h,
	plugins/sample/Makefile.in, plugins/sample/sample_plugin.map,
	plugins/sample_group/Makefile.in,
	plugins/sample_group/sample_group.map, plugins/sudoers/Makefile.in,
	plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.map, plugins/system_group/Makefile.in,
	plugins/system_group/system_group.map, src/sudo_noexec.c,
	src/sudo_noexec.map:
	Use gcc's visibility attribute to specify when symbols are visible
	or hidden, if available. If not available, use an ELF version script
	if it is supported. If all else fails, fall back to using libtool's
	-export-symbols.
	[6f6b0dec6]

2012-06-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Add mode for installed locale files but leave the directories with
	default mode and owner.
	[60eafc971]

2012-06-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg, sudo.pp:
	Install AIX packages under /opt/freeware with links in /usr/bin and
	/usr/sbin. This matches the layout of the sudo package from AIX
	freeware.
	[c49823557]

	* Makefile.in, configure, configure.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in, src/Makefile.in, sudo.pp:
	Install shared objects with mode 0644 except on HP-UX which needs
	the executable bit set.
	[a8e0687ca]

	* Makefile.in, doc/Makefile.in, include/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	Make installed file modes consistent with the file modes in the sudo
	package.
	[c131cb36f]

2012-06-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.pod:
	Add "%:" prefix when talking about QAS non-Unix group support.
	[642b7e887]

	* pp, sudo.pp:
	Fix packaging of symbolic links on HP-UX when the link source
	already exists in the filesystem.
	[f5948149e]

	* mkpkg:
	Only specify prefix if we are overriding the default value. Fixes
	the man dir (/usr/local/man vs. /usr/local/share/man).
	[db9f50f13]

	* sudo.pp:
	Fix setting of sudoedit_man variable.
	[94049aa53]

	* doc/Makefile.in:
	Echo the command when linking the sudoedit manual.
	[afbf68d6a]

2012-06-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg, sudo.pp:
	Build .deb packages with selinux support.
	[4c88e08c8]

2012-06-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Don't list paths for unstripped binaries in the lintial overrides.
	[13472d7a8]

	* pp:
	Add support for Installed-Size header in control file, required by
	newer debian versions.
	[37db1a4dc]

	* pp:
	Fix extended description in .deb files.
	[0a66c2439]

	* sudo.pp:
	Add Depends, Replaces and Conflicts headers for .deb packages.
	[dab474b93]

2012-06-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudo_nss.c:
	If there are no privs to print, write the message to the lbuf
	instead of printing it directly.
	[54cfac04d]

2012-05-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Set -e in %pos and %preun for debian to quiet a lintian warning.
	[f6f64ce04]

	* doc/Makefile.in, src/Makefile.in, sudo.pp:
	Install sudoedit and the sudoedit manual as symbolic links, not hard
	links and package them as such.
	[61a3ed1c1]

	* sudo.pp:
	Make sudo binary permissions 755 instead of 111 Add lintian
	overrides file for .deb files.
	[3076dc2a4]

	* configure, configure.in, doc/Makefile.in, mkpkg:
	Replace out of date MAN_POSTINSTALL with MANCOMPRESS and
	MANCOMPRESSEXT which can be used to compress the installed manual
	pages. Compress the man pages for .deb files to appease lintian.
	[8d4c6bbbd]

	* sudo.pp:
	Debian fixes: * fix modes to be more in line with what Debian
	expects * add section * install LICENSE as copyright and ChangeLog
	as changelog * create stub changelog.debian
	[b5ee0ab91]

	* pp:
	Fix find command to properly skip files in the DEBIAN dir when
	building md5sums.
	[8b38f4584]

	* pp, sudo.pp:
	Use a debian-compliant package maintainer field.
	[7391c7562]

2012-05-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	No need to loop over atomic_writev(), it guarantees to write all
	data or return an error.

	Fix handling of stdout/stderr that contains "\r\n" and handle a
	"\r\n" pair that spans a buffer.
	[b406b51da]

2012-05-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update for sudo 1.8.5p2
	[01da61379]

	* plugins/sudoers/sudoreplay.c:
	Instead of doing extra write()s when replaying stdout, build up a
	vector for writev() instead. This results in far fewer system calls.
	[12be3e7f5]

2012-05-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/env_hooks.c, src/sudo.h, src/tgetpass.c:
	Provide unhooked version of getenv() and use it when looking up
	DISPLAY and SUDO_ASKPASS in the environment.
	[af9492d11]

2012-05-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	When replaying a log of stdout or stderr, do newline to carriage
	return + linefeed conversion. We cannot have termios do this for us
	since we've disabled output postprocessing (POST) when setting raw
	mode.
	[7a6cad502]

2012-05-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	When checking for -fstack-protector, treat warnings as fatal errors.
	[7720a7fc8]

2012-05-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Fix test for -z relro
	[e54a00726]

	* MANIFEST:
	Add m4/ax_check_compile_flag.m4 and m4/ax_check_link_flag.m4
	[ca89eb59e]

	* INSTALL, aclocal.m4, configure, configure.in,
	m4/ax_check_compile_flag.m4, m4/ax_check_link_flag.m4:
	Build with -fstack-protector and link with -zrelo where supported.
	Added --disable-hardening option to disable hardening options.
	[e417fb3da]

2012-05-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/testsudoers/test1.sh,
	plugins/sudoers/regress/testsudoers/test2.sh,
	plugins/sudoers/regress/testsudoers/test3.sh,
	plugins/sudoers/regress/testsudoers/test4.out.ok,
	plugins/sudoers/regress/testsudoers/test4.sh,
	plugins/sudoers/regress/testsudoers/test5.inc,
	plugins/sudoers/regress/testsudoers/test5.out.ok,
	plugins/sudoers/regress/testsudoers/test5.sh,
	plugins/sudoers/testsudoers.c:
	Add tests for sudoers mode, owner and group checks.
	[ca9331d49]

	* plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c:
	If sudoers_mode is group-readable but the actual sudoers file is
	not, open the file as uid 0, not uid 1. This fixes a problem when
	sudoers has a more restrictive mode than what sudo expects to find.
	In older versions, sudo would silently chmod the file to add the
	group-readable bit.
	[0d82c4c7e]

	* INSTALL, common/secure_path.c, config.h.in, configure,
	configure.in:
	No longer throw an error if sudoers is a symbolic link. Deprecated
	the --with-stow option as that is now (effectively) the default.
	[d29aede20]

2012-05-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/testsudoers/test2.inc,
	plugins/sudoers/regress/testsudoers/test2.out.ok,
	plugins/sudoers/regress/testsudoers/test2.sh,
	plugins/sudoers/regress/testsudoers/test3.d/root,
	plugins/sudoers/regress/testsudoers/test3.out.ok,
	plugins/sudoers/regress/testsudoers/test3.sh:
	Add basic tests for #include and #includedir
	[4f296fe21]

	* plugins/sudoers/testsudoers.c:
	Add -U sudoers_uid option to testsudoers.
	[b35cd7553]

2012-05-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, configure, configure.in:
	Update for 1.8.5p1
	[fe5bf0306]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix #includedir; from Mike Frysinger
	[8a7ac4459]

	* plugins/sudoers/check.c:
	Don't prompt for a password if the user is in the exempt group, is
	root, or is running the command as themselves even if the -k option
	was specified. This makes "sudo -k command" consistent with the
	behavior one would get if the user ran "sudo -k" immediately before
	running the command.
	[2b7659f70]

2012-05-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	Fix capitalization
	[025a30902]

	* mkpkg:
	Build PIE executable on Mac OS X 10.5 and above.
	[071256a83]

2012-05-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update for sudo 1.8.4p5
	[3d55aaa8b]

	* plugins/sudoers/match_addr.c:
	Add missing break between AF_INET and AF_INET6 in
	addr_matches_if_netmask()
	[0d5a94131]

	* plugins/sudoers/mon_systrace.c:
	Move systrace monitor code to the attic
	[d841ae9cd]

2012-05-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	The pointer to the siginfo_t struct in a signal handler may be NULL.
	[466a126c6]

2012-05-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/pwutil.c:
	Fix an alignment problem on NetBSD systems with a 64-bit time_t and
	strict alignment. Based on a patch from Martin Husemann.
	[0d6958077]

	* include/missing.h:
	Add offsetof macro for those without it.
	[4e0ffceac]

	* MANIFEST:
	add system_group plugin
	[63e1ab974]

2012-05-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/dlopen.c:
	Implement RTLD_NEXT and fix RTLD_DEFAULT for HP-UX.
	[aa7ac09fa]

2012-05-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Mention system_group plugin
	[340ae1323]

	* Makefile.in, plugins/sudoers/Makefile.in,
	plugins/system_group/Makefile.in:
	update depends
	[c690ac207]

	* plugins/system_group/system_group.c:
	Only call gr_delref() when use sudo's password caching functions.
	[aa3defa3f]

	* plugins/sample_group/Makefile.in,
	plugins/system_group/Makefile.in:
	Add missing dependency on libreplace.la
	[75d70b334]

	* compat/dlopen.c:
	Emulate RTLD_DEFAULT and RTLD_SELF w/ shl_findsym() using NULL and
	PROG_HANDLE.
	[6467b7b81]

	* Makefile.in, configure, configure.in,
	plugins/system_group/Makefile.in,
	plugins/system_group/system_group.c,
	plugins/system_group/system_group.sym:
	Add group plugin that does lookups by name using the system group
	database.
	[994d2ff69]

	* plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po, src/po/pl.mo,
	src/po/pl.po:
	sync with translationproject.org
	[4455139d5]

2012-05-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	src/po/de.mo, src/po/de.po, src/po/eo.mo, src/po/eo.po,
	src/po/fi.mo, src/po/fi.po, src/po/ja.mo, src/po/ja.po,
	src/po/ru.mo, src/po/ru.po, src/po/sr.mo, src/po/sr.po,
	src/po/uk.mo, src/po/uk.po, src/po/vi.mo, src/po/vi.po,
	src/po/zh_CN.mo, src/po/zh_CN.po:
	sync with translationproject.org
	[64178f8b6]

2012-05-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Add mode for docdir and use '-' (default) for localedir mode. Fixes
	a problem on Linux when building in a directory with the setgid bit
	set.
	[e828a1d7a]

2012-04-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pp:
	Match CentOS 6.0
	[d9c13139d]

2012-04-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update with recent changes
	[8722cd07a]

	* pp:
	Fix version check on AIX
	[30bddced2]

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	regen
	[4b8982ebd]

	* plugins/sudoers/ldap.c:
	Need to call ldapssl_clientauth_init() for start_tls on Mozilla LDAP
	SDK.
	[e82b67314]

	* plugins/sudoers/ldap.c:
	Fix printing of invalid uri
	[28268ed99]

	* plugins/sudoers/auth/pam.c:
	Pass PAM_SILENT when deleting creds to remove an annoying warning
	message on Solaris.
	[989361c27]

2012-04-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/utmp.c:
	Fix the setutxent and endutxent compatibility defines (this time
	correctly) when only setutent and endutent are available.
	[0fbd5e1bc]

	* plugins/sudoers/ldap.c:
	sudo_ldap_set_options_global() should not take an LDAP handle as an
	argument since the options affect the global settings.
	[f6c7ae251]

	* mkpkg:
	Debian sudo has not been built with --with-exempt=sudo since 1.6.8.
	[5f513b832]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	plugins/sudoers/auth/pam.c, src/exec.c, src/exec_pty.c, src/sudo.c,
	src/sudo.h:
	Call the policy's init_session() function before we fork the child.
	That way, the session is created and destroyed in the same process,
	which is needed by some modules, such as pam_mount.
	[23b7a1fa5]

	* doc/TROUBLESHOOTING:
	Add entry for SSL LDAP errors on Mozilla SDKs when the cert dir is
	not specified.
	[1480bb88b]

	* plugins/sudoers/auth/pam.c:
	Delete creds after closing the PAM session.
	[cf4562c03]

	* plugins/sudoers/ldap.c:
	Provide a more useful error message if using a Mozilla-style LDAP
	SDK and you forgot to specify TLS_CERT in ldap.conf.
	[cde9f8aa1]

	* src/exec_pty.c:
	Add missing initialization of a sigaction structure when I/O
	logging. Fixes a potential problem when suspending the command.
	[ce9863358]

	* plugins/sudoers/ldap.c:
	Split global and per-connection LDAP options into separate arrays.
	Set global LDAP options before calling ldap_initialize() or
	ldap_init(). After we have an LDAP handle, set the per-connection
	options. Fixes a problem with OpenLDAP using the nss crypto backend;
	bug #342
	[9f461efd5]

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	src/po/de.mo, src/po/de.po, src/po/hr.mo, src/po/hr.po,
	src/po/vi.mo, src/po/vi.po, src/po/zh_CN.mo, src/po/zh_CN.po:
	sync with translationproject.org
	[3491dd818]

2012-04-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo.c, src/sudo.h:
	Move struct passwd pointer into struct command details.
	[886ee3360]

2012-04-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pp:
	Sync with upstream for Mac OS X (and other) fixes.
	[cc07164d9]

	* mkpkg:
	Only built Mac intel universal binary on an intel machine.
	[c19ec8f9f]

	* src/Makefile.in:
	Do not pass libtool the -static-libtool-libs option when building
	sudo and sesh. Otherwise, libtool may prefer a static version of an
	installed library over a dynamic one when linking.
	[f490ff228]

2012-04-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, NEWS, doc/CONTRIBUTORS, plugins/sudoers/po/hr.mo,
	plugins/sudoers/po/hr.po, src/po/de.mo, src/po/de.po:
	Add German translation for sudo Add Croatian translation for sudoers
	[4c36371ee]

	* plugins/sudoers/iolog.c:
	typo fix in comment
	[f3ab15b11]

2012-04-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update with recent changes
	[15a974936]

	* Makefile.in, plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	Sort xgettext output by file name.
	[0ed675391]

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.pod:
	Clarify what "sudoreplay -l" displays and mention that it is sorted.
	[b3f750b75]

	* config.h.in, configure, configure.in, src/ttyname.c:
	Use AC_HEADER_MAJOR to determine where major/minor are defined.
	[cf3fce665]

	* config.h.in, configure, configure.in, src/ttyname.c:
	Include sys/mkdev.h if present instead of sys/sysmacros.h for
	minor(). This is needed on Solaris (at least) where the makedev
	macros in sysmacros.h are obsolete and library functions should be
	used instead.
	[dbcd7222a]

	* mkpkg:
	When building on Mac OS X, only set SDK_FLAGS if specified osversion
	doesn't match host.
	[a714eb56f]

2012-04-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	Add back buf and tty variables for _ttyname() case that were
	inadvertantly removed.
	[21eddb5d6]

2012-04-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot:
	regen
	[28688e70a]

	* configure, configure.in:
	Remove b8 from version number.
	[05eec0c62]

	* src/ttyname.c:
	remove some XXX
	[8db20e6ae]

	* src/ttyname.c:
	When looking for a device match, do a breadth-first search instead
	of depth-first. We already special case /dev/pts/ so chances are
	good that if it is not a pseudo-tty it is in the base of /dev/. Also
	avoid a stat(2) when possible if struct dirent has d_type.
	[48d3b5aad]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	src/sudo.c, src/sudo.h:
	Pass pid, ppid, sid, pgid and tcpgid to plugin in user_info list.
	[5f969cc12]

	* src/po/eo.mo, src/po/es.mo, src/po/es.po, src/po/fi.mo,
	src/po/ja.mo, src/po/pl.mo, src/po/ru.mo, src/po/uk.mo,
	src/po/vi.mo:
	sync with translationproject.org
	[89b90fa4c]

	* MANIFEST, NEWS, doc/CONTRIBUTORS, src/po/gl.mo, src/po/gl.po,
	src/po/hr.mo, src/po/hr.po:
	New Croatian and Galician translations from translationproject.org
	[8f8ede3d2]

	* src/ttyname.c:
	Add depth-first traversal of /dev/ for the /proc case when not
	/dev/pts/N
	[08ad578b7]

	* config.h.in, configure, configure.in,
	plugins/sudoers/sudoreplay.c:
	If struct dirent has d_type, use it to avoid an extra stat().
	[b0993d877]

	* plugins/sudoers/sudoreplay.c:
	Sort output of "sudoreplay -l"
	[45fcc29dd]

2012-04-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	Fix duplicate free introduced in last rev
	[dffaeb9cb]

2012-04-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/pam.c:
	Instead of treating ^C from tgetpass() specially, always return
	AUTH_INTR if tgetpass() returned NULL. Treat PAM_AUTHINFO_UNAVAIL
	like PAM_AUTH_ERR which Mac OS X returns this when there is no tty.
	[dfc90ff0b]

	* config.h.in, configure, configure.in, src/ttyname.c:
	Rototill code to determine the tty. For Linux, we now look up the
	tty device in /proc/pid/stat instead of trying to open
	/proc/pid/fd/[0-2]. The sudo_ttyname_dev() function maps the given
	device number to a string. On BSD, we can use devname(). On Solaris,
	_ttyname_dev() does what we want. TODO: write /dev/ traversal code
	for the generic sudo_ttyname_dev().
	[83fc02bc9]

2012-04-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/ttyname.c:
	Define PRNODEV for those w/o it.
	[271f3e205]

	* config.h.in, configure, configure.in, src/ttyname.c:
	Check for SVR4-style struct psinfo.pr_ttydev and use that to
	determine the tty if std{in,out,err} are not ttys.
	[11f13be0d]

	* src/ttyname.c:
	Better support for SVR4-style /proc entries where we can't use
	ttyname() on the /proc/pid/fd/[0-2] entries. We can, however,
	attempt to map the device number back to the correct pseudo-tty
	slave device.
	[2e59eafba]

	* src/ttyname.c:
	When trying to determine the tty name, check parent's stderr in
	addition to its stdin and stdout.
	[329e224db]

	* src/exec_pty.c:
	Treat a tty read failure like EOF as it usually means the pty has
	gone away. Handle write() on the tty returning EIO.
	[eb8274bdc]

	* src/exec.c, src/exec_pty.c:
	Linux select() may return ENOMEM if there is a kernel resource
	shortage. Older Solaris select() may return EIO instead of EBADF
	when the tty goes away. If we get an unhandled select() failure,
	kill the child and exit cleanly.
	[df04ccb20]

	* src/ttyname.c:
	Open /proc/pid/fd/[0-2] in non-blocking mode just in case we might
	block in open.
	[30fee3aad]

2012-04-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/set_perms.c:
	Fix restoration of AIX permissions.
	[53357633f]

	* src/parse_args.c:
	Allow the -k flag to be used along with the -i and -s flags.
	[df067cac4]

	* plugins/sudoers/sudoreplay.c:
	Plug memory leak in parse_logfile() in the error path.
	[5029c3cdc]

	* plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	src/po/da.mo, src/po/da.po, src/po/eo.po, src/po/es.po,
	src/po/fi.po, src/po/it.mo, src/po/it.po, src/po/ja.po,
	src/po/pl.po, src/po/ru.po, src/po/uk.po, src/po/vi.po,
	src/po/zh_CN.mo, src/po/zh_CN.po:
	sync with translationproject.org
	[21f3e0deb]

2012-04-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/regress/glob/globtest.c, config.h.in, configure,
	configure.in, plugins/sudoers/match.c:
	Do not use GLOB_BRACE or GLOB_TILDE flags to glob()--we want the
	glob() and fnmatch() results to be consistent.
	[0d108287b]

2012-04-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/Makefile.in, common/ttysize.c, src/Makefile.in:
	Move ttysize.c to common so sudoreplay can use it.
	[38ea65203]

	* plugins/sudoers/sudoreplay.c:
	If I/O log file includes rows + cols, warn if the user's tty is not
	big enough.
	[7a6664e2e]

	* plugins/sudoers/sudoreplay.c:
	Fix printing of TSID in "sudoreplay -l"
	[ce8fd0ea3]

	* common/sudo_debug.c, include/sudo_debug.h,
	plugins/sudoers/logging.c, plugins/sudoers/visudo.c, src/exec.c,
	src/exec_pty.c:
	Log the process id in the debug file output. Since we don't want to
	keep calling getpid(), stash the value at init time and when we
	fork().
	[c8ce3a0a8]

	* src/exec_pty.c:
	Ignore SIGTTIN and SIGTTOU in main sudo process when I/O logging. It
	is better to receive EIO from read()/write() than to be suspended
	when we don't expect it. Fixes a problem when our terminal is
	revoked which can happen when, e.g. our sshd is killed
	unceremoniously. Also, only change the value of "alive" from true to
	false, never from false to true. It is possible for us to receive
	notification of the child having stopped after it is already dead.
	This does not mean it has risen from the grave.
	[bb898cd5d]

	* src/exec_pty.c:
	Distinguish between signals we received from the parent vs. those
	delivered explicitly to the monitor process in debugging info.
	[b4acbc9fe]

2012-04-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	In Solaris 11, /dev/pts under the "dev" filesystem, not "devices".
	Update tty_is_devpts() to match so we can determine when the tty has
	been reused.
	[087059b29]

	* common/sudo_debug.c, include/error.h, include/sudo_debug.h:
	Always pass __func__, __FILE__ and __LINE__ in sudo_debug_printf()
	and use a new flag, SUDO_DEBUG_FILENO to specify when to use it.
	This allows consumers of sudo_debug_printf() to log that data
	without having to specify it manually.
	[abdff2570]

	* src/exec_pty.c:
	Make this compile after last change.
	[2311fed45]

	* src/exec_pty.c:
	Don't try to restore the terminal if we are not the foreground
	process. Otherwise, we may be stopped by SIGTTOU when we try to
	update the terminal settings when cleaning up.
	[c0a75ce9d]

	* src/exec.c:
	If select() return EBADF in the main event loop, one of the ttys
	must have gone away so perform any I/O we can and close the bad fds.
	[6f4afc665]

	* common/sudo_debug.c, include/error.h, include/sudo_debug.h,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l:
	Log warning() at SUDO_DEBUG_WARN not SUDO_DEBUG_ERROR. Log the
	function, file and line number in the debug log for warning() and
	error().
	[2c84bd4d0]

2012-04-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/sudo_debug.c, include/error.h, include/sudo_debug.h,
	src/conversation.c:
	Add SUDO_DEBUG_ERRNO flag to debug functions so we can log errno.
	Use this flag when wrapping error() and warning() so the debug
	output includes the error string.
	[2fe41248a]

2012-03-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update for sudo 1.8.5
	[a94855f56]

	* plugins/sudoers/po/sudoers.pot:
	regen
	[2965dbfcc]

	* doc/CONTRIBUTORS:
	sync
	[9d874182f]

	* plugins/sudoers/pwutil.c:
	Use ecalloc()
	[d00c2f34e]

	* src/exec_pty.c:
	Don't need zero_bytes() after ecalloc()
	[7e6d00ed1]

	* config.h.in, configure, configure.in, src/sudo_noexec.c:
	Add execvpe(), exect(), posix_spawn() and posix_spawnp() wrappers to
	sudo_noexec.c.
	[9ceea5cb7]

	* src/utmp.c:
	Fix compat setutxent and endutxent macros for systems with
	setutent() but not setutxent(). From Gustavo Zacarias
	[5eb61122a]

2012-03-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	Add ignore_result definition to AH_BOTTOM
	[2a6842e4b]

	* common/sudo_debug.c, config.h.in, plugins/sample/sample_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/visudo.c, src/env_hooks.c,
	src/exec.c, src/exec_pty.c, src/tgetpass.c:
	Fix compiler warnings on some platforms and provide a better method
	of defeating gcc's warn_unused_result attribute.
	[aecb5206e]

	* configure, configure.in:
	Fix building the builtin zlib from a build dir. When a zlib dir was
	specified, prepend its include path instead of appending so we get
	the right zlib headers.
	[8393ec050]

	* doc/LICENSE, zlib/adler32.c, zlib/crc32.c, zlib/crc32.h,
	zlib/deflate.c, zlib/deflate.h, zlib/gzguts.h, zlib/gzlib.c,
	zlib/gzread.c, zlib/gzwrite.c, zlib/infback.c, zlib/inffixed.h,
	zlib/inflate.c, zlib/inftrees.c, zlib/trees.c, zlib/zconf.h.in,
	zlib/zlib.h, zlib/zutil.c, zlib/zutil.h:
	Update zlib to version 1.2.6
	[af0f5cb62]

2012-03-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/missing.h:
	g/c __unused which is no longer used
	[1e7afbd53]

	* src/env_hooks.c:
	Fix compilation if RTLD_NEXT is not defined.
	[0a230feae]

	* src/po/sr.mo, src/po/sr.po:
	sync with translationproject.org
	[739ea68d0]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudoers.cat,
	doc/sudoers.man.in:
	regen
	[bab4f2ce7]

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	regen
	[8cc1507bb]

	* Makefile.in:
	Ignore Project-Id-Version when comparing pot files.
	[e04e66137]

	* plugins/sudoers/bsm_audit.c:
	Use error() instead of log_fatal()
	[5ff23fb85]

	* plugins/sudoers/env.c:
	Fix signedness of didvar in env_update_didvar()
	[b78ca957a]

	* plugins/sudoers/iolog.c:
	Quiet a compiler warning on some platforms.
	[e3e2397cb]

	* compat/fnmatch.c:
	cast ctype(3) function/macro arguments from char to unsigned char to
	avoid potential negative subscripting.
	[e05576607]

	* common/setgroups.c:
	Quiet a warning on systems where the gids array in setgroups() is
	not prototyped as being const, even though it really is.
	[78429a90d]

	* src/env_hooks.c:
	Quiet a compiler warning on systems where the argument to putenv(3)
	is const.
	[e8251a077]

	* plugins/sudoers/sudoreplay.c:
	Undo an incorrect int -> bool conversion.
	[ea2fd83b3]

	* MANIFEST, NEWS, plugins/sudoers/po/sv.mo,
	plugins/sudoers/po/sv.po, src/po/sv.mo, src/po/sv.po:
	Add Swedish sudo and sudoers translations from
	translationproject.org
	[a142d780c]

	* plugins/sudoers/env.c:
	No need to preserve ODMDIR on AIX now that we always read
	/etc/environment.
	[cfdc45ea6]

2012-03-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.pod, plugins/sudoers/env.c:
	When initializing the environment for env_reset, start out with the
	contents of /etc/environment on AIX and login.conf on BSD.
	[caf01d98c]

	* doc/TROUBLESHOOTING, src/sudo.c:
	If we are not running with an effective uid of 0, try to give the
	user enough information to debug the problem.
	[2f30694b8]

	* plugins/sudoers/getdate.c, plugins/sudoers/gram.c:
	Quiet a clang-analyzer false positive.
	[12422f928]

	* src/tgetpass.c:
	If there is nothing to read from the askpass program, set errno to
	EINTR. This makes the cancel button behave like the user entered ^C
	at the password prompt when PAM is used.
	[9be74cac4]

	* src/sudo.h, src/tgetpass.c:
	Fetch the value of "askpass" from the sudo conf struct.
	[d35a8b4de]

	* common/sudo_conf.c:
	Fix matching of "Path askpass" and "Path noexec"
	[8b3d118f6]

2012-03-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	Quiet a clang-analyzer dead store warning.
	[238186abc]

	* plugins/sudoers/sudoers.c:
	If the "timestampowner" user cannot be resolved, use ROOT_UID
	instead of exiting with a fatal error.
	[d9e5ea481]

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/check.c, plugins/sudoers/env.c,
	plugins/sudoers/iolog.c, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/parse.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c:
	Remove the NO_EXIT flag to log_error() and add a log_fatal()
	function that exits and is marked no_return. Fixes false positives
	from static analyzers and is easier for humans to read too.
	[44ce5720d]

2012-03-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po, src/po/eo.mo,
	src/po/eo.po:
	sync with translationproject.org
	[413c2accd]

2012-03-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/po/da.mo, src/po/da.po:
	sync with translationproject.org
	[2569f943d]

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po:
	sync with translationproject.org
	[048a4e3f8]

2012-03-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/po/it.mo, src/po/it.po:
	sync with translationproject.org
	[e0e81674c]

	* common/sudo_conf.c, plugins/sudoers/alias.c,
	plugins/sudoers/defaults.c, plugins/sudoers/env.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/interfaces.c, plugins/sudoers/ldap.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/visudo.c, src/exec.c, src/exec_pty.c, src/hooks.c,
	src/load_plugins.c:
	Use ecalloc() when allocating structs.
	[55d1a1a79]

	* common/alloc.c, include/alloc.h:
	Add ecalloc() and commented out recalloc(). Use inline strnlen()
	instead of strlen() in estrndup().
	[dbbb48c45]

2012-03-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	src/po/fi.mo, src/po/fi.po, src/po/ja.mo, src/po/ja.po,
	src/po/pl.mo, src/po/pl.po, src/po/ru.mo, src/po/ru.po,
	src/po/uk.mo, src/po/uk.po, src/po/vi.mo, src/po/vi.po,
	src/po/zh_CN.mo, src/po/zh_CN.po:
	sync with translationproject.org
	[9eeacad6d]

2012-03-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/set_perms.c:
	Remove unused label
	[c85afe4b9]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Document what changed in each plugin API revision
	[ec7767978]

	* plugins/sudoers/set_perms.c:
	Remove bogus optimization that could lead to a double free of the
	group list.
	[2ff9d0318]

2012-03-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/TROUBLESHOOTING:
	Expand AIX /etc/security/privcmds entry.
	[ced34a6e2]

	* NEWS:
	Update for sudo 1.8.5
	[db40f6b1b]

	* common/sudo_conf.c, doc/sample.sudo.conf, doc/sudo.cat,
	doc/sudo.man.in, doc/sudo.pod, doc/sudo_plugin.cat,
	doc/sudo_plugin.man.in, doc/sudo_plugin.pod, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.pod, include/sudo_conf.h,
	include/sudo_plugin.h, src/load_plugins.c, src/sudo.c,
	src/sudo_plugin_int.h:
	Rename plugin "args" to "options"
	[96f046c1c]

	* doc/CONTRIBUTORS:
	Add Lithuanian and Vietnamese translators
	[741f57e68]

	* Makefile.in:
	Ignore comments when comparing new and old pot files.
	[039c21487]

	* src/Makefile.in:
	regen
	[1234d08c9]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in:
	regen
	[d73ed51c5]

	* doc/sudo_plugin.pod, include/sudo_plugin.h,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/env.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h, src/hooks.c,
	src/sudo.c, src/sudo.h:
	Pass a pointer to user_env in to the init_session policy plugin
	function so session setup can modify the user environment as needed.
	For PAM authentication, merge the PAM environment with the user
	environment at init_session time. We no longer need to swap in the
	user_env for environ during session init, nor do we need to disable
	the env hooks at init_session time.
	[6d1090994]

	* plugins/sample/sample_plugin.c:
	Add explicit NULL entries for init_session, register_hooks and
	deregister_hooks with appropriate comments.
	[0b1baf07e]

	* compat/pw_dup.c:
	Quiet a gcc "used uninitialized in this function" false positive.
	[f587fa153]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	We should always call warning() with a format string or a string
	literal. In this case, the argument (path) is not user-controlled.
	[b330cbbed]

2012-03-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/selinux.c:
	Include sudo_exec.h for the sudo_execve() prototype.
	[b3da8ccd8]

	* config.h.in, configure, configure.in:
	Add check for pam_getenvlist()
	[9cd65dafc]

	* common/sudo_conf.c:
	Set args to NULL in default plugin info struct when there is no
	Plugin line in sudo.conf.
	[83459e13b]

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	regen
	[c3ea638b3]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo_plugin.cat,
	doc/sudo_plugin.man.in, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.man.in, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/visudo.cat, doc/visudo.man.in:
	regen
	[b61c0ab47]

	* configure, configure.in:
	Bump version to 1.8.5
	[ed774f2b1]

	* doc/sudo_plugin.pod:
	Document hooks API
	[e852b3ab0]

2012-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Make sudoersdir relative to PKG_INSTALL_ROOT for Solaris.
	[ca0d9c4be]

	* include/sudo_plugin.h:
	Use sudo_hook_fn_t in struct sudo_hook.
	[7e1106993]

	* doc/TROUBLESHOOTING:
	If cross compiling, --host must include the OS in the tuple. E.g.
	--host powerpc-unknown-linux
	[779b6c8e0]

2012-03-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.c:
	Fix bogus int -> bool conversion; tags can have a value of -1.
	[d539c606e]

	* plugins/sudoers/env.c:
	Add env_should_keep() and env_should_delete() wrapper functions to
	simplify things a bit and hide the fact that matches_env_check() is
	not bool.
	[19fc56462]

	* sudo.pp:
	Fix application of debian-specific sudoers mods when building
	packages as non-root.
	[fa99904b2]

	* plugins/sudoers/env.c:
	matches_env_check() returns int, not boolean
	[749784ea5]

	* src/sudo_edit.c:
	Fix compilation when seteuid() is not available.
	[dc727ff6d]

	* src/ttyname.c:
	Simply move the free of ki_proc outside the realloc() loop.
	[4bd136e11]

	* src/ttyname.c:
	Bring back the erealloc() for the ENOMEM loop and just zero the
	pointer after we free it.
	[1ca500956]

	* src/ttyname.c:
	Don't try to erealloc() a potentially freed pointer; Mateusz Guzik
	[9052833f7]

2012-03-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/set_perms.c:
	Use normal error path if unable to set sudoers gid.
	[1e8f5d4aa]

	* plugins/sudoers/set_perms.c:
	Make this work again on systems w/o seteuid().
	[7971a5e49]

2012-03-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/set_perms.c:
	Fix compilation if no seteuid/setreuid/setresuid available.
	[9c2dd5eec]

	* plugins/sudoers/set_perms.c:
	Better error messages, and added debugging throughout. Fixed
	seteuid() version of set_perms()/restore_perms(). Fixed logic bug in
	AIX version of restore_perms(). Added checks to avoid changing
	uid/gid when we don't have to. Never set gid/uid state to -1, use
	the old value instead.
	[b49bb17c3]

	* src/exec_pty.c, src/ttyname.c:
	Fix format string warning on Solaris with gcc 3.4.3.
	[f745a041e]

	* src/sudo.c:
	Always declare environ now that we swap it around unilaterally.
	[4d1752d4d]

	* src/Makefile.in:
	Honor LDFLAGS when linking sesh; from Vita Cizek
	[b455bccc5]

	* src/sesh.c:
	Include alloc.h for estrdup() prototype; from Vita Cizek
	[f5f3d4cf3]

2012-03-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Don't read /etc/environment on Linux when using PAM, PAM should set
	the environment variables as needed via pam_env.
	[08c6c776c]

	* INSTALL:
	Fix editor goof.
	[d4259ef2c]

	* src/hooks.c, src/sudo.c, src/sudo.h:
	Disable environment hooks after we get user_env back to make sure a
	plugin can't to modify user_env after we "own" it. This is kind of a
	hack but we don't want the init_session plugin function to modify
	user_env.
	[20a7633a3]

	* src/hooks.c, src/sudo.c:
	Add support for deregistering hooks. If an I/O log plugin fails to
	initialize, deregister its hooks (if any).
	[9b58120c3]

2012-03-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c, src/sudo.c:
	Move LOGIN_PATH and LOGIN_SETENV handling to plugin now that we hook
	setenv.
	[d4a3a5d8b]

	* MANIFEST, aclocal.m4, common/sudo_debug.c, compat/Makefile.in,
	compat/setenv.c, compat/unsetenv.c, config.h.in, configure,
	configure.in, include/sudo_debug.h, include/sudo_plugin.h, mkdep.pl,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/env.c,
	plugins/sudoers/ldap.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/Makefile.in, src/env_hooks.c,
	src/hooks.c, src/load_plugins.c, src/sudo.c, src/sudo.h,
	src/sudo_plugin_int.h:
	Initial cut at a hooks implementation. The plugin can register hooks
	for getenv, putenv, setenv and unsetenv. This makes it possible for
	the plugin to trap changes to the environment made by authentication
	methods such as PAM or BSD auth so that such changes are reflected
	in the environment passed back to sudo for execve().
	[37770ecf1]

2012-03-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, src/po/vi.mo, src/po/vi.po:
	Add Vietnamese sudo translation from translationproject.org
	[150425613]

2012-03-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sample.sudo.conf, doc/sudo.pod, doc/sudo_plugin.pod,
	doc/sudoers.pod:
	List sudo_noexec.so not noexec.so in the sample sudo.conf
	[bfb6f7910]

	* common/sudo_conf.c, doc/sample.sudo.conf, doc/sudo.pod,
	doc/sudo_plugin.pod, doc/sudoers.pod, include/sudo_conf.h,
	include/sudo_plugin.h, plugins/sample/sample_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/toke.l, src/load_plugins.c, src/sudo.c,
	src/sudo_plugin_int.h:
	Add support for plugin args at the end of a Plugin line in
	sudo.conf. Bump the minor number accordingly and update the
	documentation. A plugin must check the sudo front end's version
	before using the plugin_args parameter since it is only supported
	for API version 1.2 and higher.
	[a16dee915]

2012-03-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	update depends
	[c623857fc]

	* MANIFEST:
	secure_path.c is in common, not compat
	[c7635121d]

	* configure, configure.in:
	Add check for variadic macro support in cpp.
	[06e390a56]

2012-02-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/secure_path.c, common/sudo_conf.c, include/secure_path.h,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add type param to sudo_secure_path() and add sudo_secure_file() and
	sudo_secure_dir() wrappers which get by #includedir in sudoers.
	[8d05f0d1b]

2012-02-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/visudo.pod, plugins/sudoers/visudo.c:
	Check the owner and mode in -c (check) mode unless the -f option is
	specified. Previously, the owner and mode were checked on the main
	sudoers file when the -s (strict) option was given, but this was not
	documented.
	[35280a843]

	* config.h.in, configure, configure.in, src/ttyname.c:
	Prefer KERN_PROC2 over KERN_PROC. Fixes compilation on some versions
	of OpenBSD versions that have KERN_PROC2 but not KERN_PROC.
	[966fa83a9]

2012-02-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS:
	Add Eric Lakin for patch in bug #538
	[5fe6e4993]

	* src/exec_pty.c:
	Fix typo in safe_close() made while converting to debug framework
	that prevented it from actually closing anything.
	[6a37b4bf7]

	* src/exec_pty.c:
	Add some more debugging.
	[cc97c2e75]

	* common/Makefile.in, compat/Makefile.in, doc/Makefile.in,
	include/Makefile.in:
	We need sysconfdir in compat/Makfile to get the proper sudo.conf
	path. Add standard prefix and foodir expansion in all Makefiles to
	avoid this problem in the future.
	[28db1fbbe]

2012-02-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/lt.mo, plugins/sudoers/po/lt.po:
	New Lithuanian sudoers translation from translationproject.org
	[5c970b217]

	* plugins/sudoers/po/ja.po:
	Update from translationproject.org
	[580208337]

2012-02-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	When adding gids to the LDAP filter, only add the primary gid once.
	This is consistent with the space computation/allocation. From Eric
	Lakin
	[4f9da8fda]

	* doc/TROUBLESHOOTING:
	Add entry for AIX enhanced RBAC config.
	[5a941fb41]

	* mkpkg:
	Target Mac OS X 10.5 when building packages.
	[640c229b5]

2012-02-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/Makefile.in, common/secure_path.c,
	common/sudo_conf.c, include/secure_path.h,
	plugins/sudoers/Makefile.in, plugins/sudoers/sudoers.c:
	Relax the user/group/mode checks on sudoers files. As long as the
	file is owned by the right user, not world-writable and not writable
	by a group other than the one specified at configure time (gid 0 by
	default), the file is considered OK. Note that visudo will still set
	the mode to the value specified at configure time.
	[415454ff5]

2012-02-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/set_perms.c:
	Add AIX-specific version of permission setting code to make sure
	that the saved uid gets restored properly.
	[98486afbd]

	* config.h.in, configure, configure.in, src/exec_common.c:
	Check for LD_PRELOAD variants in configure instead of checkign cpp
	symbols. In disable_execute(), compute the length of the new envp
	and allocate it once instead of reallocating on demand. Also append
	old value of LD_PRELOAD (if any) to the new value.
	[22f4f10a3]

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.in:
	Fix the description of noexec.
	[6fb0090db]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h:
	The "op" parameter to set_default() must be int, not bool since it
	is set to '+' or '-' for list add and subtract.
	[f6fdc909b]

	* sudo.pp:
	Make sure sudoers is writable before calling ed script.
	[0370e129f]

2012-02-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS, doc/contributors.pod:
	Update contributors. Now includes translators and authors of compat
	code.
	[f38afb532]

2012-02-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/po/sudo.pot:
	regen
	[dfaf44368]

	* pp, sudo.pp:
	Build flat packages, not package bundles, on Mac OS X.
	[1ceadea52]

2012-02-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Move macos section to be with the other OS-specific sections.
	[4ef2006eb]

	* plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po:
	Sync with translationproject.org
	[d439d8b48]

	* configure, configure.in:
	Don't permanently add -D_FORTIFY_SOURCE=2 to CPPFLAGS
	[054e44808]

	* sudo.pp:
	Add Mac OS X support, printing the latest chunk of the NEWS file and
	the license text in the installer.
	[ef7dcd519]

	* sudo.pp:
	Add explicit file modes that match those used by "make install"
	[37570290c]

	* pp:
	Sync with upstream for Mac OS X fixes.
	[86f809ab4]

	* plugins/sudoers/Makefile.in, src/Makefile.in:
	Got back to using "install-sh -M" for files installed as
	non-readable by owner. This fixes "make install" as non-root for
	package building.
	[dfbd6e429]

2012-02-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po,
	plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po:
	Sync with translationproject.org
	[5c941edc9]

	* Makefile.in, doc/Makefile.in, include/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_group/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	Use -m not -M for install-sh for everything except setuid. Install
	locale .mo files mode 0444, not 0644. If timedir parent doesn't
	exist, use default dir mode, not 0700.
	[cb66fc6f1]

2012-02-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pp:
	Re-sync with upstream; no longer need a local patch.
	[12eba56fd]

	* mkpkg:
	Add support for building Mac OS X packages.
	[5afbdab23]

	* pp:
	Sync with upstream
	[8891688e6]

	* src/Makefile.in:
	No longer need to define _PATH_SUDO_CONF here.
	[c4d3f289f]

	* src/exec_common.c:
	Fix noexec for Mac OS X.
	[cd0e10e1b]

2012-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/Makefile.in:
	Move _PATH_SUDO_CONF override to common to match sudo_debug.c
	[d35f50bd6]

	* plugins/sudoers/set_perms.c:
	More complete fix for LDR_PRELOAD on AIX. The addition of
	set_perm(PERM_ROOT) before calling the nss open functions (needed to
	avoid a GNU TLS bug) also broke LDR_PRELOAD. Setting the effective
	and then real uid to 0 for PERM_ROOT works around the issue.
	[e066ff5ca]

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	regen
	[8dd16b63d]

	* src/sudo.c:
	Set real uid to root before calling sudo_edit() or run_command() so
	that the monitor process is owned by root and not by the user.
	Otherwise, on AIX at least, the monitor process shows up in ps as
	belonging to the user (and can be killed by the user).
	[c6ef58010]

	* plugins/sudoers/set_perms.c:
	For PERM_ROOT when using setreuid(), only set the euid to 0 prior to
	the call to setuid(0) if the current euid is non-zero. This
	effectively restores the state of things prior to rev 7bfeb629fccb.
	Fixes a problem on AIX where LDR_PRELOAD was not being honored for
	the command being executed.
	[656807823]

	* MANIFEST, compat/pw_dup.c, config.h.in, configure, configure.in,
	include/missing.h, src/sudo.c:
	Make a copy of the struct passwd in exec_setup() to make sure
	nothing in the policy init modifies it.
	[8c1d8a7b1]

2012-02-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.pod:
	update copyright
	[b28dfa501]

	* common/sudo_debug.c, include/sudo_debug.h:
	g/c now-unused debug subsystems
	[e16ae617e]

	* doc/sudo.pod, doc/sudoers.pod:
	Enumerate the debug subsystems used by sudo and sudoers.
	[c32bd3db5]

2012-02-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, common/sudo_conf.c, doc/sample.sudo.conf, doc/sudo.pod,
	include/sudo_conf.h, src/sudo.c:
	Normally, sudo disables core dumps while it is running. This
	behavior can now be modified at run time with a line in sudo.conf
	like "Set disable_coredumps false"
	[c970d464c]

	* NEWS:
	Mention Spanish translation
	[e6fbba698]

	* common/sudo_debug.c:
	Make sure we don't try to fall back to using the conversation
	function for debugging in the main sudo process if we are unable to
	open the debug file.
	[c91f5ee68]

	* MANIFEST, src/po/es.mo, src/po/es.po:
	Add sudo Spanish translation from translationproject.org
	[2a2d2c4cd]

2012-02-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Better debug subsystem usage
	[3da971ba3]

	* src/sudo.c:
	Remove duplicate function prototypes
	[f5f9aadcc]

2012-02-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Error out if user specified --with-pam but we can't find the headers
	or library. Also throw an error if the headers are present but the
	library is not and vice versa.
	[f1fef17d8]

2012-01-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Fix the sudoers permission check when the expected sudoers mode is
	owner-writable.
	[491b4495f]

2012-01-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Verify that we can link executables built with -D_FORTIFY_SOURCE
	before using it.
	[c894f802d]

	* src/exec_common.c:
	Fix potential off-by-one when making a copy of the environment for
	LD_PRELOAD insertion. Fixes bug #534
	[ca4a338c4]

	* configure, configure.in:
	Add rudimentary check for _FORTIFY_SOURCE support by checking for
	__sprintf_chk, one of the functions used by gcc to support it.
	[7908621ba]

	* compat/stdbool.h, config.h.in, configure, configure.in:
	Use AC_HEADER_STDBOOL instead of checking for stdbool.h ourselves.
	[da6fe1230]

2012-01-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	regen
	[f3f986c75]

2012-01-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/sudo.c:
	The change in 818e82ecbbfc that caused to exit when the monitor dies
	created a race condition between the monitor exiting and the status
	being read. All we really want to do is make sure that select()
	notifies us that there is a status change when the monitor dies
	unexpectedly so shutdown the socketpair connected to the monitor for
	writing when it dies. That way we can still read the status that is
	pending on the socket and select() on Linux will tell us that the fd
	is ready.
	[1877c455d]

	* MANIFEST, src/Makefile.in, src/exec.c, src/exec_common.c,
	src/exec_pty.c, src/selinux.c, src/sesh.c, src/sudo.c, src/sudo.h,
	src/sudo_exec.h:
	Refactor disable_execute() and my_execve() into exec_common.c for
	use by sesh.c. This fixes NOEXEC when SELinux is used. Instead of
	disabling exec in exec_setup(), disable it immediately before
	executing the command. Adapted from a diff by Arno Schuring.
	[d11e7febb]

2012-01-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4, configure, configure.in:
	Add custom version of AC_CHECK_LIB that uses the extra libs in the
	cache value name. With this we no longer need to rely on a modified
	version of autoconf.
	[e852bf437]

2012-01-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Better handling of network functions that need -lsocket -lnsl
	[d337a532a]

	* src/sudo.c:
	When setting up the execution environment, set groups before
	gid/egid like sudo 1.7 did.
	[66a66729a]

	* configure, configure.in:
	Remove "WARNING: unable to find foo() trying -lsocket -lnsl"
	[8e3691c38]

	* plugins/sudoers/sudoers.c:
	For "sudo -g" prepend the specified group ID to the beginning of the
	groups list. This matches BSD convention where the effective gid is
	the first entry in the group list. This is required on newer FreeBSD
	where the effective gid is not tracked separately and thus
	setgroups() changes the egid if this convention is not followed.
	Fixes bug #532
	[a5dfea7cd]

2012-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Fix sh warning; use "test" instead of "["
	[7747b481d]

	* src/exec.c:
	When not logging I/O, use a signal handler that only forwards
	SIGINT, SIGQUIT and SIGHUP when they are user-generated signals.
	Fixes a race in the non-I/O logging path where the command may
	receive two keyboard-generated signals; one from the kernel and one
	from the sudo process.
	[2fd77381a]

	* src/exec.c:
	Back out change that put the command in its own pgrp when not
	logging I/O. It causes problems with pipelines.
	[97cecaf6e]

2012-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/Makefile.in, configure, configure.in:
	Only run compat regress tests on compat objects we actually build.
	Fixes "make check" in the compat dir for systems that don't
	implement character classes in fnmatch() or glob(). Bug #531
	[40badb50e]

2012-01-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po:
	Update po files from translationproject.org
	[0df60d8ec]

2012-01-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Include parent directories in case they don't already exist. This
	fixes a directory permissions problem with the AIX package when the
	/usr/local directories don't already exist.
	[4baffc780]

	* pp:
	sync with git version
	[4d8a8e015]

	* common/Makefile.in, plugins/sudoers/Makefile.in, src/Makefile.in:
	regen dependencies
	[ee0fb36d8]

	* MANIFEST, src/Makefile.in, src/sudo.c, src/sudo.h, src/ttyname.c:
	Move tty name lookup code to its own file.
	[106bbebba]

2012-01-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update with latest sudo 1.8.4 changes.
	[83006b000]

	* config.h.in, configure, configure.in:
	Remove obsolete template for HAVE_TIMESPEC
	[760cdb00d]

	* src/sudo.c:
	Add a check for devname() returning a fully-qualified pathname. None
	of the devname() implementations do this today but you never know
	when this might change.
	[1c038be41]

2012-01-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	For "visudo -c" also list include files that were checked when
	everything is OK.
	[315b998a6]

	* src/sudo.c:
	The device name returned by devname() does not include the /dev/
	prefix so we need to add it ourselves.
	[f05de3f3f]

	* src/sudo.c:
	Add debug warning if KERN_PROC sysctl fails or devname() can't
	resolve the tty device to a name.
	[f7b04c32a]

	* common/sudo_debug.c:
	The result of writev() is never checked so just cast to NULL.
	[fa15fc765]

	* plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po:
	Update Esperanto, Finnish, Polish and Ukrainian translations from
	translationproject.org.
	[8fd2b8b93]

2012-01-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, src/sudo.c:
	Add support for determining tty via sysctl on other BSD variants.
	[528258aff]

	* configure, configure.in:
	Only check for struct kinfo_proc.ki_tdev on systems that support
	sysctl.
	[5c59576ea]

	* src/sudo.c:
	For FreeBSD, try the KERN_PROC_PID sysctl() first, falling back on
	ttyname() of std{in,out,err}.
	[832c4c9d5]

2012-01-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, src/sudo.c:
	On newer FreeBSD we can get the parent's tty name via sysctl().
	[974e50dcf]

	* plugins/sudoers/testsudoers.c:
	Include locale.h
	[c30872260]

	* src/sudo.c:
	Silence a gcc warning.
	[c142a52f5]

	* plugins/sudoers/bsm_audit.c:
	Need to include gettext.h and sudo_debug.h; from John Hein
	[d5571aa1e]

	* plugins/sudoers/iolog.c:
	Initialize the debug framework from the I/O plugin too.
	[373043b4d]

2012-01-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/testsudoers.c:
	Enable debugging via sudo.conf.
	[5dd3f0ec5]

2012-01-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	Use SUDO_DEBUG_ALIAS for alias checking functions.
	[efbf020d4]

	* configure, configure.in:
	More complete test for getaddrinfo() that doesn't rely on the
	network libraries already being added to LIBS.
	[b1882a794]

2012-01-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/aix.c:
	Add debug support.
	[13561805d]

	* configure, configure.in:
	Need -lsocket -lnsl for getaddrinfo(3) on Solaris at least.
	[c1a9cc9ab]

	* compat/getaddrinfo.c:
	Include errno.h and missing.h
	[e7ae9dbba]

	* .hgignore:
	ignore doc/varsub
	[1cfd09c88]

	* configure.in, doc/visudo.pod, plugins/sudoers/Makefile.in,
	plugins/sudoers/gram.y, plugins/sudoers/match.c,
	plugins/sudoers/parse.c, plugins/sudoers/testsudoers.c, src/exec.c,
	src/parse_args.c, src/sudo.c, src/sudo.h:
	Update copyright year.
	[0771c981d]

	* NEWS:
	Update for sudo 1.8.4
	[a9a3cbd41]

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	regen pot files
	[6021ad08c]

	* plugins/sudoers/sudoreplay.c:
	Enable debugging via sudo.conf.
	[ae43a19ad]

	* plugins/sudoers/visudo.c:
	Enable debugging via sudo.conf.
	[38526ca14]

	* plugins/sudoers/visudo.c:
	Allow "visudo -c" to work when we only have read-only access to the
	sudoers include files.
	[baa9273dd]

	* doc/sudo.pod, doc/visudo.pod:
	Mention the CONTRIBUTORS file, not HISTORY in AUTHOR section. Add
	HISTORY section in sudo that points to HISTORY file.
	[37fe423cd]

	* doc/sudo.pod, doc/sudo_plugin.pod:
	Document Debug setting in sudo.conf and debug_flags in plugin.
	[45e1623b5]

2012-01-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match.c:
	Do not include GLOB_MARK in the flags we pass to glob(3). Fixes a
	bug where a pattern like "/usr/*" include /usr/bin/ in the results,
	which would be incorrectly be interpreted as if the sudoers file had
	specified a directory. From Vitezslav Cizek.
	[c4ba51161]

	* INSTALL, config.h.in, configure, configure.in,
	plugins/sudoers/auth/kerb5.c:
	Add --enable-kerb5-instance configure option to allow people using
	Kerberos V authentication to use a custom instance. Adapted from a
	diff by Michael E Burr.
	[241b1db87]

	* doc/sudo.pod, src/parse_args.c, src/sudo.c, src/sudo.h:
	Remove -D debug_level option.
	[72a4e0943]

	* doc/LICENSE:
	Update copyright year.
	[9c27e91b5]

2012-01-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	parse_error is now bool, not int
	[47bcaf57b]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.c:
	Print a more sensible error if yyparse() returns non-zero but
	yyerror() was not called.
	[0f5eaa17f]

	* plugins/sudoers/Makefile.in, plugins/sudoers/getdate.c,
	plugins/sudoers/gram.c:
	Replace y.tab.c with the correct filename in #line directives.
	[a1815e17c]

2012-01-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo.c:
	When trying to determine the tty, fall back on /proc/ppid/fd/{0,1,2}
	if the main process's fds 0-2 are not hooked up to a tty. Adapted
	from a diff by Zdenek Behan.
	[4da65677b]

	* src/exec.c:
	When not logging I/O, put command in its own pgrp and make that the
	controlling pgrp if the command is in the foreground. Fixes a race
	in the non-I/O logging path where the command may receive two
	keyboard-generated signals; one from the kernel and one from the
	sudo process.
	[5bc075640]

2011-12-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_edit.c:
	Quiet a bogus gcc warning.
	[7799d01cf]

	* src/parse_args.c, src/sudo.h:
	Fix warnings related to sudo.conf accessors.
	[089ee4222]

	* common/sudo_conf.c, include/sudo_conf.h:
	Separate sudo.conf parsing from plugin loading and move the parse
	functions into the common lib so that visudo, etc. can use them.
	[fa1f781a0]

	* MANIFEST, common/Makefile.in, src/Makefile.in, src/load_plugins.c,
	src/parse_args.c, src/sudo.c, src/sudo_plugin_int.h:
	Separate sudo.conf parsing from plugin loading and move the parse
	functions into the common lib so that visudo, etc. can use them.
	[1c3965f53]

	* doc/sudoers.pod, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/sudoers.c, src/sudo.c:
	Remove support for noexec_file in sudoers and the plugin API
	[fb3c9f2ca]

	* plugins/sudoers/sudoers.c:
	Don't dump interfaces if there are none.
	[4aa0ccb22]

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.in:
	Add missing %s printf escape to the group_plugin, iolog_dir and
	iolog_file descriptions.
	[91839036d]

2011-12-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/def_data.c, plugins/sudoers/def_data.in,
	src/exec.c:
	Fix typo in visiblepw description; from Joel Pickett
	[1f97735fb]

2011-12-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, configure, configure.in, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/env.c,
	plugins/sudoers/login_class.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/sudo.c:
	When running a login shell with a login_class specified, use
	LOGIN_SETENV instead of rolling our own login.conf setenv support
	since FreeBSD's login.conf has more than just setenv capabilities.
	This requires us to swap the plugin-provided envp for the global
	environ before calling setusercontext() and then stash the resulting
	environ pointer back into the command details, which is kind of a
	hack.
	[a24d86b32]

	* plugins/sudoers/Makefile.in:
	If srcdir is "." just use the basename of the yacc/lex file when
	generating the C version. This matches the generated files currently
	in the repo.
	[27616d1f3]

	* doc/Makefile.in, plugins/sudoers/Makefile.in:
	Clean up the DEVEL noise
	[31c08fca3]

	* src/exec.c:
	Handle different Unix domain socket (actually socketpair) semantics
	in BSD vs. Linux. In BSD if one end of the socketpair goes away
	select() returns the fd as readable and the read will fail with
	ECONNRESET. This doesn't appear to happen on Linux so if we notice
	that the monitor process has died when I/O logging is enabled,
	behave like the command has exited. This means we log the wait
	status of the monitor, not the command, but there is nothing else we
	can do at that point. This should only be an issue if SIGKILL is
	sent to the monitor process.
	[98c77b5b9]

	* src/exec_pty.c:
	Catch common signals in the monitor process so they get passed to
	the command. Fixes a problem when the entire login session is killed
	when ssh is disconnected or the terminal window is closed.
	Previously, the monitor would exit and plugin's close method would
	not be called.
	[6bcf470fe]

	* INSTALL, configure, configure.in:
	Mention how to configure pam_hpsec on HP-UX to play nicely with
	sudo.
	[edd32aa8d]

2011-12-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Escape values in the search expression as per RFC 4515.
	[666d8d635]

	* doc/Makefile.in, include/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	No need for install target to depend explicitly on install-dirs, the
	install-foo targets all depend on it.
	[1cec1f477]

2011-12-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* .hgignore:
	ignore src/sesh
	[faa10aa82]

	* MANIFEST, common/Makefile.in, configure, configure.in, mkdep.pl,
	plugins/sample/Makefile.in, plugins/sample_group/Makefile.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/env.c,
	plugins/sudoers/login_class.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/Makefile.in:
	Add support for setenv entries in login.conf. We can't use
	LOGIN_SETENV since the plugin sets up the envp the command is
	executed with. Also regen the Makefile.in files while here. Fixes
	bug #527
	[9f0abb469]

2011-12-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, aclocal.m4, compat/getaddrinfo.c, compat/getaddrinfo.h,
	config.h.in, configure, configure.in, plugins/sudoers/sudoers.c,
	src/net_ifs.c:
	Add getaddrinfo() for those without it, written by Russ Allbery
	[38a4990e4]

	* doc/Makefile.in:
	Restore PACKAGE_TARNAME, it is used in docdir
	[62011b677]

	* MANIFEST, compat/stdbool.h:
	SunPro C Compiler also has a _Bool builtin. Also add stdbool.h to
	the MANIFEST
	[feaad3aff]

	* common/atobool.c, common/term.c, src/exec.c:
	Remove duplicate return statements.
	[0e26e43b9]

	* plugins/sudoers/auth/bsdauth.c:
	Remove inaccurate comment
	[db3fd558b]

	* plugins/sudoers/auth/bsdauth.c, plugins/sudoers/sudoers.c:
	Fetch the login class for the user we authenticate specifically when
	using BSD authentication. That user may have a different login class
	than what we will use to run the command. When setting the login
	class for the command, use the target user's struct passwd, not the
	invoking user's. Fixes bug 526
	[199eeb38d]

	* compat/Makefile.in, configure, configure.in, doc/Makefile.in,
	plugins/sudoers/Makefile.in:
	Replace @DEV@ prefix with DEVEL variable so we can do "make DEVEL=1"
	[01147eda3]

	* plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_fill.c:
	Fix "make check" fallout from the sudo_conv changes in sudo_debug.
	[b58c1ff6e]

	* common/fileops.c, common/sudo_debug.c, configure, configure.in,
	include/fileops.h, plugins/sample/Makefile.in,
	plugins/sample/sample_plugin.c, plugins/sample_group/Makefile.in,
	plugins/sample_group/sample_group.c, plugins/sudoers/alias.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/check.c,
	plugins/sudoers/defaults.c, plugins/sudoers/defaults.h,
	plugins/sudoers/env.c, plugins/sudoers/find_path.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/ldap.c, plugins/sudoers/match.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/pwutil.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	plugins/sudoers/visudo.c, src/exec.c, src/exec_pty.c,
	src/load_plugins.c, src/sudo.c, src/sudo.h, src/sudo_exec.h,
	src/sudo_plugin_int.h, src/utmp.c:
	Use stdbool.h instead of rolling our own TRUE/FALSE macros.
	[21a2f9582]

2011-12-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/stdbool.h, config.h.in, configure, configure.in:
	Add stdbool.h for systems without it.
	[86c86183a]

	* aclocal.m4, config.h.in, configure, configure.in:
	No longer need SUDO_CHECK_TYPE and SUDO_TYPE_* now that the default
	includes have unistd.h in them. Add check for socklen_t for upcoming
	getaddrinfo compat.
	[e54fc4eb3]

	* common/fileops.c, compat/nanosleep.c, config.h.in, configure,
	configure.in, plugins/sudoers/interfaces.c,
	plugins/sudoers/interfaces.h, plugins/sudoers/match_addr.c,
	plugins/sudoers/sudoreplay.c, src/net_ifs.c:
	Use HAVE_STRUCT_TIMESPEC and HAVE_STRUCT_IN6_ADDR instead of
	HAVE_TIMESPEC and HAVE_IN6_ADDR respectively.
	[51e45647a]

	* src/sudo_noexec.c:
	No longer need to include time.h here as missing.h does not use
	time_t.
	[3f4b68dd1]

2011-11-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	Fix mode on sudoers as needed when the -f option is not specified.
	[21a1460d4]

	* MANIFEST, src/po/sr.mo, src/po/sr.po:
	Add Serbian translation for sudo from translationproject.org
	[f7925b588]

	* common/sudo_debug.c, plugins/sudoers/sudoers.c,
	src/load_plugins.c, src/parse_args.c:
	No longer pass debug_file to plugin, plugins must now use
	CONV_DEBUG_MSG
	[ab887a6fb]

	* mkpkg:
	Build PIE executables for newer Debian and Ubuntu
	[13514ec03]

	* common/sudo_debug.c:
	Include time.h for ctime() prototype.
	[8fa6ab037]

2011-11-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/sudo_debug.c, include/sudo_debug.h, src/exec.c,
	src/exec_pty.c:
	Do not close error pipe or debug fd via closefrom() as we need them
	to report an exec error should one occur.
	[a64f1eaea]

	* doc/sudoers.ldap.pod:
	Document that a sudoUser may now be a group ID.
	[3b2998d55]

	* plugins/sudoers/ldap.c:
	Add support for permitting access by group ID in addition to group
	name.
	[b12b4fdc7]

	* plugins/sudoers/ldap.c:
	Older Netscape LDAP SDKs don't prototype ldapssl_set_strength()
	[627e485c0]

	* compat/fnmatch.c, compat/fnmatch.h, doc/LICENSE:
	Replace UCB fnmatch.c with a non-recursive version written by
	William A. Rowe Jr.
	[e9e4a8452]

	* plugins/sudoers/auth/pam.c:
	Fix typo, return_debug vs. debug_return
	[dd2fcf16d]

2011-11-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po:
	Update Japanese sudoers translation from translationproject.org
	[6dbf8cc23]

	* doc/sudoers.pod:
	Make the env_reset descriptions consistent.
	[e43b726e9]

2011-11-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Do multiple expansion when expanding paths to the noexec file, sesh
	and the plugin directory. Adapted from a diff by Mike Frysinger
	[1b9f2cdbc]

	* common/Makefile.in:
	regen
	[12352244b]

2011-11-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* .hgignore:
	Add ignore file; from Mike Frysinger
	[0cd56fa29]

	* mkdep.pl:
	no longer save old Makefile.in to .old
	[ec0c924e0]

	* plugins/sudoers/Makefile.in, src/Makefile.in:
	regen
	[55166914c]

	* config.guess, config.sub, configure, ltmain.sh, m4/libtool.m4,
	m4/ltoptions.m4, m4/ltversion.m4:
	Update to libtool 2.4.2
	[b27eeb41b]

2011-11-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers_version.h:
	Bump grammar version for #include and #includedir relative path
	support.
	[ea2a7b48b]

2011-11-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.pod, plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add support for relative paths in #include and #includedir
	[481877e3b]

	* plugins/sudoers/Makefile.in:
	Fix install-plugin when shared objects are unsupported or disabled.
	[012440794]

	* plugins/sudoers/goodpath.c:
	Don't write to sbp if it is NULL
	[c189fa5f5]

2011-11-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Remove all sudo/sudoers .mo files on uninstall If LINGUAS is set,
	only install matching .mo files
	[eb687d2a4]

2011-11-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/group_plugin.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/sudoers.c, src/conversation.c:
	Fix non-dynamic (no dlopen) sudo build.
	[f689afb5e]

	* configure, configure.in:
	Don't error out if the user specified --disable-shared
	[19c98b62b]

	* common/sudo_debug.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/conversation.c:
	Use SUDO_CONV_DEBUG_MSG in the plugin instead of writing directly to
	the debug file.
	[65b781a2e]

	* plugins/sudoers/find_path.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/sudoers.h:
	Make sudo_goodpath() return value bolean
	[f3ae31185]

	* INSTALL, MANIFEST, configure, configure.in, mkdep.pl,
	plugins/sudoers/Makefile.in, plugins/sudoers/auth/securid.c:
	Remove obsolete securid auth method.
	[5c29710f3]

	* plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h:
	Prefix authentication functions with a "sudo_" prefix to avoid
	namespace problems.
	[6fd3e0385]

	* INSTALL, MANIFEST, config.h.in, configure, configure.in,
	doc/TROUBLESHOOTING, mkdep.pl, plugins/sudoers/Makefile.in,
	plugins/sudoers/auth/kerb4.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/env.c:
	Remove the old Kerberos IV support
	[c86561e50]

2011-11-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	Don't print garbage at the end of the custom lecture.
	[f190bcf94]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add lexer tracing as debug@parser
	[ab437ae6c]

	* plugins/sudoers/alias.c, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/gram.c,
	plugins/sudoers/match.c, plugins/sudoers/parse.c,
	plugins/sudoers/regress/parser/check_fill.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	plugins/sudoers/visudo.c:
	Revert 003bdb078a15. We need to #include <gram.h> not "gram.h" and
	<def_data.h> and not "def_data.h" when generating the parser in a
	build dir.
	[09beba825]

2011-11-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkdep.pl, plugins/sudoers/Makefile.in:
	Better devdir support in mkdep.pl
	[f375ee5f0]

	* plugins/sudoers/Makefile.in:
	Add devdir before srcdir in include path and fix up dependecies
	accordingly.
	[98790cd0c]

	* plugins/sudoers/alias.c, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/match.c,
	plugins/sudoers/parse.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/visudo.c:
	#include "gram.h" not <gram.h> and "def_data.h" and not
	<def_data.h>.
	[0bf68d210]

	* sudo.pp:
	Mark libexec files as optional. If we build without shared object
	support, libexec is not used.
	[1d7722a54]

	* src/load_plugins.c:
	Change Debug sudo.conf setting to take a program name as the first
	argument. In the future, this will allow visudo and sudoreplay to
	use their own Debug entries.
	[e58b23274]

	* src/sudo.c:
	fix sudo_debug_printf priority
	[5d2c01e3d]

	* plugins/sudoers/sudoers.c:
	add missing debug_return_int
	[6fa91f569]

2011-11-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/sudo_debug.c, include/error.h, include/sudo_debug.h,
	plugins/sudoers/logging.c, src/exec.c, src/exec_pty.c:
	Fold SUDO_DEBUG_PROGERR and SUDO_DEBUG_SYSERR into SUDO_DEBUG_ERROR
	[3ee9cef0d]

	* doc/UPGRADE:
	Add missing word in HOME security note.
	[d0eb3ae6a]

	* plugins/sudoers/testsudoers.c:
	Prevent "testsudoers -d username" from trying to malloc(0).
	[cf7ad29f4]

2011-11-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/sudoers/test10.in,
	plugins/sudoers/regress/sudoers/test10.out.ok,
	plugins/sudoers/regress/sudoers/test10.toke.ok,
	plugins/sudoers/regress/sudoers/test10.toke.out.ok,
	plugins/sudoers/regress/sudoers/test11.in,
	plugins/sudoers/regress/sudoers/test11.out.ok,
	plugins/sudoers/regress/sudoers/test11.toke.ok,
	plugins/sudoers/regress/sudoers/test11.toke.out.ok,
	plugins/sudoers/regress/sudoers/test12.in,
	plugins/sudoers/regress/sudoers/test12.out.ok,
	plugins/sudoers/regress/sudoers/test12.toke.ok,
	plugins/sudoers/regress/sudoers/test13.in,
	plugins/sudoers/regress/sudoers/test13.out.ok,
	plugins/sudoers/regress/sudoers/test13.toke.ok,
	plugins/sudoers/regress/sudoers/test9.in,
	plugins/sudoers/regress/sudoers/test9.out.ok,
	plugins/sudoers/regress/sudoers/test9.toke.ok,
	plugins/sudoers/regress/sudoers/test9.toke.out.ok:
	Tests for empty sudoers (should parse OK) and syntax errors within a
	line (should report correct line number) both with and without the
	trailing newline.
	[a83507ccd]

	* plugins/sudoers/regress/sudoers/test4.out.ok,
	plugins/sudoers/regress/sudoers/test5.out.ok,
	plugins/sudoers/regress/sudoers/test7.out.ok,
	plugins/sudoers/regress/sudoers/test8.out.ok,
	plugins/sudoers/testsudoers.c:
	Print line number when there is a parser error.
	[9fddb9eed]

2011-11-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Keep track of the last token returned. On error, if the last token
	was COMMENT, decrement sudolineno since the error most likely
	occurred on the preceding line. Previously we always uses
	sudolineno-1 which will give the wrong line number for errors within
	a line.
	[bd881c26e]

2011-11-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	update with sudo 1.8.3p1 info
	[d2963dda7]

	* plugins/sudoers/sudoers.c:
	Fix crash when "sudo -g group -i" is run. Fixes bug 521
	[ab803d88b]

2011-10-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	Make alias_remove_recursive() return TRUE/FALSE as its callers
	expect and remove two unused arguments. Fixes bug 519.
	[922add780]

	* plugins/sudoers/regress/visudo/test1.out.ok,
	plugins/sudoers/regress/visudo/test1.sh:
	Add regress test for bugzilla 519
	[c55b5c9e1]

	* plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_fill.c:
	Disable warning/error wrapping in regress tests.
	[300265019]

2011-10-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Do compile-po as part of sync-po so that the .mo files get rebuild
	automatically when we sync with translationproject.org
	[4b3efd497]

	* plugins/sudoers/Makefile.in:
	check_addr needs to link with the network libraries on Solaris
	[85cd642d3]

	* plugins/sudoers/match.c:
	When matching a RunasAlias for a runas group, pass the alias in as
	the group_list, not the user_list. From Daniel Kopecek.
	[6973ed5eb]

	* plugins/sudoers/check.c, plugins/sudoers/sudoers.c:
	We need to init the auth system regardless of whether we need a
	password since we will be closing the PAM session in the monitor
	process. Fixes a crash in the monitor on Solaris; bugzilla #518
	[9b2c88981]

2011-10-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	Get rid of done: label. If the child exits we still need to close
	the pty, update utmp and restore the SELinux tty context.
	[ab75dd2e3]

2011-10-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/Makefile.in, common/atobool.c, common/fileops.c,
	common/fmt_string.c, common/lbuf.c, common/list.c,
	common/setgroups.c, common/term.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/alias.c, plugins/sudoers/audit.c,
	plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb4.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/boottime.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/check.c,
	plugins/sudoers/defaults.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/getspwuid.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/interfaces.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_path.c, plugins/sudoers/ldap.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/logwrap.c, plugins/sudoers/match.c,
	plugins/sudoers/match_addr.c, plugins/sudoers/parse.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/redblack.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	src/Makefile.in, src/conversation.c, src/exec.c, src/exec_pty.c,
	src/get_pty.c, src/load_plugins.c, src/net_ifs.c, src/parse_args.c,
	src/selinux.c, src/sudo.c, src/sudo.h, src/sudo_edit.c,
	src/tgetpass.c, src/ttysize.c, src/utmp.c:
	Add debug_decl/debug_return (almost) everywhere. Remove old
	sudo_debug() and convert users to sudo_debug_printf().
	[839919566]

	* common/alloc.c, include/error.h, plugins/sudoers/plugin_error.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c, src/error.c:
	Wrap error/errorx and warning/warningx functions with debug
	statements. Disable wrapping for standalone sudoers programs as well
	as memory allocation functions (to avoid infinite recursion).
	[9923464d9]

	* README, config.h.in, configure, configure.in:
	Add checks for __func__ and __FUNCTION__ and mention that we now
	require a cpp that supports variadic macros.
	[749a7695d]

	* MANIFEST, common/Makefile.in, common/sudo_debug.c,
	include/sudo_debug.h, include/sudo_plugin.h, src/conversation.c,
	src/load_plugins.c, src/parse_args.c, src/sudo.c,
	src/sudo_plugin_int.h:
	New debug framework for sudo and plugins using /etc/sudo.conf that
	also supports function call tracing.
	[53e3ad11b]

2011-10-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/ja.mo, plugins/sudoers/po/ja.po:
	Update Japanese sudoers translation from translationproject.org
	[697caf8df]

2011-10-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Override and ignore the --disable-static option. Sudo already runs
	libtool with -tag=disable-static where applicable and we need
	non-PIC objects to build the executables.
	[8ef560b85]

2011-10-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Add sudoedit fix
	[ce8b4e53a]

	* plugins/sudoers/po/sudoers.pot:
	regen pot files
	[3f526029a]

	* plugins/sudoers/env.c:
	Ignore set_logname (which is now the default) for sudoedit since we
	want the LOGNAME, USER and USERNAME environment variables to refer
	to the calling user since that is who the editor runs as. This
	allows the editor to find the user's startup files. Fixes bugzilla
	#515
	[b7a610770]

	* plugins/sudoers/pwutil.c:
	Instead of trying to grow the buffer in make_grlist_item(), simply
	increase the total length, free the old buffer and allocate a new
	one. This is less error prone and saves us from having to adjust all
	the pointers in the buffer. This code path is only taken when there
	are groups longer than the length of the user field in struct utmp
	or utmpx, which should be quite rare.
	[a6602fa0e]

	* src/po/it.mo:
	Add Italian translation for sudo from translationproject.org
	[dd3902e11]

	* MANIFEST, NEWS, plugins/sudoers/po/ja.mo,
	plugins/sudoers/po/ja.po, src/po/ja.mo, src/po/ja.po:
	Japanese translation for sudo and sudoers from
	translationproject.org
	[82dd8f65f]

2011-10-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	sudoreplay depends on timestr.lo too; from Mike Frysinger
	[fb49b16e4]

2011-10-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot:
	Regen sudoers pot file.
	[063c6ee60]

	* NEWS:
	Update with latest sudo 1.8.3 news
	[a4378bd94]

	* plugins/sudoers/sudoers.c:
	It appears that LDAP or NSS may modify the euid so we need to be
	root for the open(). We restore the old perms at the end of
	sudoers_policy_open().
	[930122d34]

	* plugins/sudoers/set_perms.c:
	Better warning message on setuid() failure for the setreuid()
	version of set_perms().
	[b743b77a0]

2011-09-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	Delref auth_pw at the end of check_user() instead of getting a ref
	twice.
	[45ad681cd]

	* plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/check.c:
	Make sudo_auth_{init,cleanup} return TRUE on success and check for
	sudo_auth_init() return value in check_user().
	[1e93d1fbb]

	* plugins/sudoers/auth/sudo_auth.c:
	Do not return without restoring permissions.
	[4540a7525]

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	regen pot files
	[de684e5d2]

	* plugins/sudoers/auth/API, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb4.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/auth/sudo_auth.h,
	plugins/sudoers/check.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Modify the authentication API such that the init and cleanup
	functions are always called, regardless of whether or not we are
	going to verify a password. This is needed for proper PAM session
	support.
	[bceb5df15]

	* compat/Makefile.in, mkdep.pl, plugins/sudoers/Makefile.in:
	Add missing dependency for getspwuid.lo and regen other depends.
	[c21595044]

	* plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/sudoers.c:
	Fix a PAM_USER mismatch in session open/close. We update PAM_USER to
	the target user immediately before setting resource limits, which is
	after the monitor process has forked (so it has the old value).
	Also, if the user did not authenticate, there is no pamh in the
	monitor so we need to init pam here too. This means we end up
	calling pam_start() twice, which should be fixed, but at least the
	session is always properly closed now.
	[c5f8dc95c]

	* src/utmp.c:
	Add check for old being NULL in utmp_setid(); from Steven McDonald
	[7304bc744]

2011-09-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/pwutil.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	If the invoking user cannot be resolved by uid fake the struct
	passwd and store it in the cache so we can delref it on exit.
	[05bfd6669]

2011-09-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Don't error out if the group plugin cannot be loaded, just warn.
	[842526d71]

2011-09-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Quiet a false positive found by several static analysis tools. These
	tools don't know that log_error() does not return (it longjmps to
	error_jmp which returns to the sudo front-end).
	[077514789]

2011-09-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/da.mo, plugins/sudoers/po/eo.mo,
	plugins/sudoers/po/fi.mo, plugins/sudoers/po/pl.mo,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/zh_CN.mo, src/po/it.po:
	Add Italian translation for sudo from translationproject.org Regen
	.mo files
	[6028afae8]

2011-09-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/TROUBLESHOOTING:
	Update to current reality and add bit about ssh auth
	[a898356b1]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Make "verbose" static; fixes a namespace clash with
	pam_ssh_agent_auth (and it doesn't need to be extern these days).
	[de33689ae]

	* config.h.in, configure, configure.in, src/get_pty.c:
	FreeBSD has libutil.h not util.h
	[4724e313e]

	* configure, configure.in:
	Define _BSD_SOURCE on FreeBSD, OpenBSD and DragonflyBSD
	[441abee4e]

2011-09-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/da.po, plugins/sudoers/po/eo.po,
	plugins/sudoers/po/fi.po, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/uk.po, plugins/sudoers/po/zh_CN.po:
	Update po files from translationproject.org
	[32c1ae8f7]

2011-09-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.pod, plugins/sudoers/ldap.c:
	Add support for DEREF in ldap.conf.
	[3bcc9048c]

	* Makefile.in:
	install target should depend on ChangeLog too, not just install-doc
	[0f95023e9]

	* doc/sudoers.pod:
	Only iolog_file (not iolog_dir) supports mktemp-style suffixes.
	[e5e1bb24f]

	* NEWS:
	Sync with 1.8 branch for sudo 1.8.2 and 1.8.3 changes.
	[62991b0cf]

	* doc/UPGRADE:
	Document group lookup change and possible side effects.
	[ed26d7a59]

	* configure, configure.in:
	Fix some square brackets in case statements that needed to be
	doubled up. While here, use $OSMAJOR when it makes sense.
	[647e087cd]

	* plugins/sudoers/pwutil.c:
	Fix a crash in make_grlist_item() on 64-bit machines with strict
	alignment.
	[fd2d709bd]

	* plugins/sudoers/defaults.c, plugins/sudoers/defaults.h:
	Remove list_options() function that is no longer used now that "sudo
	-L" is gone.
	[cab1968da]

	* configure, configure.in:
	Error message if user tries --with-CC
	[523492af5]

	* configure, configure.in:
	Check for -libmldap too when looking for ldap libs, which is the
	Tivoli Directory Server client library.
	[ba331ebfb]

2011-09-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/parse.c:
	Honor NOPASSWD tag for denied commands too.
	[dacb1e47f]

2011-09-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, configure, configure.in:
	Remove --with-CC option; it doesn't work correctly now that we use
	libtool. Users can get the same effect by setting the CC environment
	variable when running configure.
	[b3b268c3a]

2011-08-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, plugins/sudoers/visudo.c,
	src/sudo_edit.c:
	Assume all modern systems support fstat(2).
	[f730cb787]

2011-08-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/regress/glob/globtest.c, config.h.in, configure,
	configure.in, include/missing.h, plugins/sudoers/sudoers.h,
	src/sudo.h, src/sudo_noexec.c:
	Add configure test for missing errno declaration and only declare it
	ourselves if it is missing.
	[47af0fc2b]

	* plugins/sudoers/alias.c:
	Include errno.h before sudo.h to avoid conflicting with the system
	definition of errno.
	[55896f636]

2011-08-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/parser/check_addr.c:
	Only print individual check status when there is a failure.
	[0cd464809]

	* plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/parser/check_addr.c:
	Add calls to setprogname() for test programs.
	[f478f8406]

	* configure, configure.in:
	Add -Wall and -Werror after all tests so they don't cause failures.
	[3e0e0fc38]

	* plugins/sudoers/Makefile.in:
	Actually run check_addr in the check target
	[7945166bb]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/match.c,
	plugins/sudoers/match_addr.c,
	plugins/sudoers/regress/parser/check_addr.c,
	plugins/sudoers/regress/parser/check_addr.in:
	Split out address matching into its own file and add regression
	tests for it.
	[1a259de17]

2011-08-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match.c:
	When matching an address with a netmask in sudoers, AND the mask and
	addr before checking against the local addresses.
	[a47f00543]

2011-08-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match.c:
	Fix netmask matching.
	[526a61004]

	* plugins/sudoers/visudo.c:
	Don't assume all editors support the +linenumber command line
	argument, use a whitelist of known good editors.
	[e3cda8020]

2011-08-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/set_perms.c, plugins/sudoers/visudo.c, src/exec.c,
	src/exec_pty.c, src/sudo.c:
	Silence compiler warnings on Solaris with gcc 3.4.3
	[d81c14005]

	* mkpkg:
	Fix building on RHEL 3
	[335901388]

	* INSTALL, configure, configure.in:
	Add --enable-werror configure option.
	[e4956d22e]

	* common/setgroups.c:
	setgroups() proto lives in grp.h on RHEL4, perhaps others.
	[da95b0ea5]

	* configure, configure.in:
	Use PAM by default on AIX 6 and higher.
	[64a57a2ee]

2011-08-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/eo.mo, plugins/sudoers/po/eo.po,
	src/po/eo.mo, src/po/eo.po:
	Add new Esperanto translation from translationproject.org
	[8fb53f5e4]

2011-08-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog_path.c:
	Quiet an innocuous valgrind warning.
	[5a13dd2b7]

2011-08-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog_path.c,
	plugins/sudoers/regress/iolog_path/data:
	Fix expansion of strftime() escapes in log_dir and add a regress
	test that exhibited the problem.
	[bfc84b01f]

	* plugins/sudoers/Makefile.in:
	Fix "make check" return value.
	[367b65900]

2011-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	Regen pot files
	[a6224a734]

	* Makefile.in:
	Fix logic inversion in pot file up to date check.
	[27257d9cf]

2011-08-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Add caching for gettext() checks.
	[366cb1927]

	* configure, configure.in:
	Better handling of libintl header and library mismatch.
	[8f8738ff3]

2011-08-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Also check sudoers gid if sudoers is group writable.
	[d56a17165]

2011-08-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	If dlopen is present but libtool doesn't find it, error out since it
	probably means that libtool doesn't support the system.
	[6b9d80b10]

	* mkpkg:
	configure args on the command line should override builtin defaults.
	Disable NLS for non-Linux/Solaris unless explicitly enabled.
	[13591340b]

	* plugins/sudoers/auth/aix_auth.c:
	Fix loop that calls authenticate(). If there was an error message
	from authenticate(), display it.
	[7f4a0d095]

2011-08-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* m4/libtool.m4, m4/ltversion.m4:
	Update to autoconf 2.68 and libtool 2.4
	[027cd522c]

	* config.guess, config.sub, configure, configure.in, ltmain.sh:
	Update to autoconf 2.68 and libtool 2.4
	[c8fb44084]

	* doc/sudoers.pod:
	Fix typo; OPT should be OTP
	[6b1e75252]

	* plugins/sudoers/Makefile.in:
	Rename libsudoers convenience library to libparsesudoers to avoid
	libtool confusion.
	[179b34d9e]

2011-08-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/da.mo, plugins/sudoers/po/da.po:
	Add Danish sudoers translation from translationproject.org
	[1adef5ec3]

	* plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c:
	Add dedicated callback function for runas_default sudoers setting
	that only sets runas_pw if no runas user or group was specified by
	the user.
	[6099e1bc4]

2011-08-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/fi.mo, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po,
	plugins/sudoers/po/uk.mo, plugins/sudoers/po/uk.po, src/po/ru.mo,
	src/po/ru.po:
	Update Finish, Polish, Russian and Ukrainian translations from
	translationproject.org.
	[aaaa5d05d]

	* plugins/sudoers/defaults.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c:
	Go back to using a callback for runas_default to keep runas_pw in
	sync. This is needed to make per-entry runas_default settings work
	with LDAP-based sudoers. Instead of declaring it a callback in
	def_data.in, sudo and testsudoers poke sudo_defs_table[] which is a
	bit naughty, but avoids requiring stub functions in visudo and the
	tests.
	[01ae3d477]

2011-08-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Add check for out of date message catalogs when doing "make dist".
	[53656020f]

2011-08-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[f92267836]

	* configure.in:
	Make sure compiler supports static-libgcc before using it.
	[00b846cd1]

2011-08-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/Makefile.in:
	Link libsudo_noexec.la with LDLDFLAGS for -static-libgcc
	[fecb39734]

2011-07-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/fi.mo, plugins/sudoers/po/pl.mo,
	plugins/sudoers/po/pl.po, plugins/sudoers/po/uk.mo,
	plugins/sudoers/po/zh_CN.mo, src/po/ru.mo, src/po/ru.po,
	src/po/zh_CN.mo:
	Add new Russian sudo translation from translationproject.org and
	rebuild the other translation files.
	[eb09c303a]

2011-07-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/fi.po, plugins/sudoers/po/pl.po:
	Update Finish and Polish translations from translationproject.org
	[4f726ddcd]

	* plugins/sudoers/sudoers.c, src/parse_args.c, src/sudo.c:
	Go back to escaping the command args for "sudo -i" and "sudo -s"
	before calling the plugin. Otherwise, spaces in the command args are
	not treated properly. The sudoers plugin will unescape non-spaces to
	make matching easier.
	[8255ed69b]

2011-07-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Fix some potential problems found by the clang static analyzer, none
	serious.
	[4f9a93f65]

	* plugins/sudoers/po/uk.po, plugins/sudoers/po/zh_CN.po,
	src/po/zh_CN.po:
	Updated Ukranian and Chinese (simplified) po files from
	translationproject.org
	[6365c779c]

2011-07-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/pl.po:
	Updated Polish translation from translationproject.org
	[bd6ce7ee3]

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	Rebuild pot files
	[3606fc441]

	* plugins/sudoers/audit.c, plugins/sudoers/sudoers.c:
	Don't try to audit failure if the runas user does not exist. We
	don't have the user's command at this point so there is nothing to
	audit. Add a NULL check in audit_success() and audit_failure() just
	to be on the safe side.
	[35d26ae34]

	* mkpkg:
	Add -g to CFLAG for PIE builds.
	[8ebf7a95c]

2011-07-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/pwutil.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/sudo.c:
	Remove fallback to per-group lookup when matching groups in sudoers.
	The sudo front-end will now use getgrouplist() to get the user's
	list of groups if getgroups() fails or returns zero groups so we
	always have a list of the user's groups. For systems with
	mbr_check_membership() which support more that NGROUPS_MAX groups
	(Mac OS X), skip the call to getgroups() and use getgrouplist() so
	we get all the groups.
	[80138c88b]

2011-07-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/setgroups.c:
	Fix setgroups() fallback code on EINVAL.
	[cb63967bf]

	* plugins/sudoers/set_perms.c:
	Fix two PERM_INITIAL cases that were still using user_gids.
	[1f9fb7609]

	* MANIFEST:
	Add Polish sudo message catalog
	[043b976c6]

	* plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	user_group is no longer used, remove it
	[3dde167cf]

2011-07-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/pl.mo, plugins/sudoers/po/pl.po:
	Add Polish translation from translationproject.org
	[0b9107395]

	* MANIFEST, common/Makefile.in, common/setgroups.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.h, src/sudo.c,
	src/sudo.h, src/sudo_edit.c:
	Add a wrapper for setgroups() that trims off extra groups and
	retries if setgroups() fails. Also add some missing addrefs for
	PERM_USER and PERM_FULL_USER.
	[022591f4b]

	* MANIFEST, compat/Makefile.in, compat/getgrouplist.c, config.h.in,
	configure, configure.in, include/missing.h, mkdep.pl,
	plugins/sudoers/ldap.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h, src/sudo.c:
	Instead of keeping separate groups and gids arrays, create struct
	group_info and use it to store both, along with a count for each.
	Cache group info on a per-user basis using getgrouplist() to get the
	groups. We no longer need special to special case the user or list
	user for user_in_group() and thus no longer need to reset the groups
	list when listing another user.
	[b124635b0]

	* src/preload.c:
	Don't rely on NULL since we don't include a header for it.
	[906cede7a]

2011-07-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.pod:
	Fix typo
	[9e7c364ed]

2011-07-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Do not shadow global sudo_mode with a local variable in set_cmnd()
	[6d8788a6c]

2011-07-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	bash 2.x doesd not support the -l flag and exits with an error if it
	is specified so use --login instead. This causes an error with bash
	1.x (which uses -login instead) but this version is hopefully less
	used than 2.x.
	[54bf162e6]

	* src/po/pl.mo, src/po/pl.po:
	Add Polish translation from translationproject.org
	[27316e6c5]

2011-07-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/set_perms.c:
	Make error strings translatable.
	[37873051a]

	* mkpkg:
	Only run configure with --with-pam-login for RHEL 5 and above.
	[94f7c4a29]

	* sudo.pp:
	Fix typo in summary
	[d090d6786]

2011-07-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logwrap.c:
	Add missing logwrap.c
	[d7c079886]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h,
	plugins/sudoers/regress/logging/check_wrap.c,
	plugins/sudoers/regress/logging/check_wrap.in,
	plugins/sudoers/regress/logging/check_wrap.out.ok:
	Split out log file word wrap code into its own file and add unit
	tests. Fixes an off-by one in the word wrap when the log line length
	matches loglinelen.
	[f90731596]

2011-07-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	For SuSE, only use /usr/lib64 as libexec if generating 64-bit
	binaries.
	[ee1b41f84]

	* src/load_plugins.c, src/sudo.c:
	Fix build error when --without-noexec configure option is used.
	[76f427e8d]

	* configure, configure.in:
	Disable noexec for AIX < 5. LDR_PRELOAD is only available in AIX 5.3
	and above.
	[ae3405254]

2011-07-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Resolve the list of gids passed in from the sudo frontend (the
	result of getgroups()) to names and store both the group names and
	ids in the sudo_user struct. When matching groups in the sudoers
	file, match based on the names in the groups list first and only do
	a gid-based match when we absolutely have to. By matching on the
	group name (as it is listed in sudoers) instead of id (which we
	would have to resolve) we save a lot of group lookups for sudoers
	files with a lot of groups in them.
	[56321ec77]

2011-06-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Workaround for "sudo -i command" and newer versions of bash which
	don't go into login mode when -c is specified unless -l is too.
	[20972da41]

2011-06-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.c:
	Rewrite logfile word wrapping code to be more straight-forward and
	actually wrap at the correct place.
	[9ba98ef7b]

2011-06-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/CONTRIBUTORS, doc/contributors.pod, plugins/sudoers/sudoers.c:
	Set use_pty=true in command details when use_pty is set in sudoers.
	From Ludwig Nussel
	[39be82e32]

2011-06-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/zh_CN.mo, plugins/sudoers/po/zh_CN.po,
	src/po/zh_CN.mo, src/po/zh_CN.po:
	Sync Chinese (simplified) PO files from translationproject.org
	[2bd874feb]

2011-06-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, plugins/sudoers/po/eu.mo, plugins/sudoers/po/fi.mo,
	plugins/sudoers/po/uk.mo, src/po/da.mo, src/po/da.po, src/po/eu.mo:
	Add Danish translation from translationproject.org and add missing
	Basque mo files.
	[26ec20f8b]

	* Makefile.in, configure, configure.in:
	No longer need to specify LINGUAS in configure, "make install-nls"
	now just installs all the .mo files it finds.
	[210e091d8]

2011-06-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, doc/CONTRIBUTORS, doc/Makefile.in, doc/contributors.pod:
	Build CONTRIBUTORS from newly-added contributors.pod
	[de6df7cc8]

	* doc/CONTRIBUTORS:
	Rework the wording in the leading paragraph
	[aeac9c738]

2011-06-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, doc/CONTRIBUTORS:
	Add a CONTRIBUTORS file with the names of folks who have contributed
	code or patches to sudo since I started maintaining it (plus the
	original authors).
	[7de94d3a2]

2011-06-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/env.c:
	Preserve SHELL variable for "sudo -s". Otherwise we can end up with
	a situation where the SHELL variable and the actual shell being run
	do not match.
	[7a06f32cb]

2011-06-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Only enable Solaris project support when setproject() is present in
	libproject.
	[b4a48510c]

	* sudo.pp:
	Explicitly set mode and owner of /etc/sudoers instead of relying on
	"cp -p" to work in the postinstall script. On AIX 6.1 at least the
	postinstall script runs before the final file permissions are set.
	[f0e941a39]

2011-06-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.pod, doc/sudoers.pod:
	Refer the user to the "Command Environment" section in description
	of sudo's -i option.
	[0c292a56b]

	* doc/sudo.pod:
	Fix typo
	[47d908aba]

2011-06-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkdep.pl:
	If there is no old dependency for an object file, use the MANIFEST
	to find its source.
	[9fd93f433]

	* compat/Makefile.in:
	Remove dependency for getgrouplist.lo as we don't ship that source
	file.
	[44ab717ac]

2011-06-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y:
	Do not declare yyparse() static as the actual function generated by
	yacc is extern.
	[2c4a5e905]

2011-06-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Remove locale files in "make uninstall"
	[900de1bde]

	* configure.in, plugins/sudoers/po/eu.po, plugins/sudoers/po/fi.po,
	plugins/sudoers/po/uk.po, src/po/eu.po:
	Add Basque translation and sync Finish and Ukranian translations.
	[e95c7130d]

	* configure, configure.in:
	FreeBSD no longer needs the main sudo binary to link with -lpam now
	that plug-ins are loaded with RTLD_GLOBAL.
	[0562e492a]

	* plugins/sudoers/group_plugin.c, src/load_plugins.c:
	Load plugins with RTLD_GLOBAL instead of RTLD_LOCAL. This fixes
	problems with pam modules not having access to symbols provided by
	libpam on some platforms. Affects FreeBSD and SLES 10 at least.
	[4f22a3980]

	* Makefile.in:
	Move xgettext invocation out of update-po target into update-pot
	[878c77000]

2011-06-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/po/sudoers.pot, src/po/sudo.pot:
	Regenerate .pot files for 1.8.2rc2
	[750c0d2eb]

	* Makefile.in, common/Makefile.in, compat/Makefile.in,
	doc/Makefile.in, include/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in, zlib/Makefile.in:
	Move nls targets to the top level Makefile so the paths in the pot
	file are saner
	[e66169b3e]

	* src/po/fi.mo:
	Add compiled version of sudo Finish translation
	[e8064e25d]

	* MANIFEST, plugins/sudoers/po/fi.mo, plugins/sudoers/po/uk.mo:
	Update MANIFEST with .po and .mo files Rebuild sudoers fi and uk .mo
	files
	[5fdfefb9d]

	* configure, configure.in, plugins/sudoers/po/fi.po:
	Add Finish translation from translationproject.org
	[707bad44d]

2011-06-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.pod:
	The group named by exempt_group should not have a % prefix.
	[f77403d06]

2011-06-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.pod:
	Fix typo; "Defaults group_plugin" not "Defaults sudo_plugin"
	[977dfd316]

2011-05-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_pty.c:
	Fix compressed io log corruption in background mode by using _exit()
	instead of exit() to avoid flushing buffers twice.

	Improved background mode support. When not allocating a pty, the
	command is run in its own process group. This prevents write access
	to the tty. When running in a pty, stdin is not hooked up and we
	never read from /dev/tty, which results in similar behavior.
	[3c9e5f28f]

	* compat/Makefile.in, mkdep.pl, plugins/sudoers/Makefile.in:
	Clean up regress files Generate proper dependencies for regress objs
	in compat
	[7199afec8]

	* plugins/sudoers/Makefile.in:
	Add missing dependency for check_fill.o.
	[43fef79b0]

2011-05-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, configure, configure.in:
	Add support for --enable-nls[=location]
	[88cfbd51a]

2011-05-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/linux_audit.c:
	Include gettext.h
	[d5e1cbbfa]

	* plugins/sudoers/ldap.c, plugins/sudoers/parse.c:
	Quiet gcc warnings.
	[ab3b3eb83]

	* configure, configure.in:
	Don't install .mo files if gettext was not found.
	[97214c448]

2011-05-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	Always allocate a pty when running a command in the background but
	call setsid() after forking to make sure we don't end up with a
	controlling tty.
	[1b67009ca]

	* plugins/sudoers/iolog.c:
	Add missing space between command name and the first command line
	argument.
	[8513c4818]

	* plugins/sudoers/sudoreplay.c:
	Quiet a compiler warning on some platforms.
	[3e2f4037c]

	* plugins/sudoers/po/README, src/po/README:
	README file that directs people to translationproject.org
	[9b7cd235e]

	* plugins/sudoers/po/uk.po, src/po/fi.po:
	Sync translations with TP
	[6fccd6bfd]

	* Makefile.in:
	Add 'sync-po' target to top-level Makefile to rsync the po files
	from translationproject.org.
	[a7d96a334]

	* plugins/sudoers/Makefile.in:
	install nls files from install target
	[4ab4114c4]

	* Makefile.in, plugins/sudoers/Makefile.in, src/Makefile.in,
	sudo.pp:
	Include .mo files in sudo binary packags.
	[38db44b80]

	* configure, configure.in, plugins/sudoers/po/zh_CN.mo,
	plugins/sudoers/po/zh_CN.po, src/po/zh_CN.mo, src/po/zh_CN.po:
	Add simplified chinese translation
	[47adbf8d3]

2011-05-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in, plugins/sudoers/po/uk.mo,
	plugins/sudoers/po/uk.po, src/po/uk.mo, src/po/uk.po:
	Add ukranian translation
	[c202c4e6d]

	* compat/Makefile.in:
	refer to siglist.c, not ./siglist.c since not all makes will treat
	foo and ./foo the same.
	[e9f44f788]

	* plugins/sudoers/sudoers.c:
	Set def_preserve_groups before searching for the command when the -P
	flag is specified.
	[67e8e5653]

	* Makefile.in, compat/Makefile.in, mkdep.pl,
	plugins/sudoers/Makefile.in:
	Add dependency for siglist.lo in compat. This is a generated file so
	"make depend" needs to depend on it.
	[f7cb73abd]

	* compat/Makefile.in:
	More dependency fixes.
	[336ab7077]

	* compat/Makefile.in:
	Fix a few dependencies.
	[79098fd96]

	* plugins/sudoers/Makefile.in, src/Makefile.in:
	Place compiled mo files in the src dir, not the build dir. When
	installing compiled mo files, display a status message.
	[6c13614a5]

2011-05-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.pod, plugins/sudoers/ldap.c:
	Tivoli Directory Server requires that seconds be present in a
	timestamp, even though RFC 4517 states that they are optional.
	[086cbfe37]

	* plugins/sudoers/sudo_nss.h:
	Add missing bit of copyright
	[b463d026b]

	* doc/visudo.pod:
	Mention cycle detection warnings
	[4c370f9f6]

	* plugins/sudoers/visudo.c:
	When checking aliases, also check the contents of the alias in case
	there are problems with an alias that is referenced inside another.
	Replace the self reference check with real alias cycle detection.
	[5b7e231dd]

	* plugins/sudoers/alias.c:
	Set errno to ELOOP in alias_find() if there is a cycle. Set errno to
	ENOENT in alias_find() and alias_remove() if the entry could not be
	found.
	[2b9849287]

	* plugins/sudoers/visudo.c:
	Increment alias_seqno before calls to alias_remove_recursive() to
	avoid false positives with the alias loop detection. Fixes spurious
	warnings about unused aliases when they are nested.
	[682333ae2]

	* MANIFEST:
	add mkdep.pl
	[9089c7ddf]

	* plugins/sudoers/Makefile.in:
	Add dependency on convenience libs to binaries
	[c8dda2b85]

	* Makefile.in:
	mkdep.pl only works when run from the src dir
	[d1e5e3b44]

	* Makefile.in, common/Makefile.in, compat/Makefile.in, mkdep.pl,
	plugins/sample/Makefile.in, plugins/sample_group/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in, zlib/Makefile.in:
	Auto-generate Makefile dependencies with a perl script.
	[78e235945]

2011-05-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match.c:
	If the user specifies a runas group via sudo's -g option that
	matches the runas user's group in the passwd database and that group
	is not denied in the Runas_Spec, allow it. Thus, if user root's gid
	in /etc/passwd is 0, then "sudo -u root -g root id" is allow even if
	no groups are present in the Runas_Spec.
	[d9e807b26]

2011-05-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in, src/Makefile.in:
	Add dependencies on gettext.h
	[3833efaf0]

	* plugins/sudoers/Makefile.in, src/Makefile.in:
	Fix install-nls target with HP-UX sh when gettext is not present.
	[9b3653fca]

2011-05-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in, plugins/sudoers/po/sudoers.pot,
	src/Makefile.in, src/po/sudo.pot:
	regenerate .pot files for lbuf changes
	[f8df14034]

	* configure, configure.in:
	Add missing "checking" message for gettext when using the cache.
	[724b64e2c]

	* common/lbuf.c, include/lbuf.h, plugins/sudoers/ldap.c,
	plugins/sudoers/parse.c, plugins/sudoers/sudo_nss.c,
	src/parse_args.c:
	Add primitive format string support to the lbuf code to make
	translations simpler.
	[bd36d4f2a]

	* MANIFEST, plugins/sudoers/Makefile.in,
	plugins/sudoers/po/sudoers.pot, src/Makefile.in, src/po/sudo.pot:
	Add message catalog template files for sudo and the sudoers module.
	[681547c5f]

	* MANIFEST, common/aix.c, common/alloc.c, compat/strsignal.c,
	config.h.in, configure.in, doc/Makefile.in, include/gettext.h,
	plugins/sudoers/iolog.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/visudo.c, src/error.c,
	src/net_ifs.c, src/sesh.c, src/sudo.c, src/sudo.h:
	Add gettext.h convenience header. This is similar to but distinct
	from the one included with the gettext package.
	[bf7e7b575]

2011-05-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Add checks for nroff -c and -Tascii flags
	[a05e96369]

	* configure, configure.in:
	Add check for HP bundled C Compiler (which cannot create shared
	libs)
	[e2aef4f52]

	* plugins/sudoers/sudoreplay.c:
	Fix C format warnings.
	[645b5c1c7]

	* include/error.h:
	Add __printflike
	[f4a4cbeab]

	* plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/visudo.c, src/parse_args.c:
	Translate help / usage strings.
	[67cc4ff02]

	* plugins/sudoers/Makefile.in, src/Makefile.in:
	Set --msgid-bugs-address to the bugzilla url
	[d2384297a]

	* Makefile.in, common/Makefile.in, compat/Makefile.in, configure,
	configure.in, doc/Makefile.in, include/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_group/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in, zlib/Makefile.in:
	Add scaffolding to update .po files and install .mo files.
	[3164f5814]

	* doc/license.pod:
	update copyright year
	[8985ba0d6]

	* INSTALL, README:
	No need to include version number at the top of these files.
	[6b856c779]

2011-05-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/group_plugin.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/visudo.c:
	Minor warning/error cleanup
	[42a3966a8]

	* config.h.in, configure.in:
	Emulate ngettext for the non-nls case
	[0954a1b1c]

	* plugins/sudoers/ldap.c:
	Do not mark untranslatable strings for translation
	[27cb58514]

	* plugins/sudoers/check.c:
	Use ROOT_UID not 0.
	[6c28af155]

	* plugins/sudoers/check.c, plugins/sudoers/iolog.c,
	plugins/sudoers/logging.c, src/exec.c, src/exec_pty.c,
	src/load_plugins.c, src/sudo.c, src/sudo_edit.c:
	Minor warning/error message cleanup
	[7960bde2d]

	* plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/logging.c, plugins/sudoers/mon_systrace.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/visudo.c, src/exec.c,
	src/exec_pty.c, src/net_ifs.c, src/selinux.c:
	cannot -> "unable to" in warning/error messages
	[fce0b906e]

	* plugins/sudoers/check.c, plugins/sudoers/mon_systrace.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/visudo.c, src/exec_pty.c,
	src/sudo.c, src/utmp.c:
	can't -> "unable to" in warning/error messages
	[6f8cd9192]

	* configure, configure.in:
	FreeBSD needs the main sudo executable to link with -lpam when
	loading dynaic pam modules for some reason.
	[159d7e393]

2011-05-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c, src/exec.c, src/exec_pty.c, src/sudo.c:
	We don't want to translate debugging messages.
	[917c8d48a]

	* configure, configure.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/iolog.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/visudo.c,
	src/Makefile.in, src/sesh.c, src/sudo.c:
	Add calls to bindtextdomain() and textdomain() Currently there are
	two domains, one for the sudo front-end and one for the sudoers
	plugin and its associated utilities.
	[c3a259f5e]

	* configure, configure.in:
	Fix caching of libc gettext check.
	[19a81af6b]

	* plugins/sudoers/def_data.c, plugins/sudoers/defaults.c,
	plugins/sudoers/mkdefaults:
	Mark defaults descriptions for translation
	[4810662e9]

	* NEWS:
	Update for sudo 1.8.1p2
	[1a75992b8]

2011-05-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Quiet compiler warning when SELinux is enabled.
	[f6aea1072]

	* plugins/sudoers/plugin_error.c, plugins/sudoers/sudoreplay.c,
	src/error.c, src/net_ifs.c, src/sesh.c:
	Add missing includes of libintl.h.
	[c23436356]

	* plugins/sudoers/auth/pam.c:
	Fix gettext marker.
	[d006b00a4]

	* common/aix.c, common/alloc.c, compat/strsignal.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/sudoers.h, src/sudo.h:
	Include libint.h where needed.
	[15bc74bd6]

	* plugins/sudoers/alias.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/securid.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/check.c,
	plugins/sudoers/defaults.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/group_plugin.c,
	plugins/sudoers/interfaces.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_path.c, plugins/sudoers/ldap.c,
	plugins/sudoers/linux_audit.c, plugins/sudoers/logging.c,
	plugins/sudoers/parse.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/set_perms.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, plugins/sudoers/visudo.c:
	Prepare sudoers module messages for translation.
	[b643b190a]

	* plugins/sudoers/sudoers.c:
	Only check gid of sudoers file if it is group-readable.
	[24a087709]

	* plugins/sudoers/auth/aix_auth.c:
	For AIX, keep calling authenticate() until reenter reaches 0.
	[7708d5ce8]

2011-05-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Cache the status of the initial gettext() check.
	[4ff045b26]

	* INSTALL, configure, configure.in:
	Add --disable-nls flag and improve checks for gettext.
	[1994db70d]

	* configure, configure.in:
	When building with gcc on HP-UX, use -march=1.1 to produce portable
	binaries on a pa-risc2 host. Previously, the +Dportable option was
	used for the HP-UX C compiler but gcc always produced native
	binaries.
	[411737cf2]

2011-05-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/aix.c, common/alloc.c, compat/strsignal.c, src/error.c,
	src/exec.c, src/exec_pty.c, src/load_plugins.c, src/net_ifs.c,
	src/parse_args.c, src/selinux.c, src/sesh.c, src/sudo.c,
	src/sudo_edit.c, src/tgetpass.c, src/utmp.c:
	Prepare sudo front end messages for translation.
	[c865a462c]

2011-05-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, plugins/sudoers/auth/pam.c:
	Add initial scaffolding to support localization via gettext()
	[96b7c1f0f]

	* compat/fnmatch.h, compat/glob.h:
	Don't let the fnmatch/glob macros expand the function prototype.
	[5c3fbfd73]

2011-05-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/fnmatch.c, compat/fnmatch.h, compat/glob.c, compat/glob.h:
	Resolve namespace collisions on HP-UX ia64 and possibly others by
	adding a rpl_ prefix to our fnmatch and glob replacements and
	#defining rpl_foo to foo in the header files.
	[a1f6db3a0]

2011-04-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Split ALL, ROLE and TYPE into their own actions. Since you can only
	have #ifdefs inside of braces, ROLE and TYPE use a naughty goto in
	the non-SELinux case. This is safe because the actions are in one
	big switch() statement.
	[4dd3440cb]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix regexp for matching a CIDR-style IPv4 netmask. From Marc Espie.
	[189817a31]

2011-04-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/UPGRADE, doc/sudoers.pod:
	askpass moved from sudoers to sudo.conf in sudo 1.8.0
	[8a76ddfef]

	* doc/sudoers.pod:
	Remove obsolete warning about runas_default and ordering. Move
	syslog facility and priority lists into the section where the
	relevant options are described.
	[38f7dd359]

2011-04-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/sia.c:
	Fix SIA support; we no longer have access to the real argc and argv
	so allocate space for a fake one and use the argv passed to the
	plugin with "sudo" for argv[0].
	[435d8413b]

2011-04-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/net_ifs.c:
	Remove useless realloc when trying to get the buffer size right.
	[7dfb27fb3]

	* plugins/sudoers/set_perms.c:
	Be explicit when setting euid to 0 before call to setreuid(0, 0)
	[7c35601cf]

2011-04-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Need to do checks for krb5_verify_user, krb5_init_secure_context and
	krb5_get_init_creds_opt_alloc regardless of whether or not
	krb5-config is present.
	[f1bea0a21]

2011-04-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/set_perms.c:
	Work around weird AIX saved uid semantics on setuid() and
	setreuid(). On AIX, setuid() will only set the saved uid if the euid
	is already 0.
	[b08ad6083]

2011-04-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	update copyright year
	[2f24216e8]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Treat a missing includedir like an empty one and do not return an
	error.
	[c6ad6d29e]

2011-04-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pp:
	Fix ARCH setting in cross-compile Solaris packages.
	[55c3dfe39]

	* sudo.pp:
	Fix aix version setting.
	[cf5e8d9b7]

	* plugins/sudoers/ldap.c:
	Remove extraneous parens in LDAP filter when sudoers_search_filter
	is enabled that causes a search error. From Matthew Thomas.
	[b00cf92ef]

2011-04-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/iolog_path/check_iolog_path.c:
	Correct sizeof() to fix test failure.
	[2af217409]

	* plugins/sudoers/Makefile.in:
	"install" target should depend on "install-dirs". Fixes "make -j"
	problem and closes bz #487. From Chris Coleman.
	[365bd63e6]

2011-04-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	Add HAVE_RFC1938_SKEYCHALLENGE
	[1e72fa912]

2011-04-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Mention plugin loading and libgcc changes
	[11b133232]

	* src/load_plugins.c, src/sudo.c, src/sudo_plugin_int.h:
	Load plugins after parsing arguments and potentially printing the
	version. That way, an error loading or initializing a plugin doesn't
	break "sudo -h" or "sudo -V".
	[b6d0a28ef]

	* Makefile.in:
	When using a sub-shell to invoke the sub-make, exec make instead of
	running it inside the shell to avoid an extra process.
	[4b4f5bf32]

	* compat/regress/fnmatch/fnm_test.in,
	compat/regress/glob/globtest.c:
	Stop testing unspecified behavior in fnmatch Make glob test more
	portable
	[60e9e4dd8]

	* compat/Makefile.in:
	No need to add current dir to include path and having it breaks the
	test programs that expect to get the system glob.h and fnmatch.h
	[8720363f3]

	* INSTALL, configure, configure.in:
	Fix and document --with-plugindir; partially from Diego Elio Petteno
	[f52a6ccae]

	* compat/Makefile.in, compat/regress/fnmatch/fnm_test.c,
	compat/regress/fnmatch/fnm_test.in, compat/regress/glob/globtest.c,
	compat/regress/glob/globtest.in:
	Fix fnmatch and glob tests to not use hard-coded flag values in the
	input file. Link test programs with libreplace so we get our
	replacement verions as needed.
	[f949dbcc5]

	* Makefile.in:
	If make in a subdir fails, fail the target in the upper level
	Makefile too. Adapted from a patch from Diego Elio Petteno
	[698c5002d]

	* configure, configure.in, plugins/sudoers/auth/rfc1938.c:
	Add check for NetBSD-style 4-argument skeychallenge() as Gentoo also
	has this. Adapted from a patch from Diego Elio Petteno
	[233d90f2c]

	* plugins/sudoers/Makefile.in:
	Make SUDOERS_LDFLAGS reference $(LDFLAGS) instead of using @LDFLAGS@
	directly.
	[f6ffc8adf]

	* configure, configure.in:
	Fix warnings when -without-skey, --without-opie, --without-kerb4,
	--without-kerb5 or --without-SecurID were specified.
	[dcc4ec843]

	* MANIFEST:
	Add plugins/sudoers/sudoers_version.h
	[3a54719a6]

	* configure, configure.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in:
	Back out the --with-libpath addition to SUDOERS_LDFLAGS since that
	now include LDFLAGS in the sudoers Makefile.in. Add missing settng
	of @LDFLAGS@ in plugin Makefile.in files.
	[89cd8c2ff]

2011-04-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Mention %#gid support in User_List and Runas_List
	[dc19e4dff]

	* plugins/sudoers/sudoers.c, plugins/sudoers/sudoers_version.h,
	plugins/sudoers/visudo.c:
	Keep track of sudoers grammar version and report it in the -V
	output.
	[f1078bd28]

	* plugins/sudoers/sudo_nss.h:
	Add multiple inclusion guard
	[b9d15e825]

	* configure, configure.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in:
	The --with-libpath option now adds to SUDOERS_LDFLAGS as well as
	LDFLAGS. Remove old -static hack for HP-UX < 9. Add LTLDFLAGS and
	set it to -Wc,-static-libgcc if not using GNU ld so we don't have a
	dependency on the shared libgcc in sudoers.so.
	[021e2a94b]

	* doc/sudoers.pod:
	Fix typo; from Petr Uzel
	[e55bbb183]

2011-04-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/testsudoers.c:
	In dump-only mode, use "root" as the default username instead of
	"nobody" as the latter may not be available on all systems.
	[3ffb64986]

2011-03-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/testsudoers.c:
	Remove NewArgv/NewArgc, they are no longer needed.
	[129ccecd3]

	* plugins/sudoers/testsudoers.c:
	Fix setting of user_args
	[987e1dbe6]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add '!' token to lex tracing
	[c82e29f27]

	* plugins/sudoers/regress/testsudoers/test1.sh:
	Use group bin in test, not wheel as most systems have the bin group
	but the same is no longer true of wheel.
	[0e2d58863]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Avoid using pre or post increment in a parameter to a ctype(3)
	function as it might be a macro that causes the increment to happen
	more than once.
	[ca32055fd]

2011-03-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Strip off the beta or release candidate version when building AIX
	packages.
	[02f0775fe]

	* configure, configure.in:
	We need to include OSDEFS in CFLAGS when doing the utmp/utmpx
	structure checks for glibc which only has __e_termination visible
	when _GNU_SOURCE is *not* defined.
	[2534672f6]

	* common/aix.c:
	getuserattr(user, ...) will fall back to the "default" entry
	automatically, there's no need to check "default" manually.
	[e42331fd5]

2011-03-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/UPGRADE:
	Document parser changes.
	[51c812386]

	* Makefile.in, common/Makefile.in, compat/Makefile.in,
	doc/Makefile.in, include/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in, zlib/Makefile.in:
	If there is an existing sudoers file, only install if it passes a
	syntax check.
	[44c763c72]

	* plugins/sudoers/regress/sudoers/test6.out.ok,
	plugins/sudoers/testsudoers.c:
	Add runasgroup support to testsudoers
	[8b9d773ba]

	* plugins/sudoers/Makefile.in:
	For "make check", keep going even if a test fails.
	[5e067b273]

	* plugins/sudoers/testsudoers.c:
	More useful exit codes: * 0 - parsed OK and command matched. * 1 -
	parse error * 2 - command not matched * 3 - command denied
	[b87465b56]

	* doc/sudoers.pod:
	Document %#gid, and %:#nonunix_gid syntax.
	[335abe3a1]

	* plugins/sudoers/pwutil.c:
	Add support to user_in_group() for treating group names that begin
	with a '#' as gids.
	[b0be8d20c]

	* config.h.in, configure, configure.in, src/utmp.c:
	Add explicit check for struct utmpx.ut_exit.e_termination and struct
	utmpx.ut_exit.__e_termination. HP-UX uses the latter. Only update
	ut_exit if we detect one or the other.
	[53d183c38]

2011-03-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke.c:
	Add back missing #include of config.h
	[041b1a896]

	* plugins/sudoers/iolog_path.c,
	plugins/sudoers/regress/iolog_path/data:
	Avoid a NULL deref on unrecognized escapes. Collapse %% -> % like
	strftime() does.
	[353f31751]

	* aclocal.m4:
	Quote first argument to AC_DEFUN(); from Elan Ruusamae
	[c739a7052]

2011-03-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST:
	add new sudoers tests
	[8c975b278]

	* plugins/sudoers/regress/sudoers/test8.in,
	plugins/sudoers/regress/sudoers/test8.out.ok,
	plugins/sudoers/regress/sudoers/test8.toke.ok:
	Add test for a newline in the middle of a string when no line
	continuation character is used.
	[b485739ed]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Use bitwise AND instead of modulus to check for length being odd. A
	newline in the middle of a string is an error unless a line
	continuation character is used.
	[e3ff59e50]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Move lexer globals initialization into init_lexer.
	[45b82039b]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix a potential crash when a non-regular file is present in an
	includedir. Fixes bz #452
	[aed50b4d7]

	* pp:
	On some Linux systems, "uname -p" contains detailed processor info
	so check "uname -m" first and then "uname -p" if needed. Recognize
	PLD Linux.
	[03f949cf1]

2011-03-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/redblack.c:
	Don't need all sudoers.h here.
	[ba50e99cb]

	* src/sudo.c:
	Print sudo version early, in case policy plugin init fails.
	[e07ca146d]

2011-03-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/sudoers/test4.toke.ok:
	Update to match change in input.
	[e9f89d796]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Make an empty group or netgroup a syntax error.
	[31c164dae]

	* plugins/sudoers/regress/sudoers/test7.in,
	plugins/sudoers/regress/sudoers/test7.out.ok,
	plugins/sudoers/regress/sudoers/test7.toke.ok:
	An empty group or netgroup should be a syntax error.
	[c5cc89da1]

	* plugins/sudoers/regress/sudoers/test6.in,
	plugins/sudoers/regress/sudoers/test6.out.ok,
	plugins/sudoers/regress/sudoers/test6.toke.ok:
	Check that uids work in per-user and per-runas Defaults Check that
	uids and gids work in a Command_Spec
	[5438a0be6]

	* plugins/sudoers/regress/sudoers/test5.in,
	plugins/sudoers/regress/sudoers/test5.out.ok,
	plugins/sudoers/regress/sudoers/test5.toke.ok:
	Test empty string in User_Alias and Command_Spec
	[bc333ae44]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Allow a group ID in the User_Spec.
	[784d0dda3]

2011-03-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Return an error for the empty string when a word is expected. Allow
	an ID for per-user or per-runas Defaults.
	[fe1bc681b]

	* plugins/sudoers/testsudoers.c:
	Fix printing "User_Alias FOO = ALL"
	[cf8caed3b]

2011-03-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/parse_args.c:
	Better error message about invalid -C argument
	[71fa43ec4]

	* NEWS:
	fix typo
	[48d67f0df]

	* doc/sudoers.pod:
	Fix placement of equal size ('=') in user specification summary.
	[97b8dc7fe]

2011-03-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST:
	update to match sudoers regress
	[85e86d6ea]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Restore ability to define TRACELEXER and have trace output go to
	stderr.
	[06bf685b3]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Restore old behavior of setting sawspace = TRUE for command line
	args when a line continuation character is hit to avoid causing
	problems for existing sudoers files.
	[a2297743a]

	* plugins/sudoers/regress/sudoers/test4.in,
	plugins/sudoers/regress/sudoers/test4.out.ok,
	plugins/sudoers/regress/sudoers/test4.toke.ok:
	Add test for line continuation and aliases
	[0a4c00085]

	* plugins/sudoers/Makefile.in:
	Make test output line up nicely for parse vs. toke
	[2f6c096fb]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/sudoers/test1.in,
	plugins/sudoers/regress/sudoers/test1.out.ok,
	plugins/sudoers/regress/sudoers/test1.toke.ok,
	plugins/sudoers/regress/sudoers/test2.in,
	plugins/sudoers/regress/sudoers/test2.out.ok,
	plugins/sudoers/regress/sudoers/test2.toke.ok,
	plugins/sudoers/regress/sudoers/test3.in,
	plugins/sudoers/regress/sudoers/test3.out.ok,
	plugins/sudoers/regress/sudoers/test3.toke.ok,
	plugins/sudoers/regress/testsudoers/test1.out.ok,
	plugins/sudoers/regress/testsudoers/test1.sh,
	plugins/sudoers/regress/testsudoers/test3.sh,
	plugins/sudoers/regress/visudo/test1.ok:
	Move parser tests to sudoers directory and test the tokenizer output
	too.
	[830fce0f1]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	If we match a rule anchored to the beginning of a line after parsing
	a line continuation character, return an ERROR token. It would be
	nicer to use REJECT instead but that substantially slows down the
	lexer.
	[c7dd8399e]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l:
	Move LEXTRACE macro to toke.h so we can use it in yyerror().
	[edfb5cd7a]

2011-03-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/testsudoers.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l:
	Make lex tracing settable at run-time in testsudoers via the -t
	flag. Trace output goes to stderr. Will be used by regress tests to
	check lexer.
	[a27b3f340]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Allow whitespace after the modifier in a Defaults entry. E.g.
	"Defaults: username set_home"
	[f083e72a5]

2011-03-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	Don't set CC when cross-compiling.
	[3e41e39be]

	* NEWS:
	Credit Matthew Thomas for the sudoers_search_filter changes.
	[b87bd95d5]

	* MANIFEST:
	Add the .sym files to the MANIFEST
	[f7db83d9b]

	* NEWS:
	Update for sudo 1.8.1 beta
	[cc4e1a372]

	* doc/sudo_plugin.pod, plugins/sudoers/sudoers.c, src/parse_args.c:
	user_shell -> run_shell to avoid confusion with the user's SHELL
	variable.
	[33516ed82]

	* src/exec_pty.c:
	Save the controlling tty process group before suspending in pty
	mode. Previously, we assumed that the child pgrp == child pid (which
	is usually, but not always, the case).
	[5d7889c0d]

	* doc/sudoers.ldap.pod, plugins/sudoers/ldap.c:
	Add support for sudoers_search_filter setting in ldap.conf. This can
	be used to restrict the set of records returned by the LDAP query.
	[e8776da73]

2011-03-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Remove the hack to disable -g in CFLAGS unless --with-devel
	[13b9c7b17]

	* doc/sudoers.pod:
	The '@' character does not normally need to be quoted.
	[c91d2a08a]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	We normaly transition from GOTDEFS to STARTDEFS on whitespace, but
	if that whitespace is followed by a comma, we want to treat it as
	part of a list and not transition.
	[6170002e6]

	* plugins/sudoers/regress/testsudoers/test3.ok,
	plugins/sudoers/regress/testsudoers/test3.sh:
	Add check for whitespace when a User_List is used for a per-user
	Defaults entry.
	[b7487ae48]

	* plugins/sudoers/regress/testsudoers/test2.out,
	plugins/sudoers/regress/testsudoers/test2.sh:
	Expand quoted name checks to cover recent fixes.
	[1c0917aa3]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Fix parsing of double-quoted names in Defaultd and Aliases which was
	broken in 601d97ea8792.
	[88e35a193]

	* plugins/sudoers/Makefile.in:
	toke_util.c lives in $(srcdir) not $(devdir)
	[95bf62441]

2011-03-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Change trunk version to 1.8.x to distinguish from real 1.8.0.
	[27dbaa8de]

	* NEWS, doc/UPGRADE:
	Document major changes in 1.8.1 and add upgrade notes.
	[53ddb01f3]

	* plugins/sudoers/match.c:
	Be careful not to deref user_stat if it is NULL. This cannot
	currently happen in sudo but might in other programs using the
	parser.
	[092b4b4d0]

	* mkpkg:
	configure will not add -O2 to CFLAGS if it is already defined to add
	-O2 to the CFLAGS we pass in when PIE is being used.
	[de0df45cc]

	* doc/sudoers.pod:
	Warn about the dangers of log_input and mention iolog_file and
	iolog_dir in the log_input and log_output descriptions.
	[aa29582ac]

	* pp:
	sync with git version
	[5c228d424]

	* doc/sudoers.pod:
	It seems that h comes after i
	[639903f13]

	* doc/sudoers.pod:
	Move log_input and log_output to their proper, sorted, location.
	Document set_utmp and utmp_runas.
	[09f9796ea]

	* src/exec.c:
	Save the controlling tty process group before suspending so we can
	restore it when we resume. Fixes job control problems on Linux
	caused by the previous attemp to fix resuming a shell when I/O
	logging not enabled.
	[240642399]

	* common/lbuf.c:
	Fix printing of the remainder after a newline. Fixes "sudo -l"
	output corruption that could occur in some cases.
	[9e65afc15]

2011-03-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, src/exec_pty.c,
	src/sudo_exec.h, src/utmp.c:
	Add support for ut_exit
	[2041d39db]

	* doc/sudo_plugin.pod, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/sudoers.c, src/exec.c,
	src/exec_pty.c, src/sudo.c, src/sudo.h, src/sudo_exec.h, src/utmp.c:
	Add support for controlling whether utmp is updated and which user
	is listed in the entry.
	[3506f0107]

	* plugins/sudoers/def_data.h, plugins/sudoers/defaults.h,
	plugins/sudoers/ldap.c, plugins/sudoers/mkdefaults,
	plugins/sudoers/parse.c:
	Fix typo; tupple vs. tuple
	[cf7ec7a3c]

	* src/utmp.c:
	For legacy utmp, strip the /dev/ prefix before trying to determine
	slot since the ttys file does not include the /dev/ prefix.
	[07968755a]

	* aclocal.m4, configure, configure.in, pathnames.h.in:
	Add check for _PATH_UTMP
	[5e6bc4017]

2011-03-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/iolog_path/check_iolog_path.c:
	Adapt check_iolog_path to sessid changes
	[bf5f17bd6]

	* config.h.in, configure, configure.in, src/Makefile.in,
	src/exec_pty.c, src/sudo_exec.h, src/utmp.c:
	Redo utmp handling. If no getutent()/getutxent() is available,
	assume a ttyslot-based utmp. If getttyent() is available, use that
	directly instead of ttyslot() so we don't have to do the stdin dup2
	dance.
	[8653ccc80]

2011-03-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, src/Makefile.in, src/exec_pty.c, src/sudo_exec.h,
	src/utmp.c:
	Move utmp handling into utmp.c
	[1e9def1ef]

	* common/aix.c, common/alloc.c, common/fileops.c,
	common/fmt_string.c, common/lbuf.c, common/list.c, compat/isblank.c,
	compat/memrchr.c, compat/mksiglist.c, compat/nanosleep.c,
	compat/snprintf.c, compat/strlcat.c, compat/strlcpy.c,
	compat/strsignal.c, compat/utimes.c, doc/sudo.pod, doc/visudo.pod,
	include/sudo_plugin.h, plugins/sample/sample_plugin.c,
	plugins/sample_group/getgrent.c, plugins/sample_group/plugin_test.c,
	plugins/sudoers/alias.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb4.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/boottime.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/logging.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/redblack.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/timestr.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c, src/exec.c,
	src/exec_pty.c, src/get_pty.c, src/parse_args.c, src/sudo.c,
	src/sudo.h, src/sudo_edit.c, src/sudo_exec.h, src/sudo_noexec.c,
	src/sudo_plugin_int.h, src/tgetpass.c:
	Update copyright years.
	[53da5e8cd]

	* doc/sudo_plugin.pod, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/parse_args.c:
	Add "user_shell" boolean as a way to indicate to the plugin that the
	-s flag was given.
	[cde2cb00f]

	* plugins/sudoers/iolog_path.c, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers.h:
	Move sessid out of sudo_user.
	[6e2778eb2]

	* plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/logging.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Log the TSID even if it is not a simple session ID.
	[383aef00b]

	* doc/sample.sudo.conf, doc/sudo.pod, doc/sudoers.pod:
	Document noexec in sample.sudo.conf and add back noexec_file section
	in sudoers with a note that it is deprecated.
	[9660f08e3]

	* plugins/sudoers/set_perms.c:
	Fix running commands as non-root on systems where setreuid() changes
	the saved uid based on the effective uid we are changing to.
	[6bea3f524]

2011-03-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/defaults.c, src/load_plugins.c, src/sudo.c,
	src/sudo.h:
	Move noexec path into sudo.conf now that sudo itself handles noexec.
	Currently can be configured in sudoers too but is now undocumented
	and will be removed in a future release.
	[7debf4474]

	* doc/sudo.pod, doc/sudoers.pod:
	Document "Path noexec ..." in sudo.conf. No longer document
	noexec_file in sudoers, it will be removed in a future release.
	[dc8012265]

	* plugins/sudoers/env.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/sudo.c, src/sudo.h:
	Move noexec handling to sudo front-end where it is documented as
	being.
	[a092d2fdc]

	* config.h.in, configure, configure.in, plugins/sudoers/sudoers.c,
	src/exec.c, src/exec_pty.c, src/sudo.c, src/sudo.h, src/sudo_edit.c,
	src/sudo_exec.h:
	Add support for disabling exec via solaris privileges. Includes
	preparation for moving noexec support out of sudoers and into front
	end as documented.
	[c7a7d3190]

	* plugins/sample/Makefile.in, plugins/sample/sample_plugin.sym,
	plugins/sample_group/Makefile.in,
	plugins/sample_group/sample_group.sym, plugins/sudoers/Makefile.in,
	plugins/sudoers/sudoers.sym:
	Only export the symbols corresponding to the plugin structs.
	[7599034e6]

	* configure, configure.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in:
	Install plugins manually instead of using libtool. This works around
	a problem on AIX where libtool will install a .a file containing the
	.so file instead of the .so file itself.
	[498248d1f]

	* Makefile.in:
	Move check into its own rule since some versions of make will run
	both targets as the default rule.
	[c6f0c59bc]

	* configure, ltmain.sh, m4/libtool.m4, m4/ltoptions.m4,
	m4/ltversion.m4, m4/lt~obsolete.m4:
	Update to libtool 2.2.10
	[62edd57ab]

2011-03-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	In handle_signals(), restart the read() on EINTR to make sure we
	keep up with the signal pipe. Don't return -1 on EAGAIN, it just
	means we have emptied the pipe.
	[caefd1abd]

	* compat/mktemp.c:
	Reorder functions to quiet a compiler warning.
	[da24fe8c3]

	* mkpkg:
	Use the Sun Studio C compiler on Solaris if possible
	[1c633bb2b]

2011-03-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	Fix default setting of osversion variable.
	[206f5ff31]

	* doc/sudo_plugin.pod:
	Make two login_class entris consistent.
	[32cfe08a1]

	* config.h.in, configure, configure.in, src/exec.c, src/exec_pty.c,
	src/sudo_exec.h:
	Add support for adding a utmp entry when allocating a new pty.
	Requires the BSD login(3) or SYSV/POSIX getutent()/getutxent().
	Currently only creates a new entry if the existing tty has a utmp
	entry.
	[1496bfed6]

	* plugins/sudoers/boottime.c:
	Avoid pulling in headers we don't need on Linux For getutx?id(),
	call setutx?ent() first and always call endutx?ent().
	[9c9c0223e]

	* configure, configure.in:
	Add some more libs to SUDOERS_LIBS instead of relying on them to be
	pulled in by SUDO_LIBS.
	[2241947b3]

	* plugins/sudoers/sudoers.c:
	Fix return value of "sudo -l command" when command is not allowed,
	broken in [c7097ea22111]. The default return value is now TRUE and a
	bad: label is used when permission is denied. Also fixed missing
	permissions restoration on certain errors. On error()/errorx(), the
	password and group files are now closed before returning.
	[d6252de20]

2011-03-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c:
	Fix passing of login class back to sudo front end.
	[47968912a]

	* mkpkg:
	Add --osversion flag to specify OS instead of running "pp
	--probeonly"
	[7e1098734]

	* sudo.pp:
	Fix expr usage w/ GNU expr
	[b54425e04]

2011-03-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Fix exit value for validate and list mode.
	[e65bc35c6]

	* plugins/sudoers/sudoers.c:
	Fix non-interactive mode with sudoers plugin.
	[a0ba30869]

2011-03-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoreplay.pod:
	sudoreplay can now find IDs other than %{seq} and display the
	session.
	[6968367cb]

2011-03-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	Add support for replaying sessions when iolog_file is set to
	something other than %{seq}.
	[85e8e584a]

	* plugins/sudoers/visudo.c:
	If we are killed by a signal, display the name of the signal that
	got us.
	[f5e356ed4]

	* configure, configure.in:
	Move libs used for authentication from SUDO_LIBS to SUDOERS_LIBS
	where they belong.
	[3cc46dd70]

	* configure.in:
	Fix bug in skey/opie check that could cause a shell warning.
	[06a39eefb]

	* plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	No longer need sudo_getepw() stubs.
	[95512ae05]

2011-03-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudo_nss.c:
	Fix exit value of "sudo -l command" in sudoers module.
	[8ee8a0d87]

2011-03-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/regress/glob/globtest.c:
	Use fgets() not fgetln() for portability.
	[ca86faac9]

	* sudo.pp:
	Don't use the beta or release candidate version as the rpm release.
	[9d7a12e75]

2011-02-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	version 1.8.0
	[4333b0691]

	* NEWS:
	update sudo 1.8 section
	[c30fecb83]

2011-02-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/testsudoers/test2.sh:
	fix test description
	[4688f1ce6]

	* plugins/sudoers/regress/testsudoers/test2.out,
	plugins/sudoers/regress/testsudoers/test2.sh,
	plugins/sudoers/regress/visudo/test2.out:
	convert test2 to use testsudoers
	[a64bd36b3]

	* include/sudo_plugin.h, src/sudo_plugin_int.h:
	Move struct generic_plugin to sudo_plugin_int.h
	[e558b79e8]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/parse.c, plugins/sudoers/parse.h,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Allow sudoers file name, mode, uid and gid to be specified in the
	settings list. The sudo front end does not currently set these but
	may in the future.
	[3c0672e2e]

2011-02-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in, doc/sudo.cat, doc/sudo.man.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudoers.cat,
	doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in, doc/sudoers.man.in,
	doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/visudo.cat,
	doc/visudo.man.in:
	1.8.0rc1
	[74c4252c1]

	* doc/sudo.pod, doc/sudoreplay.pod, doc/visudo.pod,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/visudo.c,
	src/parse_args.c, src/sudo.h:
	add help text to sudo, visudo and sudoreplay for the -h option
	[59515a4a6]

2011-02-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/snprintf.c:
	avoid using "howmany" for a parameter name since it is a
	select-related macro
	[7b622a8ca]

	* doc/sudoers.pod:
	mention group_plugin when describing nonunix_group
	[315e54fd6]

	* doc/sudo_plugin.pod:
	Add missing period at end of sentence
	[0122e3be2]

	* Makefile.in, doc/Makefile.in, include/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_group/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	add localstatedir; closes bug 471
	[435e44808]

	* config.h.in, configure, configure.in,
	plugins/sudoers/sudoreplay.c, src/exec.c, src/exec_pty.c:
	The howmany macro lives in sys/sysmacros.h on SVR5 systems Closes
	Bug 470
	[39d9feb43]

	* configure.in:
	add missing AH_TEMPLATE for ENV_RESET
	[6e312fee0]

	* src/exec.c:
	SVR5 systems return non-zero for success on socketpair(), check for
	-1 instead. Closes Bug 469
	[a099aa7f2]

2011-02-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	1.8.0b5
	[554833c58]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo_plugin.cat,
	doc/sudo_plugin.man.in, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.man.in, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/visudo.cat, doc/visudo.man.in:
	regen
	[6983d782c]

	* doc/sudo.pod:
	Document that a sudo.conf file with no Pligin lines uses the default
	sudoers plugins.
	[b0d0e163c]

	* src/load_plugins.c:
	If sudo.conf contains no Plugin lines, use the default sudoers
	policy and I/O plugins.
	[011ba5511]

2011-02-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudo_nss.c:
	Avoid printing empty "Runas and Command-specific defaults for user"
	line.
	[c3d795ff9]

	* common/lbuf.c:
	Truncate the buffer at buf.len before printing in the non-wordwrap
	case.
	[151af9302]

	* common/lbuf.c:
	Remove extra newline when the tty width is very small or unavailable
	[ec00a1b58]

2011-02-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/alias.c:
	Remove unneeded variable.
	[289afc301]

2011-02-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Prefer getutxid over getutid
	[d66105838]

	* plugins/sudoers/boottime.c:
	Include utmp.h / utmpx.h before missing.h as apparently including it
	afterwards causes a compilation problem on GNU Hurd.
	[63449de85]

2011-02-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c, plugins/sudoers/toke_util.c:
	#include "foo.h", not <foo.h> for local includes.
	[429465003]

	* src/parse_args.c:
	remove bogus XXX
	[2d88a0988]

	* compat/mksiglist.c:
	Fix typo
	[2603e2ce8]

	* compat/glob.c, plugins/sudoers/ldap.c, plugins/sudoers/logging.c,
	plugins/sudoers/match.c:
	return foo not return(foo)
	[21d8f01fa]

2011-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	Remove duplicate FD_SET of signal_pipe[0]
	[056cb8a5d]

2011-02-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/mksiglist.c:
	Use "missing.h" not <missing.h> in generated code.
	[c8bb84806]

2011-02-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4, configure:
	fix --with-iologdir=no
	[cd6abe1d3]

	* aclocal.m4, configure:
	fix typo that broke --with-iologdir
	[e78e91282]

2011-02-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in, doc/sudo.cat, doc/sudo.man.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudoers.cat,
	doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in, doc/sudoers.man.in,
	doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/visudo.cat,
	doc/visudo.man.in:
	Bump version to 1.8.0b4
	[7f277d155]

	* NEWS:
	sync
	[d341cad4e]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	Attempt to clarify how users and groups interact in Runas_Specs
	[521ee9c53]

	* plugins/sudoers/regress/visudo/test2.out,
	plugins/sudoers/regress/visudo/test2.sh:
	Add test for quoted group that contains escaped double quotes
	[310867e4e]

	* src/exec.c, src/exec_pty.c:
	Pass SIGUSR1/SIGUSR2 through to the child.
	[5fc2f8f45]

	* src/exec_pty.c, src/sudo_exec.h:
	Use special values SIGCONT_FG and SIGCONT_BG instead of SIGUSR1 and
	SIGUSR2 to indicate whether the child should be continued in the
	foreground or background.
	[2959d5dad]

	* src/exec.c:
	Use pid_t not int and check the return value of kill()
	[34a087acf]

2011-02-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Remove obsolete comment
	[82c85571c]

	* src/exec.c:
	In non-pty mode before continuing the child, make it the foreground
	pgrp if possible. Fixes resuming a shell.
	[29f9e23c8]

	* src/exec_pty.c:
	If we get a signal other than SIGCHLD in the monitor, pass it
	directly to the child.
	[8a64a8c79]

	* src/exec.c, src/exec_pty.c, src/sudo.h:
	Save signal state before changing handlers and restore before we
	execute the command.
	[c18468d1a]

2011-02-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Use a char array to map a number to a base36 digit.
	[af2ac7ccc]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.pod:
	Be clear about what versions of sudo support new LDAP attributes.
	Fix up some formatting of attribute names. Minor other tweaks.
	[6fd9d853a]

2011-01-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	match quoted strings the same way whether in a Defaults line or as a
	user/group/netgroup name. Fixes escaped double quotes in quoted
	user/group/netgroup names.
	[342e351d5]

	* plugins/sudoers/Makefile.in:
	'make check' depends on visudo and testsudoers
	[4ce8e4b3f]

	* plugins/sudoers/sudoers2ldif:
	Add sudoOrder attribute to each entry Parse LOG_{INPUT,OUTPUT} tags
	[68e492179]

2011-01-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/UPGRADE:
	Mention LDAP attribute compatibility status.
	[d9c72b224]

2011-01-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README.LDAP:
	Mention phpQLAdmin
	[3b112a17c]

	* INSTALL, NEWS, config.h.in, configure, configure.in,
	doc/sudoers.man.in, doc/sudoers.pod, plugins/sudoers/defaults.c:
	Add --disable-env-reset configure option.
	[ed8e30cf6]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	Document that sudoers_locale also affects logging and email.
	[180b31764]

	* NEWS, config.h.in, configure, configure.in,
	plugins/sudoers/logging.c:
	Do logging and email sending in the locale specified by the
	"sudoers_locale" setting ("C" by default). Email send by sudo
	includes MIME headers when the sudoers locale is not "C".
	[807a9ca94]

2011-01-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	Fix indentation
	[39b9b97db]

2011-01-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, src/parse_args.c, src/sudo.c:
	Perform command escaping for "sudo -s" and "sudo -i" after
	validating sudoers so the sudoers entries don't need to have all the
	backslashes.
	[fc3848166]

2011-01-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/logging.c:
	Prepend "list " to the command logged when "sudo -l command" is used
	to make it clear that the command was listed, not run.
	[51515c6c0]

	* plugins/sudoers/parse.c:
	cosmetic change
	[1f5c1dda1]

	* common/aix.c, common/alloc.c, common/fileops.c,
	common/fmt_string.c, common/list.c, common/term.c, compat/fnmatch.c,
	compat/getcwd.c, compat/glob.c, compat/isblank.c, compat/memrchr.c,
	compat/mktemp.c, compat/nanosleep.c, compat/regress/glob/globtest.c,
	compat/snprintf.c, compat/strlcat.c, compat/strlcpy.c,
	compat/strsignal.c, compat/utimes.c, plugins/sample/sample_plugin.c,
	plugins/sample_group/getgrent.c, plugins/sample_group/plugin_test.c,
	plugins/sudoers/alias.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb4.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/check.c, plugins/sudoers/defaults.c,
	plugins/sudoers/find_path.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/match.c, plugins/sudoers/mon_systrace.c,
	plugins/sudoers/parse.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/redblack.c, plugins/sudoers/set_perms.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestr.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/toke_util.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c,
	src/exec_pty.c, src/get_pty.c, src/load_plugins.c, src/parse_args.c,
	src/sudo_noexec.c, src/tgetpass.c:
	standardize on "return foo;" rather than "return(foo);" or "return
	(foo);"
	[ae2f7638f]

	* plugins/sudoers/sudoers.c:
	Do not reject sudoers file just because it is root-writable.
	[3316ac8eb]

2011-01-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	sync
	[48990e211]

	* plugins/sudoers/sudo_nss.c:
	For "sudo -U user -l" if user is not authorized on the host, say so.
	[fbbd0603d]

	* plugins/sudoers/ldap.c:
	In sudo_ldap_lookup(), always do the initial sudoers check as the
	invoking user. If we are listing another user's privs we will do a
	separate lookup using list_pw later.
	[be034d5e7]

2011-01-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST:
	add parser fill tests
	[dbb830c79]

	* compat/regress/glob/globtest.c, compat/regress/glob/globtest.in:
	Don't test features not supported by the bundled glob()
	[4cc54e4b8]

	* Makefile.in, aclocal.m4, common/Makefile.in, common/term.c,
	compat/Makefile.in, configure.in, doc/LICENSE, doc/Makefile.in,
	doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.pod, doc/sudoers.man.in,
	doc/sudoers.pod, include/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/check.c, plugins/sudoers/defaults.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/ldap.c, plugins/sudoers/match.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c, src/Makefile.in, zlib/Makefile.in:
	Update copyright year to 2011
	[f7f8b6867]

	* plugins/sudoers/sudo_nss.c:
	When listing, use separate lbufs for the defaults and the privileges
	and only print something if the number of privileges is non-zero.
	Fixes extraneous Defaults output for "sudo -U unauthorized_user -l".
	[96767abfe]

	* plugins/sudoers/ldap.c:
	Stash pointer to user group vector in LDAP handle and only reuse the
	query if it has not changed. We always allocate a new buffer when we
	reset the group vector so a simple pointer check is sufficient.
	[215500bb5]

	* plugins/sudoers/sudo_nss.c:
	Check initgroups() return value.
	[165dcfa37]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/parser/check_fill.c:
	Add tests for the fill functions in toke_util.c
	[7cbd1ff72]

2011-01-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/regress/iolog_path/check_iolog_path.c:
	fix copyright year
	[79dff677d]

	* NEWS:
	sync
	[6565899ba]

2011-01-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/term.c:
	Clear, don't set, OPOST in c_oflag as was intended in 506ad5ae9b4e.
	[4f953d839]

2011-01-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg, sudo.pp:
	Add Requires line for audit-libs >= 1.4 for RHEL5+
	[5b5a173ff]

	* pp:
	sync with git version
	[add7f327e]

2011-01-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	fix typo
	[0726c8fe2]

2011-01-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Update for sudo 1.7.4p5
	[3792df2bd]

	* doc/schema.OpenLDAP, doc/schema.iPlanet:
	Add sudoNotBefore and sudoNotAfter attributes as optional attributes
	to the sudoRole object class. From Andreas Mueller
	[12895f77a]

2011-01-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS:
	Mention "sudo -g group" password check fix.
	[5b0a50d51]

	* plugins/sudoers/sudoers.c:
	Fix "sudo -g" support in the sudoers module.
	[e7a4529cf]

	* plugins/sudoers/check.c:
	If the user is running sudo as himself but as a different group we
	need to prompt for a password.
	[2d74e9567]

2011-01-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* NEWS, config.h.in, configure, configure.in, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.ldap.pod,
	plugins/sudoers/ldap.c:
	Add support for TIMEOUT in ldap.conf, mapping to the OpenLDAP
	LDAP_OPT_TIMEOUT. There is no corresponding option for
	mozilla-derived LDAP SDKs but we can pass the timeout parameter to
	ldap_search_ext_s() or ldap_search_st() when possible.
	[49409b7c5]

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in:
	regen
	[a628fee98]

	* NEWS, doc/sudoers.ldap.pod, plugins/sudoers/ldap.c:
	Add NETWORK_TIMEOUT as an alias for BIND_TIMELIMIT for compatibility
	with OpenLDAP ldap.conf files.
	[823e81272]

	* plugins/sudoers/pwutil.c:
	If user has no supplementary groups, fall back on checking the group
	file expliticly.
	[8a043ca56]

2011-01-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke.h, plugins/sudoers/toke_util.c:
	constify
	[e63849afb]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.h,
	plugins/sudoers/toke.l:
	Move fill macro to toke.h
	[4cc6322b4]

	* MANIFEST, plugins/sudoers/Makefile.in, plugins/sudoers/toke.c,
	plugins/sudoers/toke.h, plugins/sudoers/toke.l,
	plugins/sudoers/toke_util.c:
	Split tokenizer utility functions out into toke_util.c
	[400b6ffe2]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	ANSIfy
	[866ffd0bd]

2011-01-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST:
	sync
	[385eeeb13]

	* plugins/sudoers/Makefile.in:
	Add visudo tests to check target
	[e8cc22c0c]

	* compat/Makefile.in, compat/regress/fnmatch/fnm_test.c,
	compat/regress/fnmatch/fnm_test.in, compat/regress/glob/files,
	compat/regress/glob/globtest.c, compat/regress/glob/globtest.in:
	Add my regress tests for fnmatch() and glob() from OpenBSD.
	[ac857d6e9]

	* plugins/sudoers/regress/testsudoers/test1.sh,
	plugins/sudoers/regress/visudo/test1.ok,
	plugins/sudoers/regress/visudo/test1.sh:
	Add regress test for command tags using visudo -c
	[460f760ca]

	* plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/testsudoers/test1.ok,
	plugins/sudoers/regress/testsudoers/test1.sh:
	Add support for regress tests using testsudoers
	[b679e0319]

	* plugins/sudoers/testsudoers.c:
	Need to set user_name explicitly due to internal changes made when
	converting sudoers to a plugin.
	[217d29611]

2011-01-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, Makefile.in, common/Makefile.in, compat/Makefile.in,
	doc/Makefile.in, include/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/regress/iolog_path/check_iolog_path.c,
	plugins/sudoers/regress/iolog_path/data, src/Makefile.in,
	zlib/Makefile.in:
	Add regression tests for iolog_path()
	[1defd7b45]

	* Makefile.in, common/Makefile.in, compat/Makefile.in,
	doc/Makefile.in, include/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in, zlib/Makefile.in:
	Add support for "make Makefile" to regenerate Makefile from
	Makefile.in
	[f8de3f632]

	* plugins/sudoers/iolog_path.c:
	Quiest a bogus compiler warning.
	[d2596e3f7]

2011-01-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog_path.c:
	Protect call to setlocale() with HAVE_SETLOCALE
	[f09bbcb6b]

2011-01-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST:
	mkstemps.c was renamed mktemp.c
	[42f7a6c25]

	* NEWS:
	Update from 1.7 branch
	[f3552b061]

	* Makefile.in:
	Use "mv -f" when regenerating ChangeLog
	[d6013eb96]

	* plugins/sudoers/match.c:
	Fix NULL dereference with "sudo -g group" when the sudoers rule has
	no runas user or group listed. Fixes RedHat bug Bug 667103.
	[b92b745ea]

2011-01-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Correct the default sudo.conf example
	[33201c04e]

2010-12-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog_path.c:
	Reset slashp if we allocate a new buffer for strftime()
	[b76c79885]

	* plugins/sudoers/iolog_path.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Add extra out parameter to expand_iolog_path() to allow the caller
	to split the path into dir and file components if needed.
	[1bb3518b3]

2010-12-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	mkdir_iopath() returns size_t now that it uses strlcpy() and not
	snprintf()
	[755e3ef0a]

	* plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c:
	Trim leading slashes from iolog_file and trailing slashes from
	iolog_dir
	[7f580397e]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	plugins/sudoers/iolog.c, plugins/sudoers/iolog_path.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Pass a single I/O log file name in command_details instead of
	separate dir + file parameters.
	[25036d7a7]

	* plugins/sudoers/sudoreplay.c:
	change an error() to errorx()
	[2fb085dfa]

	* plugins/sudoers/iolog.c:
	Add missing cwd line to I/O log info file that got dropped when
	iolog_deserialize_info() was added
	[83de9e28f]

2010-12-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Avoid relying on globals filled in by the sudoers policy module for
	the sudoers I/O log module. The I/O log open function now pulls the
	bits it needs out of user_info and command_info.
	[fec059a89]

	* plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	If no iolog file is specified by the policy plugin, use io_nextid()
	to determine the next file in the sequence.
	[97b7ae889]

2010-12-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Document iolog_compress in command_info
	[3f6f61f85]

	* plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c:
	Add support for the iolog_compress variable in command_info.
	[02ed3d5b3]

	* plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c:
	Add sigsetjmp() calls to all plugin entry points just to be safe.
	[bff14f60e]

	* src/sudo.c, src/sudo.h:
	Don't need iolog variables in struct command_details, they are for
	the I/O log plugins to handle.
	[5966b67dd]

2010-12-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	Document use of mkdtemp() for iolog path teplates
	[21dd6af79]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo_plugin.cat,
	doc/sudo_plugin.man.in, doc/sudoers.cat, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/sudoers.man.in, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/visudo.cat, doc/visudo.man.in:
	regen
	[e3cd512bf]

	* doc/sudo_plugin.pod, doc/sudoers.pod:
	Document iolog_file and supported escape sequences for sudoers.
	Clarify that iolog_file can contain directories.
	[05807cf5e]

	* compat/Makefile.in, configure, configure.in:
	Fix building of mkstemps/mkdtemp replacements.
	[b8499baaa]

	* compat/mktemp.c, config.h.in, configure, configure.in,
	include/missing.h:
	Provide mkdtemp() for systems without it.
	[5cf56a77e]

	* plugins/sudoers/iolog_path.c:
	Fix typo
	[36d8fbb90]

	* plugins/sudoers/iolog.c:
	Only use mkdtemp() if the path ends in at least 6 Xs since otherwise
	glibc mkdtemp() returns EINVAL.
	[4c1aecd48]

	* plugins/sudoers/Makefile.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/iolog.c,
	plugins/sudoers/iolog_path.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Allow sudoers to specify the iolog file in addition to the iolog
	dir. Add escape sequence support to iolog file and dir: sequence
	number, user, group, runas_user, runas_group, hostname and command
	in addition to any escape sequence recognized by strftime(3).
	[fba58fa3f]

	* plugins/sudoers/iolog.c:
	Add missing sigsetjmp() call in I/O plugin open function. Fixes a
	crash when the I/O plugin calls error(), errorx() or log_error().
	[524021a37]

2010-12-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.pod, plugins/sudoers/iolog.c,
	plugins/sudoers/sudoers.c:
	Give the policy module fine-grained control over what the I/O plugin
	logs.
	[5d59c10b9]

	* common/term.c:
	Clear OPOST from c_oflag like we used to. Fixes screen-based editors
	such as vi.
	[6505d10cc]

	* doc/sudoers.pod:
	Clarify umask option description. From Reuben Thomas.
	[ad41fb497]

2010-12-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.pod, plugins/sudoers/ldap.c:
	Pick last match in LDAP sudoers too
	[93e963584]

	* doc/sudo_plugin.pod:
	Document iolog_file, iolog_dir and use_pty
	[4294e4db8]

	* plugins/sample/sample_plugin.c, plugins/sudoers/iolog.c,
	plugins/sudoers/sudoers.c:
	Adapt plugins to version I/O logging ABI 1.1
	[a10f21679]

	* src/exec.c, src/sudo.h:
	Add use_pty command_info flag for policies to indicate that a pty
	should be allocated even if no I/O logging is performed.
	[c833ff02b]

	* src/sudo.c:
	Add remaining plugin convenience functions
	[c1a22ff15]

	* include/sudo_plugin.h, src/sudo.c, src/sudo.h,
	src/sudo_plugin_int.h:
	Change I/O log API to pass in command info to the I/O log open
	function. Add iolog_file and iolog_dir parameters to command info.
	This allows the policy plugin to specify the I/O log pathname. Add
	convenience functions for calling plugin functions that handle ABI
	backwards compatibility.
	[9948dae70]

	* compat/dlopen.c:
	Remove useless cast
	[30797ab8a]

2010-12-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Bump version to 1.8.0b3
	[6649afddb]

2010-12-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	Remove extraneous newline
	[aa8a996d5]

2010-12-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.pod, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/iolog.c:
	Make I/O log dir configurable.
	[b2a698460]

	* aclocal.m4, configure, configure.in, doc/sudoers.pod:
	Rename io_logdir to iolog_dir
	[6c2368851]

2010-12-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pp:
	Add missing '*' that prevented the generic ELF case from matching.
	[14d792dff]

	* pp:
	If file(1) can't identify the ELF binary type, try readelf(1).
	[d734f6b41]

2010-11-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/kerb4.c, plugins/sudoers/check.c,
	plugins/sudoers/env.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/sudoers.c, src/sudo.c:
	Use %u to print uid/gid, not %lu and adjust casts to match.
	[4527bdd9b]

	* doc/sudoers.ldap.pod:
	Clarify ordering of entries and attributes.
	[3f605ebfa]

	* doc/sudoers.ldap.pod:
	Fix typo and editing goof.
	[23df0b6fa]

	* doc/schema.ActiveDirectory, doc/schema.OpenLDAP,
	doc/schema.iPlanet, doc/sudoers.ldap.pod:
	Merge in ordered LDAP entry support from Andreas Mueller.
	[feb02ed40]

	* plugins/sudoers/ldap.c:
	Make sure we don't dereference a NULL handle.
	[7e59d4c5c]

2010-11-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pp:
	Add support for RHEL 6 file modes that include a trailing dot on
	files with an SELinux security context
	[7e087f09d]

2010-11-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo.c:
	exec_setup() does not need to setuid(0), the Ubuntu issue was in the
	sudoers module.
	[d0d0e1b9f]

	* plugins/sudoers/sudoers.c:
	create_admin_success_flag() should use restore_perms() rather than
	set_perms() to restore the uid.
	[8f4b21521]

	* src/sudo.c:
	In exec_setup() call setuid(0) to make certain the subsequent uid
	and gid changes will succeed. Fixes a problem on Ubuntu.
	[d39747e6a]

	* src/sudo_edit.c:
	Error out if we cannot change to root's uid so we catch the failure
	early.
	[d869ca1f9]

2010-11-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.pod:
	fix typo; from Michael T Hunter
	[bb4a8a4dc]

	* plugins/sudoers/match.c:
	In sudoedit mode, assume command line arguments are paths and pass
	FNM_PATHNAME to fnmatch().
	[70cf50fd2]

2010-11-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Add workaround for an error in sys/types.h on HP-UX 11.23 when large
	file support is enabled. Defining _XOPEN_SOURCE_EXTENDED avoids the
	broken bits of the header file.
	[81da78ff3]

	* aclocal.m4:
	Fix SUDO_MAILDIR usage of AC_LANG_PROGRAM
	[5bd089776]

	* sudo.pp:
	For Tru64, strip off beta version.
	[494bd14de]

	* MANIFEST, plugins/sudoers/testsudoers.c,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/tsgetgrpw.h:
	Avoid conflicts with system definitions in grp.h and pwd.h
	[5a0f2164e]

	* zlib/gzguts.h:
	Include stdio.h after zlib.h, not before. We need the large file
	defines to come first.
	[5a4762b2b]

2010-11-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in:
	regen
	[901ca2a12]

	* Makefile.in:
	Don't clean ChangeLog
	[45da48440]

	* plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Add prototype for cleanup()
	[51f401fa3]

2010-11-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/group_plugin.c:
	Avoid deferencing group_plugin if it is NULL in
	group_plugin_query(). This should not happen.
	[c73306983]

	* plugins/sudoers/group_plugin.c:
	group plugin init function return TRUE when successful
	[4b2fb225c]

2010-11-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Enlarge the array of entry wrappers int blocks of 100 entries to
	save on allocation time. From Andreas Mueller
	[ef5f73a49]

	* plugins/sudoers/ldap.c:
	Add back call to sudo_ldap_timefilter() in sudo_ldap_build_pass2()
	that was mistakenly dropped.
	[f9353d95c]

2010-11-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/TROUBLESHOOTING:
	Mention that sudo needs "ar" to build.
	[ab651135d]

	* configure, configure.in:
	Fail with a more useful error if "ar" is not found.
	[4c2dcaa10]

2010-11-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Merge in ordered LDAP entry support from Andreas Mueller and add
	local changes from the 1.7 branch.
	[8940f361e]

2010-11-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/schema.ActiveDirectory, doc/schema.OpenLDAP,
	doc/schema.iPlanet, doc/sudoers.ldap.pod, plugins/sudoers/ldap.c:
	Add timed entry support from Andreas Mueller.
	[2b0fca31c]

	* plugins/sudoers/group_plugin.c:
	Don't try to unload if group_plugin is NULL. Don't call dlclose() if
	group_handle is NULL
	[82453cfde]

	* plugins/sudoers/sudoers.h:
	It is now plugin_cleanup(), not cleanup()
	[26d71ded7]

	* plugins/sudoers/logging.c, plugins/sudoers/sudoers.c:
	Call plugin_cleanup(), not cleanup()
	[5536ea49f]

2010-11-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Use efree() not free() and remove malloc.h include since we never
	directly call malloc() or free().
	[8597c3919]

2010-11-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	set PSTAMP for Solaris and move the backend-specific bits to their
	own %if [xxx] %endif blocks in %set.
	[4733872cb]

	* pp:
	sync with git repo
	[f6c8ba107]

	* configure, configure.in:
	Only substitute file zlib files when using the builtin zlib
	[d4e323c11]

	* common/Makefile.in, compat/Makefile.in,
	plugins/sample/Makefile.in, plugins/sample_group/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in, zlib/Makefile.in:
	Give up on using VPATH to find sources as it is implemented
	inconsistenly in different versions of make.
	[47323843a]

	* plugins/sudoers/Makefile.in, plugins/sudoers/getdate.c,
	plugins/sudoers/gram.c, plugins/sudoers/toke.c:
	Include config.h before any other includes to make sure we get the
	right value for _FILE_OFFSET_BITS.
	[39d1167f3]

	* MANIFEST:
	Add zlib
	[aef91eb1d]

	* zlib/Makefile.in:
	Add missing targets
	[19c1675be]

	* src/Makefile.in:
	g/c unused $(GENERATED)
	[c6965a530]

2010-11-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/group_plugin.c:
	Zero out group_plugin on unload just to be safe.
	[452d8765b]

	* plugins/sudoers/group_plugin.c:
	Unload group plugin if its init function fails.
	[da35e5f42]

	* src/sudo.c:
	Only chdir to cwd if it is different from the current cwd or there
	is a new root (chroot).
	[01dcbfce7]

	* configure, configure.in, doc/sudo.cat, doc/sudo.man.in,
	doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudoers.ldap.cat,
	doc/sudoers.ldap.man.in, doc/visudo.cat, doc/visudo.man.in:
	Bump version to 1.8.0b2
	[852882750]

2010-10-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	Better --enable-zlib description
	[d54dd245a]

	* mkpkg:
	Use system zlib on Linux Let configure decide on Solaris For all
	others, use builtin zlib
	[1c0849853]

	* zlib/zconf.h.in:
	Add large file support.
	[3591af576]

	* config.h.in:
	Add large file support.
	[6247b8546]

	* Makefile.in, configure, configure.in, doc/LICENSE,
	doc/license.pod, zlib/Makefile.in, zlib/adler32.c, zlib/compress.c,
	zlib/crc32.c, zlib/crc32.h, zlib/deflate.c, zlib/deflate.h,
	zlib/gzclose.c, zlib/gzguts.h, zlib/gzlib.c, zlib/gzread.c,
	zlib/gzwrite.c, zlib/infback.c, zlib/inffast.c, zlib/inffast.h,
	zlib/inffixed.h, zlib/inflate.c, zlib/inflate.h, zlib/inftrees.c,
	zlib/inftrees.h, zlib/trees.c, zlib/trees.h, zlib/uncompr.c,
	zlib/zconf.h.in, zlib/zlib.h, zlib/zutil.c, zlib/zutil.h:
	Add local copy of zlib for systems that lack it.
	[361cd2907]

2010-10-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	If perform_io() fails, kill the child before exiting so it doesn't
	complain about connection reset. We can get an I/O error if, for
	example, and we get EIO reading from stdin.
	[a11e4c8d7]

2010-10-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c, src/sudo.c:
	Fix complilation on systems with set_auth_parameters() Sprinkle
	volatile to quiet warnings from gcc 2.8.0
	[93d2420de]

	* compat/dlfcn.h, compat/dlopen.c:
	Avoid potential namespace issues with dlopen() emulation.
	[e4abd86c6]

	* MANIFEST:
	sync
	[609c5db8f]

	* plugins/sudoers/interfaces.c:
	Use INADDR_NONE instead of casting -1 to in_addr_t (which may not
	exist).
	[c615ca742]

	* Makefile.in:
	Mark ChangeLog as PHONY Don't overwrite ChangeLog if we can't run hg
	[a178a430a]

	* configure, configure.in:
	HP-UX 10.20 libc has an incompatible getline
	[49d1142df]

	* plugins/sudoers/visudo.c:
	Quiet an HP-UX compiler warning.
	[1e01f2b7a]

	* configure, configure.in:
	Check for vi even with --with-editor specified; the sample plugin
	needs it.
	[56bdfe941]

2010-10-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/dlopen.c:
	Fix remaining syntax errors.
	[070446bc3]

	* src/Makefile.in:
	sudo binary depends on the libtool-generated libs
	[298d0cbe2]

	* plugins/sudoers/group_plugin.c, src/load_plugins.c:
	Use HAVE_DLOPEN instead of HAVE_DLFCN_H when determining whether to
	include the local or system dlfcn.h
	[86a4a5232]

	* pp:
	Don't use run_as_superuser=false on HP-UX
	[798fc86a9]

	* src/net_ifs.c:
	Use memset() instead of zero_bytes() since we don't include
	sudoers.h
	[3ff8d5e78]

	* plugins/sudoers/interfaces.c:
	Fix pasto; AF_INET not AF_INET6
	[06b0aa118]

	* compat/dlopen.c:
	Actually call shl_load()
	[de6853848]

	* pp:
	Update from git repo. Debian: version numbers now compliant with
	policy section 5.6.12 HP-UX: minimal changes needed to work on HP-UX
	10.20
	[e2e5cfe18]

	* configure, configure.in:
	Fix dlopen() detection for systems where dlopen() is in a separate
	library.
	[443d18b11]

	* plugins/sudoers/auth/pam.c:
	If pam_acct_mgmt() returns PAM_AUTH_ERR print a (hopefully) more
	useful message and return AUTH_FATAL so sudo does not keep trying to
	validate the user.
	[6a5205414]

	* src/preload.c:
	sudo_preload_table is an array
	[5fc7233d2]

	* compat/dlopen.c:
	Quiet a compiler warning and fix sudo_preload_table external
	definition.
	[86d3e4bf0]

	* compat/dlfcn.h:
	Fix multiple inclusion guard in dlfcn.h and fix dlerror() prototype.
	[dc327471b]

	* plugins/sudoers/group_plugin.c:
	Make this compile correctly when no dlopen is available.
	[751f597b2]

2010-10-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	Having a timestamp file defined is no longer indicative of tty
	tickets being enabled. Check def_tty_tickets directly.
	[66ea39985]

	* src/exec_pty.c, src/sudo.h, src/ttysize.c:
	Fix TCGETWINSZ compat.
	[e2f253e51]

2010-10-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c, src/ttysize.c:
	Prefer newer TIOCGWINSZ ioctl to old TIOCGSIZE
	[1a4990f57]

2010-10-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c, src/sudo.c:
	Move set_project() from sudoers module into sudo proper.
	[6b4fe798d]

	* configure, configure.in:
	Fix typo and regenerate
	[e59fa31ba]

	* plugins/sudoers/ldap.c:
	When iterating over returned LDAP entries, keep looking at remaining
	matches even if we have a positive match. This catches negative
	matches that may exist in other entries and more closely match the
	sudoers file behavior.
	[a627c60de]

	* pp:
	Add support for multiple package instances on Solaris.
	[acaceb424]

	* src/exec.c:
	Add missing signal_pipe[0] to fdsr for the non-pty case.
	[413b7b55d]

	* mkpkg:
	Add --with-project for Solaris
	[d93df4e87]

	* README:
	Need ar and ranlib too
	[2bae9e2cb]

2010-09-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/env.c:
	Preserve ODMDIR environment variable by default on AIX.
	[614e2a642]

2010-09-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, compat/Makefile.in, compat/dlfcn.h, compat/dlopen.c,
	config.h.in, configure, configure.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/group_plugin.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/sudoers.c, src/Makefile.in, src/load_plugins.c,
	src/preload.c:
	Add dlopen() emulation for systems without it. For HP-UX 10, emulate
	using shl_load(). For others, link sudoers plugin statically and use
	a lookup table to emulate dlsym().
	[f538ed4e3]

2010-09-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/fnmatch.c, compat/glob.c, compat/mksiglist.c,
	compat/nanosleep.c, compat/utimes.c:
	When including compat headers, use the compat dir as part of the
	path so we are sure to get the correct header.
	[b0b57fbef]

2010-09-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/linux_audit.c:
	Ignore ECONNREFUSED from audit_log_user_command() which will occur
	if auditd is not running.
	[590eed3bd]

2010-09-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pp:
	Sync with git version
	[89f161ad8]

2010-09-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/fileops.c, plugins/sudoers/defaults.c:
	Cast isblank argument to unsigned char.
	[48d7c7833]

2010-09-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, config.h.in, configure, configure.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.pod, plugins/sudoers/defaults.c:
	Implement --with-umask-override configure flag.
	[b51afe624]

	* plugins/sudoers/env.c:
	Take MODE_LOGIN_SHELL into account when initially setting reset_home
	instead of special-casing it later.
	[ed45e68da]

	* plugins/sudoers/sudoers.c:
	In login mode, make a copy of the runas user's pw_shell for
	NewArgv[0] because 1) we modify it and 2) it will runas_pw gets
	freed before exec.
	[53f9cfe06]

	* plugins/sudoers/env.c:
	Reset HOME for "sudo -i" even if HOME was listed in env_keep.
	[ce942f18c]

	* src/sudo.c:
	Use SIG_SETMASK when resetting signal mask instead of SIG_UNBLOCK.
	[ece29bdea]

	* src/sudo.c:
	Reset signal mask at sudo startup time; we need to be able to rely
	on normal signal delivery to control the child process.
	[01c7840dc]

2010-09-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* install-sh:
	Use sed instead of expr to split a flag from its argument. Fixes a
	problem with expr interpreting its arguments as a flag when they
	start with a dash.
	[607eab115]

	* common/lbuf.c:
	Do not need sys/time.h after all
	[fdf877d53]

	* common/lbuf.c:
	Include sys/time.h for utimes() and struct timeval. No longer need
	ioctl.h or termios.h
	[702a2bff2]

	* compat/snprintf.c:
	Quiet bogus compiler warnings.
	[502555d2d]

	* include/missing.h:
	Declare innetgr() for HP-UX which is missing a declaration. Declare
	domainname() for HP-UX and Solaris which are missing a declaration.
	[da67324b1]

	* plugins/sudoers/bsm_audit.c:
	Use __sun for consistency with the rest of the sources.
	[77eb8cfe5]

	* plugins/sudoers/group_plugin.c:
	Quiet a bogus compiler warning.
	[4101f2eef]

	* plugins/sudoers/pwutil.c:
	Don't try to delref a NULL group.
	[933c71e9c]

	* common/alloc.c, common/lbuf.c:
	Include memory.h on systems that need it.
	[149026989]

2010-09-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	Quiet gcc warnings on glibc systems that use warn_unused_result for
	write(2).
	[c04f48b4b]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	sudo_plugin is in section 8; from Ted Percival
	[bd1884bb4]

	* plugins/sudoers/Makefile.in:
	testsudoers depends on libsudoers.la, not sudoreplay
	[4ce8b35cd]

2010-09-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	Read as many signals on the signal pipe as we can before returning.
	[66bea8c4c]

	* src/exec.c, src/exec_pty.c, src/sudo_exec.h:
	Instead of using a array to store received signals, open a pipe and
	have the signal handler write the signal number to one end and
	select() on the other end. This makes it possible to handle signals
	similar to I/O without race conditions.
	[59399d55c]

2010-09-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/visudo.pod, plugins/sudoers/visudo.c:
	Make "visudo -c -f -" check the standard input.
	[f601085de]

	* doc/sudoers.pod:
	set_home and always_set_home have an effect if HOME is present in
	the env_keep list.
	[b91a12988]

	* plugins/sudoers/env.c:
	Make -H flag work when HOME is listed in env_keep. Also makes
	"set_home" and "always_set_home" override override HOME in env_keep.
	[1b9ca115b]

2010-09-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in, plugins/sudoers/interfaces.c,
	plugins/sudoers/interfaces.h, plugins/sudoers/match.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c, src/net_ifs.c:
	Convert sudoers plugin to use interface list passed in settings.
	[e069b74dc]

	* doc/sudo_plugin.pod, src/Makefile.in, src/net_ifs.c,
	src/parse_args.c, src/sudo.h:
	Query local network interfaces in the main sudo driver and pass to
	the plugin as "network_addrs" in the settings list.
	[1009d7a3e]

	* plugins/sudoers/bsm_audit.c:
	Solaris BSM audit return EINVAL when auditing is not enabled,
	whereas OpenBSM returns ENOSYS.
	[d9a352632]

2010-09-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/fnmatch.c:
	missing.h should come before most local includes
	[e74b6e6b1]

	* plugins/sudoers/sudoreplay.c:
	missing.h should come before most local includes
	[d739608a8]

	* plugins/sudoers/sudoers.h:
	Make local includes consistent; use double quotes for local includes
	except for generated ones where we use angle brackets.
	[0c38f1460]

	* plugins/sudoers/sudoers.c:
	Always fill in NewArgv for audit code.
	[1d37ab560]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add missing LOG_INPUT/LOG_OUTPUT support in the lexer.
	[5403757ed]

	* common/alloc.c, common/atobool.c, common/fileops.c,
	common/fmt_string.c, common/lbuf.c, common/list.c, common/term.c,
	common/zero_bytes.c, compat/closefrom.c, compat/fnmatch.c,
	compat/getcwd.c, compat/getgrouplist.c, compat/getline.c,
	compat/getprogname.c, compat/glob.c, compat/isblank.c,
	compat/memrchr.c, compat/mksiglist.c, compat/mkstemps.c,
	compat/nanosleep.c, compat/setenv.c, compat/snprintf.c,
	compat/strlcat.c, compat/strlcpy.c, compat/strsignal.c,
	compat/unsetenv.c, compat/utimes.c, include/compat.h,
	plugins/sample/sample_plugin.c, plugins/sample_group/getgrent.c,
	plugins/sample_group/plugin_test.c,
	plugins/sample_group/sample_group.c, plugins/sudoers/audit.c,
	plugins/sudoers/auth/afs.c, plugins/sudoers/boottime.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/linux_audit.c, plugins/sudoers/match.c,
	plugins/sudoers/plugin_error.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/timestr.c, src/error.c, src/sesh.c, src/sudo.h,
	src/sudo_noexec.c, src/ttysize.c:
	Make local includes consistent; use double quotes for local includes
	except for generated ones where we use angle brackets. Also g/c
	unused compat.h.
	[10c3bb62c]

2010-09-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/match.c:
	When matching the runas user and runas group (-u and -g command line
	options), keep track of runas group and runas user matches
	separately. Only return a positive match if we have a match for both
	runas user and runas group (if specified).
	[8ec596c7d]

2010-09-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.pod, plugins/sudoers/ldap.c:
	Add support for multiple URI lines by joining the contents and
	passing the result to ldap_initialize.
	[df8ec6fc2]

	* plugins/sudoers/ldap.c, plugins/sudoers/parse.c:
	Do not return -1 on error from the display functions; the caller
	expects a return value >= 0.
	[27f6558df]

	* plugins/sudoers/sudoers.c:
	Do not set both MODE_EDIT and MODE_RUN
	[e7d56e16e]

2010-09-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/missing.h:
	Move includes to the top of the file.
	[0d935f854]

2010-08-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Add missing definition of timedir
	[c31210d66]

	* compat/fnmatch.c, compat/getprogname.c, compat/isblank.c,
	compat/mksiglist.c, compat/strsignal.c,
	plugins/sudoers/plugin_error.c, src/error.c, src/sudo_noexec.c:
	Add #include of sys/types.h for .c files that include missing.h to
	be sure that size_t and ssize_t are defined.
	[399381de9]

	* plugins/sudoers/Makefile.in:
	Install sudoers file from the build dir not hte src dir.
	[7213f7205]

2010-08-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/set_perms.c:
	If runas_pw changes, reset the stashed runas aux group vector.
	Otherwise, if runas_default is set in a per-command Defaults
	statement, the command runs with root's aux group vector (i.e. the
	one that was used when locating the command).
	[94de54b19]

	* plugins/sudoers/Makefile.in:
	Add target to generate sudoers file Remove generated sudoers file as
	part of distclean
	[209a21051]

2010-08-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c:
	When not logging I/O install a handler for SIGCONT and deliver it to
	the command upon resume. Fixes bugzilla #431
	[2cef2bb5b]

2010-08-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.h:
	g/c unused auth_pw extern definition
	[88f9fea40]

	* plugins/sudoers/check.c, plugins/sudoers/sudoers.c:
	Move get_auth() into check.c where it is actually used.
	[256ee25ab]

2010-08-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* common/lbuf.c:
	Convert a remaining puts() and putchar() to use the output function.
	[a68c31306]

	* plugins/sudoers/plugin_error.c:
	Plug memory leak
	[a2694e9e2]

2010-08-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/env.c:
	Set dupcheck to TRUE when setting new HOME value if !env_reset but
	always_set_home is true. Prevents a duplicate HOME in the
	environment (old value plus the new one) introduced in f421f8827340.
	[3d48cae18]

	* configure, configure.in, plugins/sudoers/sudoers.in:
	Substitute sysconfdir in the installed sudoers file to get the
	correct path for sudoers.d.
	[598341d36]

2010-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/get_pty.c:
	Fix typo that prevented compilation on Irix; Friedrich Haubensak
	[9706b4c50]

2010-08-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/Makefile.in, common/aix.c, common/alloc.c,
	common/atobool.c, common/fileops.c, common/fmt_string.c,
	common/lbuf.c, common/list.c, common/term.c, common/zero_bytes.c,
	compat/Makefile.in, compat/closefrom.c, compat/fnmatch.c,
	compat/getcwd.c, compat/getgrouplist.c, compat/getline.c,
	compat/getprogname.c, compat/glob.c, compat/isblank.c,
	compat/memrchr.c, compat/mksiglist.c, compat/mkstemps.c,
	compat/nanosleep.c, compat/setenv.c, compat/snprintf.c,
	compat/strlcat.c, compat/strlcpy.c, compat/strsignal.c,
	compat/unsetenv.c, compat/utimes.c, include/compat.h,
	include/missing.h, plugins/sample/sample_plugin.c,
	plugins/sample_group/getgrent.c,
	plugins/sample_group/sample_group.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/audit.c, plugins/sudoers/boottime.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/linux_audit.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/timestr.c, src/Makefile.in, src/error.c, src/sesh.c,
	src/sudo.h, src/sudo_noexec.c, src/ttysize.c:
	Merge compat.h and missing.h into missing.h
	[f454727bb]

2010-08-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/pam.c:
	If the user hits ^C while a password is being read, error out before
	reading any further passwords in the pam conversation function.
	Otherwise, if multiple PAM auth methods are required, the user will
	have to hit ^C for each one.
	[6ce5c4cd9]

2010-08-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	Update comment
	[151a2cab5]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Document sudo_conv_t function and sudo_printf_t return values.
	[4feaf3c26]

	* src/conversation.c:
	Make _sudo_printf return the number of characters printed on success
	like printf(3).
	[10637f6e0]

2010-08-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	sudoers.h includes sudo_plugin.h for us
	[129cf8d99]

	* common/Makefile.in, common/gettime.c, compat/mkstemps.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/visudo.c, src/sudo.h,
	src/sudo_edit.c:
	Use gettimeofday() directly instead of via the gettime() wrapper.
	[6bcd9efc0]

	* common/gettime.c, compat/snprintf.c, compat/strcasecmp.c,
	compat/strerror.c, config.h.in, configure, configure.in,
	include/compat.h, include/missing.h, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/visudo.c, src/sudo.c:
	Remove some obsolete configure tests, ancient Unix systems are no
	longer supported.
	[8dd8aa000]

2010-08-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Set pp_kit_version and strip off patch level
	[29efdc50a]

	* sudo.pp:
	Better handling of versions with a patchlevel. For rpm and deb, use
	the patchlevel+1 as the release. For AIX, use the patchlevel as the
	4th version number. For the rest, just leave the patchlevel in the
	version string.
	[ee2bdd248]

2010-08-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/sudo_auth.c:
	For non-standalone auth methods, stop reading the password if the
	user enters ^C at the prompt.
	[d2cc4740c]

	* configure, configure.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/auth/sudo_auth.h,
	plugins/sudoers/pwutil.c:
	No need to look up shadow password unless we are doing
	password-style authentication. This moves the shadow password lookup
	to the auth functions that need it.
	[96cb890d5]

	* plugins/sudoers/sudoers.c:
	Retain final passwd/group refs until the policy close() function.
	Note that this doesn't get called in all cases so putting this in a
	cleanup function is probably better.
	[cb1848fab]

	* plugins/sudoers/check.c:
	Fix mismerge
	[9f2740135]

	* plugins/sudoers/check.c:
	When removing/resetting the timestamp file ignore the tty ticket
	contents.
	[640f79e13]

	* plugins/sudoers/sudoers.c:
	delref sudo_user.pw, runas_pw and runas_gr immediately before we
	return.
	[26526e667]

2010-08-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c, plugins/sudoers/ldap.c,
	plugins/sudoers/match.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Reference count cached passwd and group structs. The cache holds one
	reference itself and another is added by sudo_getgr{gid,nam} and
	sudo_getpw{uid,nam}. The final ref on the runas and user passwd and
	group structs are persistent for now.
	[0186018d3]

	* doc/UPGRADE:
	fix typo
	[7b011cf15]

2010-08-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	Do not produce a warning for "sudo -k" if the ticket file does not
	exist.
	[ec5722101]

	* plugins/sudoers/pwutil.c:
	Instead of caching struct passwd and struct group in the red-black
	tree, store a struct cache_item which includes both the key and
	datum. This allows us to user the actual name that was looked up as
	the key instead of the contents of struct passwd or struct group.
	This matters because the name in the database may not match what we
	looked up, due either to case folding or truncation (historically at
	8 characters). Also mark the disabled calls to sudo_freepwcache()
	and sudo_freegrcache() as broken since we use cached data for things
	like set_perms() and the logging functions. Fixing this would
	require making a copy of the structs for user and runas or adding a
	reference count (better).
	[65eec19bd]

	* plugins/sudoers/Makefile.in:
	Fix path to mkinstalldirs
	[4e74b389c]

	* plugins/sudoers/check.c, plugins/sudoers/logging.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/visudo.c,
	src/exec_pty.c, src/get_pty.c, src/tgetpass.c:
	Quiet gcc warnings on glibc systems that use warn_unused_result for
	write(2) and others.
	[420db2371]

2010-08-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add %option noinput
	[122940672]

	* aclocal.m4, configure, configure.in:
	Add cross-compile defaults for remaining AC_TRY_RUN usage. Also add
	back getgroups() check since AC_FUNC_GETGROUPS defaults to "no" when
	cross-compiling.
	[ea79ea446]

2010-07-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4, compat/snprintf.c, config.h.in, configure,
	configure.in:
	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.
	[24a755bfe]

2010-07-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pp:
	Update to latest version
	[7861b4afd]

2010-07-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Let pp determine pp_aix_version itself.
	[e4ff63bd3]

	* INSTALL, config.h.in, configure, configure.in, mkpkg,
	plugins/sudoers/sudoers.c:
	Add support for Ubuntu admin flag file and enable it when building
	Ubuntu packages.
	[6d0395ee6]

	* plugins/sudoers/sudoers, sudo.pp:
	Add commented out SuSE-like targetpw settings
	[76ce69057]

	* configure, configure.in:
	Only try to use +DAportable for non-GCC on hppa
	[036a9d81b]

	* configure, configure.in:
	Prevent configure from adding the -g flag unless in devel mode
	[5c7335e23]

2010-07-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Go back to sudo-flavor to match existing packages and only use an
	underscore for those that need it.
	[1ae6145d4]

	* sudo.pp:
	Use sudo_$flavor instead of sudo-$flavor since that causes the least
	amount of trouble for the various package managers.
	[a4b333bc4]

	* mkpkg:
	Fix handling of the ldap flavor Remove destdir unless --debug was
	specified Make distclean before running configure if there is a
	Makefile present
	[a6265c54c]

	* sudo.pp:
	Add back include file.
	[0fbe7a674]

	* mkpkg:
	Pass extra args on to configure on HP-UX, if we don't have the HP C
	compiler, disable zlib to prevent gcc from finding it in
	/usr/local/lib.
	[707246a34]

	* mkpkg:
	Use the HP ANSI C compiler on HP-UX if possible
	[01e547bd1]

	* plugins/sudoers/sudoreplay.c:
	Some getline() implementations (FreeBSD 8.0) do not ignore the
	length pointer when the line pointer is NULL as they should.
	[5d06ad3b6]

	* plugins/sudoers/sudoreplay.c:
	Don't need to check for *cp being non-zero, isdigit() will do that.
	[c33bf9350]

	* plugins/sudoers/sudoreplay.c:
	Add setlocale() so the command line arguments that use floating
	point work in different locales. Since sudo now logs the timing data
	in the C locale we must Parse the seconds in the timing file
	manually instead of using strtod(). Furthermore, sudo 1.7.3 logged
	the number of seconds with the user's locale so if the decimal point
	is not '.' try using the locale-specific version.
	[18d25e96f]

	* src/exec.c:
	Do I/O logging in the C locale so the floating point numbers in the
	timing file are not locale-dependent.
	[e11e4efb8]

	* plugins/sudoers/sudoreplay.c:
	Use errorx() not error() for thingsthat don't set errno.
	[a3e4db124]

2010-07-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pp:
	Better support for 1.2.3 style versions in Tru64 kits
	[14909efc6]

	* sudo.pp:
	Add Tru64 kit support
	[2e66c22a3]

	* pp:
	Remove apparently unnecessary use of sudo
	[af182aed7]

	* Makefile.in, plugins/sudoers/Makefile.in:
	Create timedir as part of install-dirs target.
	[c59ad3596]

	* src/exec_pty.c:
	Handle ENXIO from read/write which can occur when reading/writing a
	pty that has gone away.
	[23c96fbc2]

	* plugins/sudoers/pwutil.c:
	sudo_pwdup() was not expanding an empty pw_shell to _PATH_BSHELL
	[4168fcf2d]

	* mkpkg:
	platform is a pp flag not a variable
	[1eebebeec]

	* Makefile.in, mkpkg, sudo.pp:
	Add simple arg parsing for mkpkg so we can set debug, flavor or
	platform.
	[551791a51]

	* pp:
	Make rpm backend work on AIX 5.x
	[d02489ff4]

2010-07-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers:
	Add commented out Defaults entry for log_output
	[a346ba8df]

2010-07-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/Makefile.in:
	Remove sudo docdir completely
	[a4b3a6d96]

	* doc/sample.sudo.conf:
	Add sample sudo.conf
	[084ae523a]

2010-07-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Add PACKAGE_TARNAME for docdir
	[aeac8822b]

2010-07-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/Makefile.in:
	Pass install-sh -b~ here too.
	[06a918b88]

	* plugins/sample/Makefile.in, plugins/sample_group/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	Install binary files with -b~ to make a backup. Fixes "text file
	busy" error on HP-UX during install.
	[092a6935e]

	* install-sh:
	"mv -f" on HP-UX doesn't unlink the destination first so add an
	explicit rm before moving the temporary into place.
	[49d82a04e]

	* configure, configure.in:
	Some more ${foo} -> $(foo) conversion for consistent Makefiles.
	[5ba4a35a7]

	* doc/Makefile.in, plugins/sudoers/Makefile.in:
	Install sudoers2ldif in the doc dir
	[c016ecf00]

2010-07-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pathnames.h.in:
	Add missing include of maillock.h for Solaris
	[258a26d39]

	* NEWS, configure, configure.in, doc/TROUBLESHOOTING, doc/UPGRADE,
	doc/sample.syslog.conf, doc/sudoers.cat:
	Change the default syslog facility from local2 to authpriv (or auth
	if the operating system doesn't support authpriv).
	[8660b5ea3]

	* Makefile.in, sudo.pp:
	Install sudoers as /etc/sudoers on RPM and debian systems where the
	package manager will not replace a user-modified configuration file.
	This fixes upgrades from the vendor sudo packages.
	[481a389e6]

	* pp:
	RPM: use %config(noreplace) instead of %config for volatile This
	results in the new file being installed with a .rpmnew suffix
	instead of the file being replaced and the old one renamed with a
	.rpmsave suffix.
	[b0e282b50]

2010-07-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/mkstemps.c, plugins/sudoers/boottime.c:
	Include time.h for struct timeval
	[5183d6e59]

	* src/exec_pty.c:
	The return value of strsignal() may be const and should be treated
	as const regardless.
	[c9e86ab3b]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	Mention that 127.0.0.1 will not match, nor will localhost unless
	that is the actual host name.
	[bdecb14ea]

	* MANIFEST, NEWS, README, doc/Makefile.in, doc/UPGRADE:
	Rename WHATSNEW -> NEWS
	[a72965e64]

	* pp:
	Updated pp with latest patches
	[3f2263ae4]

	* WHATSNEW:
	Sync with 1.7.4
	[cb0d7cdb8]

	* doc/UPGRADE, doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod,
	plugins/sudoers/sudoers:
	Add commented out line to add HOME to env_keep and add a warning to
	the note about the HOME change in UPGRADE.
	[f45f57dca]

2010-07-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c:
	Add LINE_MAX define for those without it.
	[d8acd3403]

	* INSTALL, WHATSNEW, config.h.in, configure, configure.in,
	doc/UPGRADE, doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod,
	plugins/sudoers/defaults.c:
	The tty_tickets option is now on by default.
	[2675524c3]

	* WHATSNEW:
	Mention that AIX authdb support has been fixed.
	[9006c79ba]

	* common/aix.c:
	setauthdb() only sets the "old" registry if it was set by a previous
	call to setauthdb(). To restore the original value, passing NULL (or
	an empty string) to setauthdb() is sufficient.
	[f3b397be0]

2010-07-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW, doc/UPGRADE, doc/sudo.cat, doc/sudo.man.in,
	doc/sudo.pod, doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod,
	plugins/sudoers/env.c:
	Reset HOME when env_reset is enabled unless it is in env_keep
	[ee7221f1f]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	The default for set_logname has been "true" for some time now.
	[c31e1227f]

	* plugins/sudoers/boottime.c:
	Add missing include of time.h
	[4382c30c0]

	* plugins/sudoers/logging.c:
	Fix check for dup2() return value.
	[10e6e572e]

	* plugins/sudoers/env.c:
	Add PYTHONUSERBASE to initial_badenv_table
	[2eb1879fd]

	* plugins/sudoers/visudo.c:
	Treat an unknown defaults entry as a parse error.
	[32e896f33]

	* plugins/sudoers/defaults.c, plugins/sudoers/sudoers.c:
	Check return value of setdefs() but don't stop setting defaults if
	we hit an unknown one.
	[f7f65cfb9]

	* WHATSNEW, aclocal.m4, config.h.in, configure, configure.in,
	doc/sudo.cat, doc/sudo.man.in, doc/sudo.pod, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.pod, pathnames.h.in,
	plugins/sudoers/env.c:
	If env_reset is enabled, set the MAIL environment variable based on
	the target user unless MAIL is explicitly preserved in sudoers.
	[69ecb3458]

2010-07-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pp:
	decode debian code names
	[0f3c1b590]

	* WHATSNEW:
	fix typo
	[a3c3602c1]

2010-07-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW:
	Merge with 1.7.4
	[a7fbdbe69]

	* src/sudo.c:
	Restore RLIMIT_NPROC after the uid switch if it appears that
	runas_setup() did not do it for us. Fixes a bash script problem on
	SuSE with RLIMIT_NPROC set to RLIM_INFINITY.
	[006427345]

2010-07-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg, pp, sudo.pp:
	Restore the dot removal in the os version reported by polypkg. Adapt
	mkpkg and sudo.pp to the change.
	[3907d4363]

2010-07-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	document --with-pam-login
	[33c029c8c]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	The tag is NOSETENV, not UNSETENV. From Petr Uzel.
	[225de6063]

2010-07-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pp:
	Include flavor in solaris package name
	[6575013a1]

	* mkpkg:
	Older shells don't support IFS= so set explictly to space, tab,
	newline.
	[8fd2e2564]

	* mkpkg:
	Use '=' not '==' in test
	[df1ed5f3e]

	* mkpkg:
	Fix typo that prevented debian from matching
	[338331186]

	* mkpkg:
	Add missing prefix setting for debian
	[d6dfa43d2]

	* sudo.pp:
	Use tab indents to reduce the chance of problem with <<- Fix the
	debian %set section, pp does not set pp_deb_distro Uncomment %sudo
	line in sudoers for debian Uncomment some env_keep lines for RHEL,
	SLES and debian to more closely match the vendor sudoers files. Add
	/etc/pam.d to %files Remove the /etc/sudo-ldap.conf symlink on
	debian for ldap flavor
	[8a837375d]

	* plugins/sudoers/sudoers:
	Add commented out env_keep entries, sample Aliases and a %sudo line
	for debian.
	[af0bac430]

	* configure, configure.in:
	Move zlib check later on in the script to avoid a strange shell
	problem on SLES11.
	[3ea95dae3]

	* configure.in:
	Remove check for egrep; configure has its own
	[77d3b8d09]

2010-07-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg:
	Enable zlib for linux distros
	[98650c9a2]

	* mkpkg:
	Add ldap flavor to default build
	[402b35a79]

	* mkpkg, sudo.pp:
	Simplify rpm linux distro settings
	[f440808e5]

	* aclocal.m4, configure, configure.in, doc/UPGRADE, doc/sudoers.cat:
	Move time stamp files from /var/run/sudo to /var/{db,lib,adm}/sudo.
	[c2c15aa4e]

	* Makefile.in:
	Fix ChangeLog creation from build dir
	[669ca7899]

	* plugins/sudoers/sudoers.c:
	Handle getcwd() failure.
	[482f9cfc8]

	* doc/Makefile.in, mkpkg, sudo.pp:
	Add ldap "flavor" for debian, controlled by the SUDO_FLAVOR
	environment variable.
	[eccbde77d]

	* sudo.pp:
	Create sudo group on debian
	[3910c8fb5]

	* mkpkg, sudo.pp:
	Add debian 4/5/6 and use the dot when doing version matches
	[a7dac1fc2]

	* aclocal.m4, configure:
	Use a loop when searching for mv, sendmail and sh
	[09a6f4651]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	Remove spurious "and"; from debian
	[de3cfa25f]

	* aclocal.m4, configure, configure.in, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.pod, doc/visudo.cat,
	doc/visudo.man.in, doc/visudo.pod:
	Substitute the value of EDITOR into the sudoers and visudo manuals.
	[26ca852a9]

2010-07-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkpkg, pp, sudo.pp:
	Initial support for debian 4.0
	[fde091cc0]

	* mkpkg:
	Some platforms need -fPIE instead of -fpie
	[781788e2e]

	* plugins/sudoers/auth/pam.c:
	Only set PAM_RHOST for Solaris, where it is needed to avoid a bug.
	On Linux it causes a DNS lookup via libaudit.
	[efbc7f1d5]

	* MANIFEST:
	Update MANIFEST to match packaging changes
	[594fb3c55]

	* sudo.psf:
	We now use pp to generate HP-UX packages
	[0544939f5]

	* INSTALL.binary, plugins/sudoers/Makefile.binary.in:
	Remove vestiges of old binary package bits.
	[ab7a1c5ce]

	* INSTALL, Makefile.in, common/Makefile.in, compat/Makefile.in,
	doc/Makefile.in, include/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	install-man -> install-doc
	[a33996e74]

	* Makefile.in, doc/Makefile.in, include/Makefile.in, mkpkg,
	plugins/sudoers/Makefile.in, pp, src/Makefile.in, sudo.pp:
	Use http://rc.quest.com/topics/polypkg/ for packaging
	[7bcbce207]

	* install-sh:
	Just ignore the -c option, it is the default Add support for -d
	option
	[69400709d]

2010-07-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pathnames.h.in, plugins/sudoers/env.c, plugins/sudoers/logging.c:
	Use _PATH_STDPATH instead of _PATH_DEFPATH
	[5b9e39ac8]

	* plugins/sudoers/Makefile.in, src/Makefile.in:
	Do not strip binaries.
	[151db86e3]

	* INSTALL, configure, configure.in:
	Add --insults=disabled configure option to allow people to build in
	insult support but have the insults disabled unless explicitly
	enabled in sudoers.
	[791028169]

	* compat/mkstemps.c:
	Add prototype for gettime()
	[2b7410074]

	* config.h.in, configure, configure.in, plugins/sudoers/auth/pam.c,
	plugins/sudoers/env.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Add support for a sudo-i pam.d file to be used for "sudo -i".
	Adapted from a RedHat patch.
	[d9de7b5f8]

2010-07-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/missing.h:
	Fix mkstemps() prototype
	[684d1fd9f]

	* MANIFEST, compat/Makefile.in, compat/mkstemps.c, config.h.in,
	configure, configure.in, include/missing.h, src/sudo_edit.c:
	Use mkstemps() instead of mkstemp() in sudoedit. This allows
	sudoedit to preserve the file extension (if any) which may be used
	by the editor (like emacs) to choose the editing mode.
	[ea4298bb5]

2010-07-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.pod, plugins/sudoers/ldap.c:
	TLS_CACERT is now an alias for TLS_CACERTFILE. OpenLDAP uses
	TLS_CACERT, not TLS_CACERTFILE in its ldap.conf. Other LDAP client
	code, such as nss_ldap, uses TLS_CACERTFILE. Also document why you
	should avoid disabling TLS_CHECKPEER is possible.
	[432d27573]

2010-07-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Make sudo_plugin format a bit more like a man page
	[5b1420b6d]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Add suport for negated user/host/command lists in a Defaults entry.
	E.g. Defaults:!baduser noexec
	[fd6b72f48]

	* Makefile.in, common/Makefile.in, compat/Makefile.in,
	doc/Makefile.in, include/Makefile.in, plugins/sample/Makefile.in,
	plugins/sample_group/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Add uninstall target
	[3f33f75b7]

	* common/Makefile.in, compat/Makefile.in:
	Remove unused AR, SED and RANLIB variables
	[98ce6c94c]

	* Makefile.in:
	Do not install sample plugins
	[ff7835722]

2010-07-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, aclocal.m4, compat/setenv.c, compat/unsetenv.c,
	configure, configure.in, plugins/sudoers/env.c:
	Now that sudoers is a dynamically loaded module we cannot override
	the libc environment functions because the symbols may already have
	been resolved via libc. Remove getenv/putenv/setenv/unsetenv
	replacements from sudoers and add replacements for setenv/unsetenv
	for systems that lack them.
	[6229c0e20]

	* configure, configure.in, plugins/sudoers/Makefile.in:
	Link testsudoers with -ldl when needed
	[ff4a61b92]

	* plugins/sample_group/plugin_test.c:
	Remove unused time.h and add limits.h for PATH_MAX
	[e3f444747]

	* doc/sudoers.ldap.pod:
	Fix typo.
	[390696777]

2010-07-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sample_group/plugin_test.c:
	Do not depend on strlcpy/strlcat
	[47c28e7ec]

	* plugins/sample_group/plugin_test.c:
	Standalone test driver for sudoers group plugin.
	[6a058e4af]

2010-07-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/group_plugin.c, src/load_plugins.c:
	Use RTLD_LAZY instead of RTLD_NOW; was using RTLD_NOW as a debugging
	aid.
	[17dbb33e5]

	* plugins/sample_group/sample_group.c:
	Fix style nit in function declarations
	[7e91ebff1]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	Document group_plugin syntax.
	[2822c6c8c]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Document the sudoers group plugin.
	[9d1731261]

	* INSTALL, MANIFEST, Makefile.in, config.h.in, configure,
	configure.in, doc/LICENSE, doc/license.pod, include/sudo_plugin.h,
	plugins/sample_group/Makefile.in, plugins/sample_group/getgrent.c,
	plugins/sample_group/sample_group.c, plugins/sudoers/Makefile.in,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/group_plugin.c,
	plugins/sudoers/match.c, plugins/sudoers/nonunix.h,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/vasgroups.c, plugins/sudoers/visudo.c, src/sudo.c:
	Replace built-in non-unix group support with a sudoers group plugin.
	Include a sample plugin that can read Unix-format group files.
	[e6b48d415]

	* configure, configure.in, src/load_plugins.c:
	Add a trailing slash to _PATH_SUDO_PLUGIN_DIR to simplify usage.
	[66eafd099]

2010-07-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.pod, doc/sudoers.cat,
	doc/sudoers.man.in, doc/sudoers.pod:
	Move sudoers-specific bits out of sudo(8) and into sudoers(5)
	[454534eff]

	* aclocal.m4, configure, configure.in:
	Substitute @io_logdir@ for the sudoers I/O log directory.
	[9e60378c4]

2010-06-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, common/Makefile.in, common/aix.c, common/alloc.c,
	common/atobool.c, common/fileops.c, common/fmt_string.c,
	common/lbuf.c, common/term.c, compat/fnmatch.c, compat/getcwd.c,
	compat/getgrouplist.c, compat/getline.c, compat/glob.c,
	compat/snprintf.c, config.h.in, configure, configure.in,
	include/fileops.h, plugins/sample/sample_plugin.c,
	plugins/sudoers/alias.c, plugins/sudoers/auth/afs.c,
	plugins/sudoers/auth/aix_auth.c, plugins/sudoers/auth/bsdauth.c,
	plugins/sudoers/auth/dce.c, plugins/sudoers/auth/fwtk.c,
	plugins/sudoers/auth/kerb4.c, plugins/sudoers/auth/kerb5.c,
	plugins/sudoers/auth/pam.c, plugins/sudoers/auth/passwd.c,
	plugins/sudoers/auth/rfc1938.c, plugins/sudoers/auth/secureware.c,
	plugins/sudoers/auth/securid.c, plugins/sudoers/auth/securid5.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/boottime.c, plugins/sudoers/check.c,
	plugins/sudoers/defaults.c, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/getdate.c,
	plugins/sudoers/getdate.y, plugins/sudoers/getspwuid.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/logging.c, plugins/sudoers/match.c,
	plugins/sudoers/parse.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/visudo.c,
	src/Makefile.in, src/conversation.c, src/exec.c, src/exec_pty.c,
	src/get_pty.c, src/load_plugins.c, src/parse_args.c, src/sudo.c,
	src/sudo.h, src/sudo_edit.c, src/tgetpass.c:
	Set usrinfo for AIX Set adminstrative domain for the process when
	looking up user's password or group info and when preparing for
	execve(). Include strings.h even if string.h exists since they may
	define different things. Fixes warnings on AIX and others.
	[30fe4a067]

	* Makefile.in:
	Add a separate all target for AIX make which was using the entire
	LHS (not just the first entry) of the first target as the implicit
	target.
	[fd40be626]

	* plugins/sudoers/env.c:
	Do not rely on env.env_len when unsetting a variable, just use the
	NULL terminator.
	[862d1675c]

	* plugins/sudoers/env.c:
	In unsetenv() check for NULL or empty name as per POSIX 1003.1-2008
	[0c0a02dfd]

2010-06-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/vasgroups.c:
	Use warningx() instead of log_error() since the latter is not
	available to visudo or testsudoers. This does mean that they don't
	end up in syslog.
	[895e30184]

	* plugins/sudoers/sudoers.c:
	Defer call to sudo_nonunix_groupcheck_cleanup() until after we have
	closed the sudoers sources. From Quest sudo.
	[189b43fed]

	* plugins/sudoers/pwutil.c:
	Ignore case when matching user/group names in the cache. From Quest
	sudo.
	[8f58fd36b]

2010-06-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, src/selinux.c:
	Add check for setkeycreatecon() when --with-selinux is specified.
	[867ba48db]

	* configure, configure.in:
	Error out if libaudit.h is missing or ununable when
	--with-linux-audit was specified
	[d63f49bca]

	* doc/HISTORY, doc/history.pod:
	Add =head3 entries, mostly for the html version
	[175760a44]

2010-06-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/HISTORY, doc/history.pod:
	Mention when LDAP was incorporate.
	[e87364437]

2010-06-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Define _LINUX_SOURCE_COMPAT on AIX for strsignal() prototype, it is
	not covered by _ALL_SOURCE.
	[39bccab39]

2010-06-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Add a cast to quiet a compiler warning.
	[d69e4fd42]

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y:
	Quiet a compiler warning.
	[41b15ae81]

	* plugins/sudoers/defaults.c, plugins/sudoers/sudoers.c:
	Call set_fqdn() after sudoers has parsed instead of inline as a
	callback.
	[d1bf11db3]

	* WHATSNEW, plugins/sudoers/sudoers.c:
	Do not call set_fqdn() until sudoers parses (where is gets run as a
	callback).
	[d79b0ece1]

	* WHATSNEW:
	mention the change in tty ticket behavior when there is no tty
	[677a0be85]

	* plugins/sudoers/check.c:
	Do not update tty ticket if there is no tty.
	[f5c5a9bf6]

	* doc/LICENSE, doc/license.pod:
	Update copyright year
	[c4da73db1]

	* doc/Makefile.in:
	Do not rely on BSD make's $>
	[cf1d8359c]

	* configure, configure.in:
	Set timedir to /var/db/sudo for darwin to match Apple sudo's
	location
	[7c1e75824]

2010-06-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.h:
	Add stub declarations for struct stat and struct timeval
	[9a16dc514]

	* MANIFEST:
	Remove compat/sigaction.c
	[87281cf28]

	* config.h.in, configure, configure.in, plugins/sudoers/defaults.c,
	plugins/sudoers/iolog.c, plugins/sudoers/sudoreplay.c:
	Check for zlib.h in addition to libz.
	[ebc152ce8]

	* MANIFEST, src/Makefile.in, src/exec.c, src/exec_pty.c, src/sudo.h,
	src/sudo_exec.h:
	Move functions and symbols shared between exec.c and exec_pty.c into
	sudo_exec.h.
	[d018936b4]

	* doc/Makefile.in:
	Comment out rules to build .man.in and .cat files unless
	--with-devel
	[ede8a5fad]

	* doc/Makefile.in:
	Comment out rules to build .man.in and .cat files unless
	--with-devel
	[c1bd1dd60]

	* src/parse_args.c:
	Quote any non-alphanumeric characters other than '_' or '-' when
	passing a command to be run via the shell for the -s and -i options.
	[46355186b]

	* doc/Makefile.in:
	Add back .man suffix
	[6363305b3]

	* INSTALL, MANIFEST, WHATSNEW, config.h.in, configure, configure.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/audit.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/linux_audit.c,
	plugins/sudoers/linux_audit.h, plugins/sudoers/logging.h,
	src/selinux.c:
	Add Linux audit support.
	[2cd108304]

2010-06-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Remove an XXX
	[fdd480543]

	* doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.pod,
	plugins/sudoers/sudoreplay.c:
	Add -f (filter) option to sudoreplay to allow certain streams to be
	replayed and others ignored.
	[1025a2ec0]

	* src/load_plugins.c, src/parse_args.c, src/sudo.c, src/sudo.h,
	src/tgetpass.c:
	Fix -A flag when askpass is specified in sudo.conf or if sudo
	doesn't need to read a password.
	[4fb8a83e6]

	* src/exec.c, src/exec_pty.c, src/parse_args.c, src/sudo.c,
	src/sudo.h, src/sudo_edit.c, src/tgetpass.c:
	Clean up some XXXs
	[f64bb67c6]

	* WHATSNEW, doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.ldap.pod, plugins/sudoers/ldap.c:
	Add support for multiple sudoers_base entries in ldap.conf. From
	Joachim Henke
	[d92c82ea3]

	* config.h.in, configure, configure.in, plugins/sudoers/logging.c,
	src/exec_pty.c:
	remove setsid check, we require a POSIX system
	[54ffb19cc]

	* plugins/sudoers/logging.c, src/exec_pty.c, src/selinux.c,
	src/sudo.c, src/tgetpass.c:
	Check for dup2() failure.
	[c2f8d24f2]

	* config.h.in, configure, configure.in:
	Remove dup2() check, it is not optional.
	[59718c32e]

2010-06-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW:
	sync with sudo 1.7.3
	[754c3939d]

	* INSTALL:
	SunOS does not ship with an ANSI compiler
	[65307f89b]

	* INSTALL:
	Update OS specific notes. Delete some really ancient ones and move
	older ones to the end of the list.
	[96e4b0e20]

	* README:
	Sudo can be downloaded from the web site too Mention "OS dependent
	notes" section in INSTALL
	[8eed6962b]

	* src/exec_pty.c, src/selinux.c:
	Call selinux_restore_tty() as part of cleanup() so it gets called
	from error()/errorx()
	[d27223b4c]

	* MANIFEST, doc/PORTING:
	Remove obsolete porting guide
	[e1e0ac22b]

	* plugins/sudoers/interfaces.h, plugins/sudoers/match.c:
	Move union sudo_in_addr_un into interfaces.h
	[fe49f161a]

	* doc/Makefile.in:
	Remove useless circular dependencies
	[748467670]

	* plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb4.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c:
	Convert to ANSI C function declarations
	[8e2631253]

	* common/alloc.c, common/fileops.c, common/gettime.c, common/list.c,
	common/zero_bytes.c, compat/charclass.h, compat/closefrom.c,
	compat/fnmatch.c, compat/glob.c, compat/isblank.c, compat/memrchr.c,
	compat/mkstemp.c, compat/nanosleep.c, compat/snprintf.c,
	compat/strcasecmp.c, compat/strerror.c, compat/strlcat.c,
	compat/strlcpy.c, compat/timespec.h, compat/utime.h,
	compat/utimes.c, doc/HISTORY, doc/history.pod, doc/license.pod,
	include/alloc.h, include/error.h, include/lbuf.h, include/list.h,
	include/missing.h, pathnames.h.in, plugins/sudoers/alias.c,
	plugins/sudoers/audit.c, plugins/sudoers/auth/sudo_auth.h,
	plugins/sudoers/boottime.c, plugins/sudoers/bsm_audit.c,
	plugins/sudoers/bsm_audit.h, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/find_path.c,
	plugins/sudoers/getspwuid.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/gram.y, plugins/sudoers/interfaces.c,
	plugins/sudoers/interfaces.h, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/match.c,
	plugins/sudoers/parse.h, plugins/sudoers/plugin_error.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/redblack.c,
	plugins/sudoers/redblack.h, plugins/sudoers/sudo_nss.h,
	plugins/sudoers/sudoers.h, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timestr.c,
	plugins/sudoers/toke.l, plugins/sudoers/visudo.c, src/aix.c,
	src/conversation.c, src/error.c, src/load_plugins.c,
	src/parse_args.c, src/sesh.c, src/sudo.h, src/sudo_noexec.c,
	src/sudo_plugin_int.h, src/sudo_usage.h.in, src/tgetpass.c:
	Update copyright year
	[b72a530fd]

	* doc/Makefile.in:
	Fix commented DEVDOCS when not in devel mode.
	[a7a4ec6fb]

	* plugins/sudoers/match.c:
	Quiet a compiler warning.
	[b09a643ff]

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y:
	Quiet a compiler warning.
	[848b636f2]

	* plugins/sudoers/ldap.c, plugins/sudoers/sudoers.h:
	Make all functions in ldap.c static
	[3430618c7]

	* doc/schema.ActiveDirectory:
	Updates from Alain Roy to provide better examples for importing the
	schema and to fix problems caused by Windows validating attributes
	which have not yet been added before committing the changes.
	[93d48cfc6]

2010-06-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in, doc/Makefile.in, doc/sudo.cat,
	doc/sudo.man.in, doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.man.in, doc/sudoreplay.cat, doc/sudoreplay.man.in,
	doc/visudo.cat, doc/visudo.man.in:
	Leave rules to build .man.in and .cat files uncommented but only
	make them part of the "all" rule in devel mode. Generate .cat files
	directly from .man.in instead of .man using default values in
	configure.in
	[ec77318e3]

	* configure, configure.in:
	Bump sudo version to 1.8.0b1
	[608a3e7a2]

	* configure, configure.in, src/sudo.c, src/sudo_usage.h.in:
	Print configure args with verbose version information.
	[a28a4764e]

	* TODO, plugins/sudoers/visudo.c:
	Remove tfd from struct sudoersfile; it is not used. Add prev pointer
	to struct sudoersfile. Declare list of sudoersfile using TQ_DECLARE.
	Use tq_append to append sudoers entries to the tail queue.
	[3516d7f0e]

2010-06-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW:
	Describe tty timestamp improvements
	[6d0b74cf1]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	A comment character may not be part of a command line argument
	unless it is quoted with a backslash. Fixes parsing of: testuser
	ALL=NOPASSWD: /usr/bin/wl #comment foo bar closes bz #441
	[27a94faf7]

	* doc/sudoers.pod:
	Make this read a little bit better when passwd_timeout is 0.
	[f67ac02af]

	* doc/sudo.man.in, doc/sudo.man.pl, doc/sudo.pod:
	Attempt to handle a default password prompt timeout of zero more
	gracefully.
	[10d83e2cb]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	Do not override value of keepopen global, instead restore it to the
	value we pushed onto the stack when popping.
	[32d4697a8]

	* plugins/sudoers/Makefile.in:
	Add dependency for utility programs on libreplace and libcommon
	[17a8bd807]

	* compat/sigaction.c, config.h.in, configure.in, include/compat.h,
	plugins/sudoers/logging.c, plugins/sudoers/mon_systrace.c,
	src/exec.c, src/exec_pty.c, src/tgetpass.c:
	Remove sigaction emulation Use SA_INTERRUPT in sa_flags
	[047fc3876]

	* MANIFEST, config.h.in, configure, configure.in, include/missing.h:
	We don't use getgrouplist() at the moment so there's no need to
	provide a compat version.
	[e54cfc9bd]

	* TODO:
	sync with reality
	[779528487]

	* include/sudo_plugin.h, plugins/sudoers/auth/sudo_auth.c,
	src/conversation.c, src/sudo.h, src/tgetpass.c:
	Fix visiblepw sudoers option; the plugin API portion still needs
	documenting
	[e146aaaa2]

	* src/sudo.c:
	Print sudo version as well.
	[879d01796]

	* plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c:
	Use sudo_printf for I/O log version Clarify policy plugin version
	string
	[1fbb1819e]

	* plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/ldap.c, plugins/sudoers/sudoreplay.c:
	Silence some compiler warnings
	[c6371aa48]

	* src/load_plugins.c, src/tgetpass.c:
	Store askpass path in a global instead of uses setenv() which many
	systems lack.
	[b91b65722]

2010-06-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.pod, doc/sudo_plugin.cat,
	doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	plugins/sudoers/check.c, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/load_plugins.c, src/parse_args.c,
	src/tgetpass.c:
	Move askpass path specification from sudoers to sudo.conf.
	[eec336115]

	* src/exec.c, src/exec_pty.c, src/sudo.c, src/sudo.h:
	Use a flag bit in struct command_details for selinux instead of a
	separate field.
	[34613c846]

	* src/exec.c, src/exec_pty.c, src/sudo.c, src/sudo.h:
	Implement background mode. If I/O logging we use pipes instead of a
	pty.
	[4c1ef1264]

	* compat/mksiglist.c, compat/strsignal.c, include/compat.h,
	src/exec.c, src/exec_pty.c, src/tgetpass.c:
	Move compat definition of NSIG to compat.h
	[c5a6ca998]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.pod, doc/sudo_plugin.cat,
	doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Mention plugins in the sudo manual and add some missing path
	substitution in the sudo_plugin manual.
	[9d09966aa]

	* src/Makefile.in:
	Set _PATH_SUDO_CONF based on $(sysconfdir)
	[474392821]

	* common/lbuf.c, common/term.c, config.h.in, configure,
	configure.in, src/exec.c, src/exec_pty.c, src/ttysize.c:
	Require POSIX termios to build sudo
	[e5283b2f9]

	* src/tgetpass.c:
	Ignore SIGPIPE for "sudo -S"
	[82a56e421]

	* src/tgetpass.c:
	Fix uninitialized variable in TGP_ECHO case and print a newline if
	the user interrupted password input.
	[afb3f9dbf]

	* src/tgetpass.c:
	Make TGP_ECHO override TGP_MASK and don't try to restore the
	terminal if we didn't modify it.
	[3e9ecaf1e]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	include/sudo_plugin.h, plugins/sudoers/auth/sudo_auth.c,
	src/conversation.c, src/sudo.h, src/tgetpass.c:
	Add SUDO_CONV_PROMPT_MASK define which corresponds to the
	"pwfeedback" sudoers option. Do not disable echo if TGP_ECHO is set.
	[a4a6620b2]

	* src/exec_pty.c:
	Use POSIX tcgetpgrp() instead of BSD TIOCGPGRP ioctl
	[51f70f204]

2010-06-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec.c, src/exec_pty.c, src/selinux.c, src/sudo.c, src/sudo.h:
	Add selinux_enabled flag into struct command_details and set it in
	command_info_to_details(). Return an error from selinux_setup()
	instead of exiting. Call selinux_setup() from exec_setup().
	[edd34a2d7]

2010-06-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/exec_pty.c:
	Remove commented out copy of old sudo_execve() function.
	[ecfb70b05]

2010-06-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Fix setting selinux type on command line.
	[bcaf51ce6]

	* plugins/sudoers/iolog.c:
	In sudoers_io_close(), skip NULL io_fds[] elements.
	[9b4203606]

	* include/compat.h:
	No longer need NGROUPS_MAX define
	[16da9fe80]

	* compat/nanosleep.c, config.h.in, configure, configure.in,
	include/compat.h, plugins/sudoers/check.c, plugins/sudoers/iolog.c,
	plugins/sudoers/visudo.c, src/sudo_edit.c:
	Replace timerfoo macros with timevalfoo since the timer macros are
	known to be busted on some systems.
	[79f178923]

	* src/exec_pty.c:
	Remove duplicate call to selinux_setup().
	[0be6bab05]

	* plugins/sudoers/auth/pam.c:
	If pam_open_session() fails, pass its status to pam_end.
	[426435c12]

	* plugins/sudoers/toke.c, plugins/sudoers/toke.l:
	If a file in a #includedir has improper permissions or owner just
	skip it. This prevents packages that incorrectly install a file into
	/etc/sudoers.d from breaking sudo so easily. Syntax errors in
	#includedir files still result in a parse error (for now).
	[303da7b82]

	* WHATSNEW, doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/iolog.c:
	Add use_pty sudoers option to force use of a pty even when not
	logging I/O.
	[6f05b565c]

	* plugins/sudoers/env.c, plugins/sudoers/sudoers.h:
	Make env_init() void as it never fails.
	[39e072c71]

	* plugins/sudoers/env.c:
	No longer use _NSGetEnviron so don't need crt_externs.h
	[280afece3]

	* plugins/sudoers/env.c:
	Remove unused VNULL define
	[26b501423]

2010-06-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Add #define for maximum session id
	[3aad38118]

	* MANIFEST, src/Makefile.in, src/exec.c, src/exec_pty.c, src/sudo.h:
	Split exec.c into exec.c and exec_pty.c
	[6717c59d7]

	* MANIFEST:
	Sync with source file moves.
	[d417d4e4e]

	* src/Makefile.in, src/get_pty.c:
	Rename pty.c -> get_pty.c
	[d6e7face2]

2010-06-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Only use I/O input log file if def_log_input is set and output file
	if def_log_output is set.
	[38138e7d1]

2010-06-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/strsignal.c:
	Update copyright year
	[5099b68b0]

	* src/pty.c:
	uid -> ttyuid
	[5aa2c7dcc]

	* plugins/sudoers/sudoers.c:
	For sudoedit, make a local copy of editor string si become part of
	argv. If no editor environment variable, split def_editor on ':'
	since it may be a colon-delimited path.
	[afa3589d5]

	* src/sudo_edit.c:
	Remove unneeded endpwent()/endgrent()
	[e3ac18f51]

	* doc/Makefile.in:
	Use value of nroff from configure
	[4ecb00566]

	* src/exec.c:
	Add missing const to I/O log action function
	[3fbd83478]

	* plugins/sudoers/check.c:
	Update copyright year and fix whitespace
	[8fa9464d0]

	* configure, configure.in:
	Fix typo
	[b97d47424]

	* plugins/sudoers/iolog.c:
	Remove redundant tty signal blocking in log function.
	[fe5723222]

2010-06-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Place static keyword where it belongs
	[4a7fc9a82]

	* plugins/sudoers/logging.c:
	Always use a printf format string for send_mail()
	[8ebd90998]

	* common/atobool.c, plugins/sudoers/ldap.c:
	Extend atobool() so we can use it in the LDAP code.
	[40e591c30]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.pod:
	Sudo now stashes tty ctime for tty_tickets on Solaris too.
	[59e292537]

	* plugins/sudoers/boottime.c:
	Fix dummy version of get_boottime()
	[fd1765b56]

2010-06-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	Enable tty_is_devpts() support for Solaris with the "devices"
	filesystem.
	[7ce0dfc61]

	* src/exec.c:
	Unbreak the non-io logging case.
	[cd26d2891]

	* src/conversation.c, src/sudo.c, src/sudo_plugin_int.h:
	Fix symbol name conflict with sudo_printf.
	[2b8fc46e2]

	* plugins/sudoers/auth/pam.c:
	Fix OpenPAM detection for newer versions.
	[41436a786]

	* plugins/sudoers/vasgroups.c:
	Sync with Quest sudo git repo
	[78e7c649f]

	* aclocal.m4, configure, configure.in:
	HP-UX ld uses +b instead or -R or -rpath Fix typo in libvas check
	Add missing template for ENV_DEBUG Adapted from Quest sudo
	[572c88541]

	* README.LDAP:
	Fix typos; from Quest Sudo
	[c24e6277f]

2010-06-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Add back -I$(top_srcdir); we need it for including compat/foo.h
	since we cannot rely on "foo.h" being found relative to the source
	file when the cwd is different.
	[1afba5165]

	* src/exec.c:
	Fix a bug where we could treat EAGAIN as a permanent error. Also set
	cstat if perform_io() returns an error.
	[1eafb30a4]

	* common/alloc.c, plugins/sudoers/boottime.c,
	plugins/sudoers/sudoers.c:
	Add casts to quiet compiler warnings.
	[2ee752410]

	* plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	Fix typo in ternary operator usage.
	[be3b7d615]

2010-05-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, configure, configure.in:
	Add --enable-warnings and fix typo in SUDO_IO_LOGDIR
	[942552798]

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod,
	doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.pod:
	Update docs to match sudoers I/O logging changes
	[4230d8562]

	* INSTALL, WHATSNEW, aclocal.m4, configure, configure.in,
	pathnames.h.in, plugins/sudoers/def_data.c,
	plugins/sudoers/def_data.h, plugins/sudoers/def_data.in,
	plugins/sudoers/defaults.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.h, plugins/sudoers/gram.y,
	plugins/sudoers/iolog.c, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoreplay.c:
	Break sudoers transcript feature up into log_input and log_output.
	[2dd29bf64]

	* plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/visudo.c:
	Use setprogname() as needed.
	[1a217bcc2]

	* plugins/sudoers/iolog.c, plugins/sudoers/sudoreplay.c:
	Adapt sudoreplay to iolog changes.
	[0e2d33b5f]

2010-05-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/iolog.c:
	Log all input and output into separate files and store a number on
	each timing file line to indicate which file the data is in.
	[e51fd3ab7]

	* plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Make sudoers_io functions static to iolog.c
	[b6f02f38c]

2010-05-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.pod, src/parse_args.c,
	src/sudo_usage.h.in:
	Completely remove the -L flag from the sudo front end.
	[73b630fa9]

	* plugins/sudoers/sudoreplay.c:
	Fix EAGAIN handling when writing to stdout.
	[1ffb76178]

	* plugins/sudoers/sudoers.c:
	Eliminate unused variables
	[e952c8c7f]

	* plugins/sudoers/sudoers.c, src/exec.c, src/sudo.c:
	Re-enable cleanup functions in sudoers plugin and sudo driver for
	error()/errorx().
	[d2d68aa24]

	* plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/defaults.c,
	plugins/sudoers/interfaces.c, plugins/sudoers/iolog.c,
	plugins/sudoers/parse.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c:
	Use sudo_printf to display verbose version information.
	[34e1a0676]

	* common/Makefile.in, compat/Makefile.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Minor Makefile cleanup: fix a typo, change the removal order in the
	clean targets, and remove a superfluous include path for the sudoers
	plugin.
	[303d85606]

	* plugins/sudoers/env.c:
	Handle duplicate variables in the environment. For unsetenv(), keep
	looking even after remove the first instance. For sudo_putenv(),
	check for and remove dupes after we replace an existing value.
	[c31ed2cd2]

2010-05-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Use explicit path to source file instead of $< for files that live
	in devdir and top_srcdir.
	[12aedc675]

	* plugins/sudoers/Makefile.in:
	Add explicit rules to compile gram.c and toke.c for HP-UX Pevent
	ending LIBSUDOERS_OBJS with a backslash
	[a8bb0ea0a]

	* plugins/sudoers/Makefile.in, src/Makefile.in:
	Link libcommon before libreplace since libcommon may use functions
	only present in libreplace.
	[62f470a57]

	* common/Makefile.in:
	Move code common to sudo and the sudoers plugin to a convenience
	library, libcommon. Removes the need to make links in the sudoers
	plugin dir and reduces re-compilation of duplicate object files.
	[c4feed1cc]

	* Makefile.in, common/alloc.c, common/atobool.c, common/fileops.c,
	common/fmt_string.c, common/gettime.c, common/lbuf.c, common/list.c,
	common/term.c, common/zero_bytes.c, configure, configure.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Move code common to sudo and the sudoers plugin to a convenience
	library, libcommon. Removes the need to make links in the sudoers
	plugin dir and reduces re-compilation of duplicate object files.
	[b8b006a88]

	* src/exec.c, src/sudo.c, src/sudo.h:
	Rename script_execve to sudo_execve and rename script_foo in exec.c
	[9773ba3f7]

	* MANIFEST, src/Makefile.in, src/exec.c:
	rename script.c exec.c and fix up the MANIFEST file
	[4248a11ef]

	* src/script.c, src/sudo.c, src/sudo.h:
	Rename script_setup() to pty_setup() and call from script_execve()
	directly.
	[f8f82ffa8]

	* configure, configure.in:
	bump version to 1.8.0a2
	[349fedb02]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Document init_session
	[0b6a687bf]

	* plugins/sudoers/auth/API, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h:
	Clean up the sudoers auth API a bit and update the docs.
	[b2ed46652]

	* include/sudo_plugin.h, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, src/script.c, src/sudo.c:
	Add init_session function to struct policy_plugin that gets called
	before the uid/gid/etc changes. A struct passwd pointer is passed
	in,which may be NULL if the user does not exist in the passwd
	database.The sudoers module uses init_session to open the pam
	session as needed.
	[7e6d1d1f7]

2010-05-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/pam.c, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/auth/sudo_auth.h, plugins/sudoers/set_perms.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Add open/close session to sudo auth, only used by PAM. This allows
	us to open (and close) the PAM session from sudoers.
	[27be96c9c]

	* plugins/sudoers/Makefile.in:
	Add explicit rule to build getdate.o for HP-UX make.
	[a0646aa4a]

	* plugins/sudoers/Makefile.in:
	Back out most of change 45e406ebdea2. Create dummy .l.c and .y.c
	rules as an alternate way to prevent HP-UX make (and others) from
	trying to rebuild the parser in non-dev mode.
	[f14d3dca1]

	* plugins/sudoers/sudoers.c:
	Re-enable PATH_MAX check for command
	[4695dd1b7]

	* Makefile.in:
	For distclean, clean the main directory last since the subdirs need
	to be able to run libtool to clean things.
	[c7d685b90]

	* compat/Makefile.in:
	Fix generation of mksiglist.h
	[acc60712e]

	* src/script.c:
	Now that we defer sending cstat until the end of script_child() we
	cannot reuse cstat when reading command status from parent.
	[efa908448]

2010-05-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in, doc/sudo.man.in, doc/sudo.man.pl,
	doc/sudoers.cat, doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in,
	doc/sudoers.man.in, doc/sudoers.man.pl, doc/sudoreplay.cat,
	doc/sudoreplay.man.in, doc/visudo.cat, doc/visudo.man.in:
	Use numeric registers to handle conditionals instead of trying to do
	it all with text processing.
	[807d1313a]

	* doc/sudoers.pod:
	Document per-command SELinux settings
	[5dd8e98ec]

	* plugins/sudoers/sudoers.c:
	Repair "sudo -l -U username"
	[45923111e]

	* plugins/sudoers/sudoers.c:
	Set selinux role and type in command details.
	[937b5f166]

	* src/script.c, src/selinux.c, src/sudo.h:
	Rework SELinux support.
	[2942edcbd]

2010-05-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c, src/selinux.c, src/sudo.h:
	Make SELinux support compile again. Needs more work to be complete.
	[5f857e6e5]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	src/parse_args.c, src/script.c, src/selinux.c, src/sudo.c,
	src/sudo.h:
	Bring back closefrom settings.
	[0487aee6b]

	* plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	If running a command or sudoedit in transcript mode, call
	io_nextid() before log_allowed() so the session id is logged.
	[60e0e496e]

	* configure, configure.in:
	Use mandoc(1) if nroff(1) is not present.
	[79cb53c62]

	* doc/Makefile.in:
	Use the --file argument to config.status instead of setting
	CONFIG_FILES in the environment.
	[b519f7a09]

	* plugins/sudoers/Makefile.in:
	We cannot conditionally update gram.h or the dependency ordering
	gets messed up in devel mode.
	[5dd7fd430]

2010-05-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, compat/Makefile.in, configure, configure.in,
	doc/Makefile.in, include/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	Substitute @SHELL@ into Makefiles
	[8a8830e34]

	* config.sub:
	Fix typo
	[222a4f7c8]

	* config.guess, config.sub, configure, configure.in:
	Update to autoconf 2.65
	[755752c6b]

	* Makefile.in:
	Fix libtool target (space vs. tabs)
	[815e40128]

	* config.h.in, plugins/sudoers/logging.h, plugins/sudoers/visudo.c:
	Remove use of RETSIGTYPE; all modern systems have signal handlers
	that return void.
	[8ae8e8442]

	* Makefile.in, aclocal.m4, acsite.m4, configure, configure.in,
	ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltsugar.m4,
	m4/ltversion.m4, m4/lt~obsolete.m4, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	Update to libtool-2.2.6b. I haven't made any local modifications
	this time, which should be OK since we install sudo_noexec.so by
	hand now.
	[51b558e75]

	* compat/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	Use libtool to clean objects
	[6b370cb02]

	* include/Makefile.in:
	Install sudo_plugin.h as part of "make install" and make other
	install targets callable from the top-level Makefile
	[a60f268a7]

	* configure, configure.in:
	regen with autoupdate to eliminate AC_TRY_LINK
	[60b532155]

	* Makefile.in, compat/Makefile.in, configure, configure.in,
	doc/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	Install sudo_plugin.h as part of "make install" and make other
	install targets callable from the top-level Makefile
	[95d939f9b]

	* plugins/sample/sample_plugin.c:
	The sample plugin doesn't support being run with no args so return a
	usage error in this case.
	[b628e15dc]

	* plugins/sudoers/iolog.c:
	Set close on exec flag for descriptors used for I/O logging so they
	are not present in the command being run.
	[f59669fc2]

	* plugins/sudoers/tsgetgrpw.c:
	Set close on exec flag in private versions of setpwent() and
	setgrent().
	[d3d8364d4]

	* src/script.c:
	Close the I/O pipes aftering dup2()ing them to std{in,out,err}.
	Fixes extra fds being present in the command when it is part of a
	pipeline.
	[16c2769ed]

	* plugins/sudoers/sudoers.c:
	Set user_tty to "unknown" if there is no tty, like sudo 1.7 does (it
	is used when logging). Note that user_ttypath will still be NULL if
	there is no tty.
	[529bfcf67]

	* src/script.c, src/sudo.h:
	Cosmetic changes: add comments, remove orphaned prototype and make a
	global static.
	[064cffd57]

2010-05-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c:
	Move check for maxfd == -1 to flush_output where it belongs.
	[a9a16d733]

	* src/script.c:
	Break out of select loop if all the fds we want to select on are -1.
	[d18b458e1]

	* src/sudo.c:
	Avoid possible malloc(0) if plugin returns an empty groups list.
	[20c125297]

	* src/sudo.c:
	Add debugging info when calling plugin close function
	[9360e67a3]

	* src/script.c:
	Avoid closing stdin/stdout/stderr when we are piping output.
	[882fe3ac4]

	* src/script.c:
	When execve() of the command fails, it is possible to receive
	SIGCHLD before we've read the error status from the pipe. Re-order
	things such that we send the final status at the very end and prefer
	error status over wait status.
	[f8ff26831]

2010-05-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/sudo_auth.c:
	Fix compilation for non PAM/BSD auth/AIX auth
	[d2b8bad2a]

2010-05-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c:
	Additional checks to make sure we don't close /dev/tty by mistake.
	When flushing, sleep in select as long as we have buffers that need
	to be written out.
	[0eec7335a]

	* src/script.c:
	Now that we can use pipes for stdin/stdout/stderr there is no longer
	a need to error out when there is no tty. We just need to make sure
	we don't try to use the tty fd if it is -1.
	[6a2a182e0]

2010-05-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	include/sudo_plugin.h, plugins/sample/sample_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/sudoers.h, src/sudo.c:
	Add argc and argv to I/O logger open function.
	[55ef027d8]

	* doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	include/sudo_plugin.h, plugins/sample/sample_plugin.c,
	plugins/sudoers/sudoers.c, src/parse_args.c, src/sudo.c,
	src/sudo_edit.c:
	Remove check_sudoedit function pointer in struct sudo_policy.
	Instead, sudo will set sudoedit=true in the settings array. The
	plugin should check for this and modify argv_out as appropriate in
	check_policy.
	[fa717176b]

2010-05-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sample/sample_plugin.c, src/sudo.c, src/sudo.h,
	src/sudo_edit.c:
	If plugin sets "sudoedit=true" in the command info, enable sudoedit
	mode even if not invoked as sudoedit. This allows a plugin to enable
	sudoedit when the user runs an editor.
	[3ac9aee52]

2010-05-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	gram.h must not depend on gram.y if we want to avoid unnecessary
	rebuilding of targets dependent on gram.h when gram.y changes.
	[285ccb152]

	* plugins/sample/sample_plugin.c:
	Refactor common bits of check_policy and check_edit
	[2d785a795]

	* plugins/sample/sample_plugin.c:
	Add sudoedit support
	[31087fdcd]

2010-05-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in:
	Rely more on VPATH; fixes a dependency issue with the parser.
	[3efb055c8]

	* include/compat.h:
	Fix typo introduced in last commit
	[d7f238ffa]

	* include/compat.h:
	Emulate seteuid using setreuid() or setresuid() as needed. There are
	still a few places that call seteuid() directly.
	[553361aca]

	* src/parse_args.c, src/sudo_edit.c:
	Attempt to fix building on systems that only have setuid.
	[e336dac87]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Clarify sudoedit a tad.
	[9a6cbe03b]

2010-05-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo_edit.c:
	Fix compilation on HP-UX
	[39652bf75]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Document sudoedit
	[c8a62b1ec]

	* plugins/sudoers/sudoers.c, src/sudo.c, src/sudo.h,
	src/sudo_edit.c:
	Change how we handle the sudoedit argv. We now require that there be
	a "--" in argv to separate the editor and any command line arguments
	from the files to be edited.
	[7c9c5855f]

	* include/sudo_plugin.h, plugins/sample/sample_plugin.c,
	plugins/sudoers/Makefile.in, plugins/sudoers/set_perms.c,
	plugins/sudoers/sudoers.c, src/Makefile.in, src/gettime.c,
	src/parse_args.c, src/sudo.c, src/sudo.h, src/sudo_edit.c:
	Work in progress support for sudoedit. The actual interface used by
	the plugin for sudoedit is likely to change.
	[fdd28d411]

	* plugins/sudoers/find_path.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/visudo.c:
	Make find_path() a little more generic by not checking def_foo
	variables inside it. Instead, pass in ignore_dot as a function
	argument.
	[d5bfd148d]

	* plugins/sudoers/env.c:
	Add version of getenv(3) that uses our own environ pointer.
	[832ce341e]

2010-05-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c:
	Avoid a potential race condition if SIGCHLD is received immediately
	before we call select().
	[396317ffe]

	* plugins/sudoers/sudoers.c:
	Call env_init() before we open the sudoers sources as those may call
	our setenv() replacement.
	[1487026b0]

	* plugins/sudoers/env.c:
	Initialize env_len in env_init()
	[754c1a16d]

2010-05-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.pod:
	Document time stamp shortcomings under SECURITY NOTES Use "time
	stamp" instead of timestamp.
	[21ba4a468]

	* doc/Makefile.in:
	Make sed substitution of mansectsu and mansectform global.
	[ad4700e7a]

	* plugins/sudoers/check.c:
	If the tty lives on a devpts filesystem, stash the ctime in the tty
	ticket file, as it is not updated when the tty is written to. This
	helps us determine when a tty has been reused without the user
	authenticating again with sudo.
	[a331dcb46]

	* src/tgetpass.c:
	Fix pasto in mulitple signal fix and use _NSIG not NSIG since that
	is what our compat checks set.
	[8ea8de47f]

	* configure, configure.in:
	Add check for whether sudo need to link with -ldl to get dlopen().
	This is a bit of a hack that will get reworked when libtool is
	updated.
	[06e650a45]

	* plugins/sudoers/check.c:
	Fix timestamp removal with -k/-K
	[b89980ac6]

	* plugins/sudoers/Makefile.in:
	audit.c is now private to the sudoers plugin
	[e324082d5]

	* configure, configure.in:
	Link with -lpthread on HP-UX since a plugin may be linked with
	-lpthread and dlopen() will fail if the shared object has a
	dependency on -lpthread but the main program is not linked with it.
	[7502a3d71]

	* config.h.in, configure, configure.in, plugins/sudoers/set_perms.c:
	Add separate test for getresuid() since HP-UX has setresuid() but no
	getresuid().
	[f38afc977]

	* doc/Makefile.in:
	Remove errant backslash
	[c76e6aa1e]

	* src/script.c:
	Fix SIGPIPE handling. Now that we use may use pipes for stdin/stdout
	we need to pass any SIGPIPE we receive to the running command.
	[cafc6a4f6]

	* src/script.c:
	Also start the command in the background if stdin is not a tty.
	[02f8c187a]

2010-05-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoreplay.c, src/script.c, src/sudo.h,
	src/term.c:
	No need to use pseudo-cbreak mode now that we use pipes when stdout
	is not a tty. Instead, check whether stdin is a tty and if not,
	delay setting the tty to raw mode until the command tries to access
	it itself (and receives SIGTTIN or SIGTTOU).
	[c2d0888bf]

	* src/tgetpass.c:
	Use an array for signals received instead of a single variable so we
	don't lose any when there are multiple different signals.
	[cbb3010d7]

	* src/tgetpass.c:
	Do signal setup after turning off echo, not before. If we are using
	a tty but are not the foreground pgrp this will generate SIGTTOU so
	we want the default action to be taken (suspend process).
	[5adda153a]

2010-05-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c:
	Flush the iobufs on suspend or child exit using the same logic as
	the main event loop.
	[23a9bf2c0]

	* src/script.c:
	Free memory after we are done with it.
	[b08a96eea]

2010-05-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/HISTORY:
	Quest now sponsors Sudo development
	[247f7acaa]

2010-05-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/Makefile.in:
	Install sudo_plugin man page.
	[75f63d998]

	* src/script.c:
	Go back to reseting io_buffer offset and length (and now also the
	EOF handling) in the loop we do the FD_SET, not after we drain the
	buffer after write() since we don't know what order reads and writes
	will occur in.
	[3cbbf27e9]

	* MANIFEST:
	audit files moved to sudoers plugin directory
	[0af98f2e9]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Document plugin_printf and new logging functions.
	[7da9e1a91]

	* src/script.c:
	Add support for logging stdin when it is not a tty. There is still a
	bug where "cat | sudo cat" has problems because both cat and sudo
	are trying to read from the tty.
	[b4d16ae1a]

	* include/sudo_plugin.h, plugins/sample/sample_plugin.c,
	plugins/sudoers/sudoers.c, src/script.c:
	Add separate I/O logging functions for tty in/out and
	stdin/stdout/stderr. NOTE: stdin logging does not currently work and
	is disabled for now.
	[782f49400]

2010-05-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/sudo_plugin.h, plugins/sample/sample_plugin.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/logging.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	src/conversation.c, src/sudo.c, src/sudo_plugin_int.h:
	Add pointer to a printf like function to plugin open functon. This
	can be used instead of the conversation function to display info and
	error messages.
	[9fbec34fe]

	* Makefile.in:
	Stop if make in a subdir fails
	[b60b28abd]

	* src/script.c:
	Only set user's tty to blocking mode when doing the final flush.
	Flush pipes as well as pty master when the process is done.
	[e3f561668]

2010-05-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/ldap.c:
	Use print_error() when displaying ldap config info in debugging
	mode.
	[dc72c27b1]

	* compat/Makefile.in, compat/strdup.c, compat/strndup.c:
	No longer need strdup() or strndup() replacements.
	[9166c156e]

	* plugins/sudoers/logging.c, plugins/sudoers/plugin_error.c,
	plugins/sudoers/sudoers.h:
	Add print_error() function that uses the conversation function to
	print a variable number of error strings and use it in log_error().
	[13966481c]

	* src/script.c, src/sudo.h, src/term.c:
	Do not need the opost flag to term_copy() now that we use pipes for
	stdout/stderr when they are not a tty.
	[0eda64b23]

	* src/script.c:
	Use pipes to the sudo process if stdout or stderr is not a tty.
	Still needs some polishing and a decision as to whether it is
	desirable to add additonal entry points for logging
	stdout/stderr/stdin when they are not ttys. That would allow a
	replay program to keep things separate and to know whether the
	terminal needs to be in raw mode at replay time.
	[dd256f25c]

2010-04-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in, plugins/sudoers/audit.c,
	plugins/sudoers/bsm_audit.c, plugins/sudoers/bsm_audit.h:
	Move audit sources into the sudoers plugin dir; the driver does not
	use them.
	[547502056]

	* compat/getline.c, compat/mksiglist.c, compat/nanosleep.c,
	compat/strdup.c, compat/strndup.c, plugins/sample/sample_plugin.c,
	plugins/sudoers/boottime.c, plugins/sudoers/getdate.c,
	plugins/sudoers/match.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/timestr.c, plugins/sudoers/vasgroups.c, src/alloc.c,
	src/atobool.c, src/audit.c, src/lbuf.c, src/list.c, src/sesh.c,
	src/term.c, src/ttysize.c:
	Use angle brackets when including headers that can only be found
	when an -I flag is specified. The files in the compat dir could get
	away with double quotes here but I've converted all the source files
	to use angle brackets for consistency.
	[d346e5090]

	* plugins/sudoers/Makefile.in:
	Add missing -I$(top_srcdir) to CPPFLAGS so includes in the compat
	dir can be found when building outside the source tree.
	[143866404]

	* plugins/sudoers/Makefile.in:
	Clean up links in distclean
	[1473d7863]

	* plugins/sudoers/Makefile.in:
	Hack around VPATH semantic differences by symlinking files we need
	from ../../src into the current directory and build those. A better
	fix would be to either make a .a or .la file with those files in it
	or simply use a single, flat, Makefile instead of per-subdirs
	Makefiles.
	[8cfde4f9d]

	* plugins/sudoers/Makefile.in, src/Makefile.in, src/fmt_string.c:
	fmt_string is used by the sudoers plugin too so do not include
	sudo.h (which is not really needed here anyway)
	[23f9bb59e]

	* compat/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	Fix building with non-BSD versions of make such as GNU make.
	Requires VPATH support, which should be in any non-neolithic make.
	[5e9ec6a36]

	* configure, configure.in, plugins/sudoers/Makefile.in,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/sudoers.c,
	src/Makefile.in:
	Re-enable bsm audit. Currently auditing is done within the sudoers
	plugin itself. If possible, this should really be done in the main
	driver but we don't presently have the needed data to do that. This
	will be re-evaluated when Linux audit support is added.
	[f42cf76d8]

	* compat/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	Remove extraneous $srcdir and use more .c.lo and .c.o rules instead
	of explicit rules in the dependency.
	[0c7e3235f]

	* plugins/sudoers/visudo.c:
	Fix mismerge; alias_remove_recursive() now returns int
	[8b832576e]

2010-04-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/visudo.c:
	Fix a crash when checking a sudoers file that has aliases that
	reference themselves. Based on a diff from David Wood.
	[d26d942c2]

	* src/script.c:
	Print signal info after restoring the tty mode, not before.
	[8fc1ebd4f]

	* src/script.c:
	Defer call to alarm() until after we fork the child. Pass correct
	pid to terminate_child() If the command exits due to signal, set
	alive to false like we do when it exits normally. Add missing check
	for errpipe[0] != -1 before using it in FD_ISSET
	[f45b1e82e]

2010-04-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/boottime.c:
	Use 1/0 instead of TRUE/FALSE so we don't need sudoers.h
	[2ee651df7]

2010-04-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/Makefile.in:
	Simplify dependencies by using .c.o and .c.lo rules.
	[935aef498]

	* configure, configure.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Substitute in @PROGS@ into src/Makefile to add sesh
	[1c67169b9]

2010-04-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Add back calls to log_denial() if sudoers does not allow the
	command.
	[b0b6b4cf5]

	* plugins/sudoers/sudoers.c:
	Pass in correct pwflag for list and validate.
	[e1a9e5aec]

	* plugins/sudoers/env.c:
	Add missing check for NULL in validate_env_vars
	[ac06e777f]

	* src/Makefile.in:
	Add sudo_noexec.la to "all" target, otherwise it only gets built at
	install time.
	[c8733dbc6]

	* plugins/sudoers/sudoers.c:
	Only set sudo_user.env_vars if the env_add list is empty.
	[1abb3b7f5]

	* plugins/sudoers/sudoers.c:
	Set sudo_user.env_vars so that environment variables specified on
	the command line get logged correctly.
	[90f8bf348]

	* plugins/sudoers/env.c, plugins/sudoers/logging.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Re-enable environment files and setting environment variables on the
	command line.
	[b041c91ca]

2010-04-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c:
	Fix typo in last commit (ifndef vs ifdef) Make sure we pass ctime()
	a pointer to time_t as tv_sec in struct timeval may be long.
	[af092dc40]

	* plugins/sudoers/check.c:
	Don't stash ctime in on-disk tty ticket info for now; on many
	(most?) systems the ctime is updated when the tty is written to.
	Once I have a better idea of what systems do not update ctime on
	ttys (and have a way to test for this) the ctime stash will be
	conditionally re-enabled.
	[17220f44d]

2010-04-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* MANIFEST, Makefile.in:
	Add back "dist" target, this time using a MANIFEST file
	[1b6f3fda2]

	* Makefile.in:
	Remove Makefile in distclean target
	[6b6375108]

	* Makefile.in, src/Makefile.in:
	Update clean and cleandir targets
	[03536ca93]

	* include/fileops.h, plugins/sudoers/sudoers.h, src/fileops.c,
	src/sudo.h:
	Move fileops.c defines and prototypes to filesops.h
	[4b04e875e]

	* plugins/sudoers/check.c:
	Lock the tty timestamp when writing. We shouldn't have to lock when
	reading since the file is updated via a single write system call.
	[f7f9def5e]

2010-04-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/alias.c, plugins/sudoers/check.c,
	plugins/sudoers/defaults.c, plugins/sudoers/find_path.c,
	plugins/sudoers/getspwuid.c, plugins/sudoers/gettime.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/interfaces.c,
	plugins/sudoers/iolog.c, plugins/sudoers/ldap.c,
	plugins/sudoers/logging.c, plugins/sudoers/match.c,
	plugins/sudoers/nonunix.h, plugins/sudoers/parse.c,
	plugins/sudoers/pwutil.c, plugins/sudoers/redblack.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestr.c, plugins/sudoers/tsgetgrpw.c,
	plugins/sudoers/vasgroups.c, plugins/sudoers/visudo.c:
	Convert to ANSI C function declarations
	[05ae3ea6c]

	* plugins/sudoers/sudoers.h:
	Remove extraneous bits and classify by source file.
	[c17d3e061]

	* include/compat.h:
	Add timercmp macro for systems without it
	[2bc52eb39]

	* plugins/sudoers/boottime.c, plugins/sudoers/check.c,
	plugins/sudoers/sudoers.h:
	get_boottime() now fills in a timeval struct
	[6a27866c3]

	* plugins/sudoers/check.c:
	Store info from stat(2)ing the tty in the tty ticket when tty
	tickets are in use. On most systems, this closes the loophole
	whereby a user can log out of a tty, log back in and still have the
	timestamp be valid.
	[7d6941a82]

	* config.h.in, configure.in:
	Add timespec2timeval and use it when getting ctime/mtime
	[f19ffcc6b]

2010-04-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/set_perms.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/testsudoers.c:
	Convert perm setting to push/pop model; still needs some work Use
	the stashed runas groups instead of using getgrouplist() Reset perms
	to the initial value on error
	[1bb9f6214]

	* config.h.in, configure.in:
	fix ctim_get and mtim_get macros
	[ab00ce995]

	* config.h.in, configure, configure.in, include/compat.h,
	plugins/sudoers/check.c, plugins/sudoers/gettime.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/visudo.c, src/fileops.c:
	Use timeval directly instead of converting to timespec when dealing
	with file times and time of day.
	[b4a26b769]

	* plugins/sudoers/Makefile.in:
	Don't like sudoreplay with libsudoers.la due to a yacc symbol
	conflict.
	[0a3a849ef]

2010-04-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Darwin >= 9.x has real setreuid(2)
	[c47ab0273]

2010-04-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/env.c, plugins/sudoers/sudoers.h:
	Ansify env.c
	[257133328]

	* plugins/sudoers/env.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Remove remaining references to the environ pointer.
	[0df204052]

2010-04-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, plugins/sudoers/env.c:
	Don't change the environ directly in the sudoers plugin
	[b71844daf]

2010-04-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Fix typo
	[9f0b8f7aa]

	* plugins/sudoers/alias.c:
	Fix use after free in error message when a duplicate alias exists.
	[399aa0d5c]

2010-04-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	src/parse_args.c:
	Add a "noninteractive" boolean to the settings passed in to the
	plugin's open function that is set when the user specifies the -n
	flag.
	[bc813db52]

	* config.h.in, configure, configure.in, plugins/sudoers/env.c:
	Add workaround for the lack of the environ pointer on Mac OS X in
	dlopen()ed modules. Use of environ in the sudoers plugin should
	ultimately be removed but this will do for the moment.
	[fb87c040c]

	* plugins/sudoers/visudo.c:
	Set errorfile to the sudoers path if we set parse_error manually.
	This prevents a NULL dereference in printf() when checking a sudoers
	file in strict mode when alias errors are present.
	[2b7f0ca95]

	* plugins/sudoers/sudoers.c:
	Main sudo no longer print "unable to execute" on exec failure so do
	it here.
	[6aecf3fb1]

2010-04-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c:
	Use a pipe to pass back errno to the parent if execve() fails. If we
	get an error in script_child(), kill the command and exit.
	[ea523b17a]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	src/parse_args.c, src/sudo.c:
	Handle plugin's open function returning -2 (usage error).
	[f19be6da3]

	* src/script.c:
	If execve() fails, leave it to the plugin to print an error string.
	[40533f381]

	* src/script.c:
	If execve fails in logging mode, pass the errno directly to the
	grandparent on the backchannel and exit. The immediate parent will
	get SIGCHLD and try to report that status but its parent will no
	longer be listening. It would probably be cleaner to pass this over
	a pipe in script_child().
	[e472e4ae0]

	* plugins/sudoers/sudoers.c:
	Don't override rval with results of check_user() unless it failed.
	[f321a8581]

2010-04-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	Fix typo
	[fa2f5f53d]

	* src/parse_args.c:
	NULL-terminate env_add
	[7ce802792]

2010-04-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo.c:
	Call the I/O log open function before the I/O version function.
	[0494774f3]

	* plugins/sudoers/iolog.c:
	Remove io_conv and just use sudo_conv
	[7c344181d]

	* plugins/sudoers/set_perms.c:
	Fix set/restore perms for systems w/o setresuid
	[0d2524e68]

2010-04-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/check.c, plugins/sudoers/logging.c,
	plugins/sudoers/parse.c, plugins/sudoers/set_perms.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h:
	Primitive set/restore permissions. Will be replaced by a push/pop
	model.
	[744eae82e]

	* src/script.c:
	Only need to take action on SIGCHLD in parent if no I/O logger. If
	there is an I/O logger we will receive ECONNRESET or EPIPE when we
	try to read from the socketpair.
	[711b8d1c0]

2010-04-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* :
	Merge fb4d571495fa from the 1.7 branch to trunk.
	[32672c1f1]

	* find_path.c:
	Qualify the command even if it is in the current working directory,
	e.g. "./foo" instead of just returning "foo". This removes an
	ambiguity between real commands and possible pseudo-commands in
	command matching.
	[96fdf201f]

2010-04-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c:
	Don't set SA_RESTART when registering SIGALRM handler. Do set
	SA_RESTART when registering SIGWINCH handler.
	[93126eb5a]

	* doc/Makefile.in:
	Add dev targets for *.man.in and *.cat that don't specfify the
	$(srcdir) prefix.
	[7ebcbf102]

	* src/script.c:
	If log_input or log_output returns false, terminate the command.
	[b457f1371]

	* src/script.c:
	Better signal handling. Instead of using a single variable to store
	the received signal, use an array so we can't lose a signal when
	multiple are sent. Fix process termination by SIGALRM in non-I/O
	logger mode. Fix relaying terminal signals to the child in non-I/O
	logger mode.
	[5b3d15093]

	* src/script.c:
	Fix a race between when we get the child pid in the parent and when
	the child process exits. The problem exhibited as a hang after a
	short-lived process, e.g. "sudo id" when no IO logger was enabled.
	[a3f427838]

2010-04-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* doc/sudoers.cat, doc/sudoers.man.in, doc/sudoers.pod:
	Add a note about the security implications of the fast_glob option.
	[29f22dba2]

	* sudoers.cat, sudoers.man.in, sudoers.pod:
	Add a note about the security implications of the fast_glob option.
	[99f3be056]

	* memrchr.c:
	Remove duplicate includes
	[348fb6219]

2010-04-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in:
	Fix up some AC_DEFINE descriptions and regen config.h.in
	[6a5ea5be0]

2010-04-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/missing.h:
	No longer check for strdup or strndup for LIBOBJ replacement.
	[5770391ec]

	* src/script.c:
	Avoid installing signal handlers that are io-logger specific. Fixes
	job control when no io logger is enabled.
	[2634cf08c]

	* doc/Makefile.in:
	Only regen man pages from pod when configured with --with-devel
	[81819d0c0]

2010-04-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, configure, configure.in:
	Top-level Makefile.in. Nothing is currently substituted but this is
	needed for separate build dirs.
	[717da12e9]

	* compat/Makefile.in, doc/Makefile.in, plugins/sample/Makefile.in,
	plugins/sudoers/Makefile.in, src/Makefile.in:
	Fix out-of-tree builds
	[43b6359df]

	* :
	Merge
	[fb55653a4]

	* doc/Makefile.in:
	We always install sudoreplay in 1.8
	[d710ea091]

	* plugins/sudoers/iolog.c, plugins/sudoers/sudoers.c:
	Free str after using it in the version method. Use sudo_conv, not
	io_conv since we don't have the IO conversation function pointer in
	the I/O version method anymore now that io_open is delayed.
	[3242c1091]

2010-04-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/siglist.in:
	SIGPOLL is sometimes the same as SIGIO (like on HP-UX)
	[0716ab38a]

2010-04-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	No need to provide strdup() or strndup(), sudo uses estrdup() and
	estrndup()
	[c2eeceaa1]

	* compat/Makefile.in, compat/mksiglist.c, compat/mksiglist.h,
	compat/siglist.in:
	Add license to mksiglist.c and note that the bits from pdksh are
	public domain
	[8ca928740]

	* compat/Makefile.in:
	Fix LIBOBJDIR vs. srcdir wrt the siglist bits
	[7539f636b]

	* plugins/sudoers/Makefile.in:
	Add sudoreplay testsudoers and visudo to clean target
	[ee52f3c39]

	* compat/Makefile.in, compat/mksiglist.c, compat/mksiglist.h,
	compat/siglist.in, compat/strsignal.c, configure, configure.in,
	include/missing.h, src/script.c:
	Create our own sys_siglist for systems without it for use by
	strsignal()
	[8c91f0a30]

	* compat/Makefile.in:
	Remove duplicate $(LIBOBJDIR)
	[d83ebba56]

2010-04-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c, src/sudo.c, src/sudo_edit.c:
	Main sudo should not block signals; the plugin should do this in
	check_policy.
	[44341c9c1]

2010-03-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c:
	Fix a sizeof(ptr) vs. sizeof(*ptr)
	[ca2eee07b]

	* src/script.c:
	Unlike most operating systems, HP-UX select() is not interrupted by
	SIGCHLD when the signal is registered with SA_RESTART. If we clear
	SA_RESTART when calling sigaction() for SIGCHLD we get the expected
	behavior and the code in the select() loops already handles EINTR
	correctly.
	[c3e87c2db]

	* compat/getprogname.c:
	progname should be const
	[8cde6d699]

	* plugins/sudoers/Makefile.in:
	Move --tag=disable-static to when we link sudoers.la, not when we
	install.
	[3a9896711]

	* src/load_plugins.c:
	Load the sudoers I/O plugin by default too now that it is hooked up.
	[6c71d6afa]

2010-03-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/pty.c:
	It looks like AIX doesn't need to push STREAMS modules for ptys.
	[5d6f19671]

2010-03-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/parse_args.c, src/sudo.c:
	Delay calling the I/O plugin open function until the policy plugin
	returns success.
	[e17f1e5cb]

2010-03-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in, plugins/sudoers/iolog.c,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Add back io logging (transcript) support. Currently, the open
	function runs too early and it is not possible to use the io module
	independently of the policy module.
	[05e8023e7]

	* plugins/sudoers/set_perms.c:
	Comment out dead code; will be removed when set_perms is rewritten.
	[681c6faf3]

2010-03-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Fix off by one error when allocating user_groups.
	[eae881b5a]

2010-03-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in, plugins/sudoers/Makefile.in:
	Add REPLAY_LIBS for sudoreplay and add -lrt to it on Solaris.
	[0ea0d60cb]

	* plugins/sudoers/sudoers.c:
	Fix typo in preserve groups case
	[e12858ee9]

	* plugins/sudoers/sudoers.c:
	In command_info it is "runas_groups" not "groups".
	[fc63d106f]

	* src/sudo.c:
	Fix iteration over runas_groups list.
	[43ea59f64]

	* :
	Merge 5177a284b9ff 549f8f7c2463 88f3181692fe from 1.7 branch.
	[8df6ba9fe]

	* compat/getgrouplist.c:
	getgrouplist(3) for those without it
	[617fb0e31]

	* configure, configure.in:
	Fix installation of sudoers.ldap in "make install" when --with-ldap
	was specified without a directory. From Prof. Dr. Andreas Mueller
	[c2905815e]

	* plugins/sudoers/sudoers.c:
	Set preserve_groups or groups list in command_info
	[a72669d8a]

	* src/sudo.c:
	Fix setting of groups list
	[7af5cdfaf]

	* config.h.in, configure, configure.in, include/compat.h,
	include/missing.h:
	Add checks for getgrset and getgrouplist and use replacement
	getgrouplist if the system doesn't support it.
	[8db39a858]

	* src/parse_args.c:
	Pass in preserve_groups when the -P flag is specified as per the
	design
	[4b3665778]

	* plugins/sudoers/sudoers.c:
	Check preserve_groups and ignore_ticket args with atobool instead of
	assuming they are true if present.
	[0ea44bcba]

2010-03-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/Makefile.in, plugins/sudoers/plugin_error.c:
	Rename plugin-specific error.c to plugin_error.c Wire up visudo,
	sudoreplay and testsudoers in the build
	[066e6a7e8]

	* src/Makefile.in, src/term.c:
	term.c does not needto include sudo.h
	[74ce00482]

	* TODO, doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.pod:
	Document the -2 return in the check_policy section too
	[9edc09609]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	src/parse_args.c, src/sudo.c, src/sudo.h:
	Fix the -s and -i flags and add support for the "implied_shell"
	option. If the user does not specify a command, sudo will now pass
	in the path to the user's shell and set impied_shell=true. The
	plugin can them either check the command normally or return -2 to
	cause sudo to print a usage message and exit.
	[6b180d24d]

2010-03-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, src/load_plugins.c:
	Bring back SUDOERS_PLUGIN but add .dylib -> .so conversion for
	Darwin where libraries end in .dylib but modules end in .so
	[2e27226a0]

	* plugins/sudoers/parse.c:
	Better prefix determination now that we can't rely on len==0 to tell
	the beginning on an entry.
	[8c9db4ef6]

	* plugins/sudoers/ldap.c:
	display_bound_defaults() stub should return 0, not 1 since it is a
	count, not a boolean.
	[5fb6784ab]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Document progname in settings
	[18cd91d56]

	* compat/getprogname.c, include/compat.h,
	plugins/sample/sample_plugin.c, plugins/sudoers/sudoers.c,
	src/parse_args.c, src/sudo.c:
	Rewrite compat/getprogname.c and add setprogname(). The progname is
	now passed to the plugin via the settings array.
	[eec5235d1]

	* configure, configure.in, plugins/sudoers/Makefile.in:
	Fix --with-ldap
	[0dbf4362d]

	* plugins/sudoers/sudo_nss.c:
	Add missing whitespace for Runas and Command-specific defaults
	[71baab8ac]

	* plugins/sudoers/ldap.c, plugins/sudoers/parse.c,
	plugins/sudoers/sudo_nss.c:
	Use embedded newlines in lbuf instead of multiple calls to
	lbuf_print.
	[38937dca5]

	* src/lbuf.c:
	Add support for embedded newlines.
	[6f771f39b]

2010-03-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/getprogname.c:
	If system doesn't support getprogname or __programe and we are
	building a shared object don't bother with Argc/Argv, just return
	"sudo"
	[623fc34dd]

	* config.h.in, configure, configure.in, src/load_plugins.c:
	Hard-code sudoers.so instead of using SUDOERS_PLUGIN since libtool
	appears to always install a shared object with the .so suffix.
	[5be1b8016]

	* compat/Makefile.in, configure, configure.in,
	plugins/sample/Makefile.in, plugins/sudoers/Makefile.in,
	src/Makefile.in:
	Play more nicely with libtool and let it build libreplace (was
	libmissing) for us.
	[ba9d2f5bb]

	* include/missing.h:
	Include stdarg.h for va_list rather than requiring all consumers of
	missing.h to include stdarg.h themselves.
	[fdbc4ecff]

	* include/lbuf.h, plugins/sudoers/auth/sudo_auth.c,
	plugins/sudoers/check.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h, src/lbuf.c,
	src/parse_args.c:
	Pass in output function to lbuf_init() instead of writing to stdout.
	A side effect is that the usage info can now go to stderr as it
	should.
	[b4f4afdf6]

2010-03-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/lbuf.h, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h, src/lbuf.c,
	src/parse_args.c, src/sudo.c:
	Use number of tty columns that is passed in user_info instead of
	getting it directly in the lbuf code.
	[038ec569d]

	* plugins/sudoers/alias.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/sia.c, plugins/sudoers/auth/sudo_auth.h,
	plugins/sudoers/check.c, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/env.c,
	plugins/sudoers/getdate.c, plugins/sudoers/getdate.y,
	plugins/sudoers/gram.c, plugins/sudoers/gram.y,
	plugins/sudoers/interfaces.h, plugins/sudoers/logging.c,
	plugins/sudoers/logging.h, plugins/sudoers/match.c,
	plugins/sudoers/mon_systrace.h, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/pwutil.c,
	plugins/sudoers/redblack.c, plugins/sudoers/redblack.h,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudo_nss.h,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoreplay.c, plugins/sudoers/testsudoers.c,
	plugins/sudoers/timestr.c, plugins/sudoers/toke.c,
	plugins/sudoers/toke.l, plugins/sudoers/tsgetgrpw.c,
	plugins/sudoers/visudo.c:
	Kill __P in sudoers
	[d5ae4c7d8]

	* config.h.in, configure, configure.in, src/load_plugins.c:
	Set the sudoers plugin name in configure so we get the extension
	right.
	[5a2a2d193]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Document lines/cols in user_info
	[81949e89d]

	* src/Makefile.in, src/sudo.c, src/sudo.h, src/ttysize.c:
	Add tty size to user info
	[96a98bed4]

	* src/script.c:
	Use TIOCGSIZE/TIOCSSIZE instead of TIOCGWINSZ/TIOCSWINSZ
	[f08479f19]

2010-03-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c:
	Kill dead code Add missing sigsetjmp in sudo_policy_invalidate Error
	out if we fail to lookup the user's name that is passed in
	[a5d2775f7]

	* plugins/sudoers/error.c:
	Pass the error value back via siglongjmp.
	[0d8159fa2]

	* plugins/sudoers/check.c:
	Use conversation function for lecture.
	[51c55cd48]

	* plugins/sudoers/check.c:
	Don't update ticket file if verify_user returns FALSE.
	[cbf298bfc]

2010-03-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/sudoers.c, src/sudo.c:
	Wire up invalidate and validate methods for sudoers
	[ee223889c]

	* plugins/sudoers/check.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h:
	Add support for -k flag with a command.
	[248bae4e5]

	* src/parse_args.c:
	Allow -k to be specified with a command.
	[36701e123]

	* plugins/sudoers/sudoers.c:
	Wire up policy_list
	[e8eec3402]

	* plugins/sudoers/error.c:
	Add newline at the end of message and space after the colon in
	warning message
	[718073e27]

	* plugins/sudoers/auth/sudo_auth.c:
	Add missing newline after pass password warning
	[88a0244dd]

	* plugins/sudoers/sudoers.c:
	Set user_groups and user_ngroups based on user_info
	[7b024c53c]

	* plugins/sudoers/error.c:
	Make this compile
	[5113f8489]

	* plugins/sudoers/error.c, plugins/sudoers/sudoers.c:
	Make _warning in error.c use the conversation function and remove
	commented out warning/warningx in sudoers.c.
	[5e2f61a09]

	* plugins/sudoers/logging.c:
	Use siglongjmp() in log_error for fatal errors
	[dbbc0cea5]

	* plugins/sample/Makefile.in, plugins/sudoers/Makefile.in:
	Quiet a libtool warning
	[d1d6afaef]

	* Makefile:
	Build sudoers plugin
	[6527c92da]

	* plugins/sudoers/gram.c, plugins/sudoers/gram.y:
	Use warningx in yyerror() so the conversation function gets used
	when built as part of sudoers.
	[d54cedfab]

2010-03-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sudoers/auth/pam.c:
	Rename sudo_conv to conversation to avoid a namespace conflict.
	[748ce5538]

	* plugins/sudoers/Makefile.in, plugins/sudoers/alias.c,
	plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb4.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/auth/sudo_auth.h,
	plugins/sudoers/check.c, plugins/sudoers/defaults.c,
	plugins/sudoers/env.c, plugins/sudoers/error.c,
	plugins/sudoers/find_path.c, plugins/sudoers/getspwuid.c,
	plugins/sudoers/goodpath.c, plugins/sudoers/gram.c,
	plugins/sudoers/gram.y, plugins/sudoers/interfaces.c,
	plugins/sudoers/ldap.c, plugins/sudoers/logging.c,
	plugins/sudoers/match.c, plugins/sudoers/mon_systrace.c,
	plugins/sudoers/parse.c, plugins/sudoers/pwutil.c,
	plugins/sudoers/redblack.c, plugins/sudoers/set_perms.c,
	plugins/sudoers/sudo_nss.c, plugins/sudoers/sudoers.c,
	plugins/sudoers/sudoers.h, plugins/sudoers/testsudoers.c,
	plugins/sudoers/toke.c, plugins/sudoers/tsgetgrpw.c,
	plugins/sudoers/vasgroups.c, plugins/sudoers/visudo.c:
	Initial bits of sudoers plugin; still needs work.
	[9b0205846]

	* config.h.in:
	Add HAVE_STRDUP and HAVE_STRNDUP
	[3116e254b]

	* compat/Makefile.in, configure, configure.in:
	Build libmissing in two flavors (one PIC one non-PIC) and link with
	the appropriate one.
	[90ec11254]

	* Makefile, compat/fnmatch.c, compat/glob.c, compat/nanosleep.c,
	compat/utimes.c, plugins/sample/Makefile.in, src/Makefile.in:
	Build libmissing in two flavors (one PIC one non-PIC) and link with
	the appropriate one.
	[b883670a3]

2010-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* include/missing.h:
	Add strdup and strndup and fix strsignal
	[fc598f8e1]

2010-03-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat/strdup.c, compat/strndup.c, configure, configure.in,
	plugins/sample/Makefile.in, src/Makefile.in:
	Add strdup and strndup to compat
	[6b4d97ebc]

	* plugins/sample/sample_plugin.c:
	Need to include compat.h before missing.h
	[8003cb2f3]

	* compat/strsignal.c:
	Must check HAVE_DECL_SYS_SIGLIST == 1 (not just if defined) since if
	it doesn't exist configure will set it to 0.
	[301fb7d8e]

	* compat/glob.c:
	Fix botched ANSI C coversion of globexp2()
	[93ae94f9d]

	* configure, configure.in:
	Remove redundant getgroups check
	[1dcebf901]

	* configure, configure.in, src/lbuf.c, src/script.c, src/term.c:
	Require either termios or termio, no more sgtty.
	[0795ef846]

	* compat/strsignal.c, config.h.in, configure, configure.in:
	Change the sys_siglist check to use AC_CHECK_DECLS and also check
	for _sys_siglist and__sys_siglist
	[cb8696d67]

2010-03-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in, src/Makefile.in:
	Change SUDO_LDFLAGS to SUDOERS_LDFLAGS and add SUDOERS_OBJS. We now
	use SUDO_OBJS for the main driver as part of OBJS.
	[5775026a5]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Mention in the conversation function section that a newline is not
	implicit.
	[f0f803e33]

	* include/compat.h:
	Add definition of WCOREDUMP for systems without it. This is known to
	work on AIX and SunOS 4, but may be incorrect on other systems that
	lack WCOREDUMP.
	[af62ffe6f]

2010-03-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sample/sample_plugin.c, src/conversation.c:
	conversation function no longer puts a newline at the end of info or
	error messages.
	[f211213dc]

	* match.c:
	When doing a glob match, short circuit if gl.gl_pathc is 0. From
	Mark Kettenis.
	[09900584f]

2010-03-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	Use parent process group id instead of parent process id when
	checking foreground status and suspending parent. Fixes an issue
	when running commands under /usr/bin/time and others.
	[7d0630823]

	* env.c:
	In setenv(), if the var is empty, return 1 and set errno to EINVAL
	instead of returning EINVAL directly.
	[731a6e850]

2010-03-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c:
	Use parent process group id instead of parent process id when
	checking foreground status and suspending parent. Fixes an issue
	when running commands under /usr/bin/time and others.
	[c8c4d6a13]

2010-03-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4:
	transcript option is now --with not --enable
	[8ca261fc7]

	* plugins/sample/sample_plugin.c:
	Add support to -u and -g flags Check fmt_string retval Add timeout
	for debugging purposes
	[b814a0d74]

	* src/script.c, src/sudo.c:
	Wire up SIGALRM handler Set close on exec flag for child side of the
	socketpair Fix signal handling when not doing I/O logging
	[4e938c007]

	* src/sudo.c:
	g/c unused SIGCHLD handler
	[d73f580f5]

	* src/fmt_string.c, src/parse_args.c, src/sudo.c:
	Don't use emalloc() in fmt_string(); we want to be able to use it
	from a plugin.
	[cc23068c2]

	* include/list.h:
	tq_remove not list_remove
	[847a7c1b2]

	* configure, configure.in:
	AUTH_OBJS should contain .lo files not .o files.
	[c7b382a90]

2010-03-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/parse_args.c:
	Simplify conversion of command line args to name=value pairs.
	[5ff6832e1]

	* plugins/sample/sample_plugin.c:
	Handle NULL reply from conversation function
	[1e131d427]

	* compat/getline.c:
	Don't depend on emalloc/erealloc
	[3384abd2b]

	* plugins/sample/Makefile.in:
	Use $(OBJS) instead of sample_plugin.lo
	[c81a62df3]

	* plugins/sample/sample_plugin.c:
	runas_user is in settings not user_info
	[064eb3536]

	* src/parse_args.c:
	Fix a mismatch between sudo_settings and settings_pairs that causes
	some settings to get the wrong values.
	[a1b7526e3]

2010-03-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/Makefile.in, src/aix.c, src/alloc.c, src/atobool.c,
	src/error.c, src/fileops.c, src/lbuf.c, src/list.c, src/pty.c,
	src/sesh.c, src/sudo.c, src/sudo_edit.c, src/term.c,
	src/zero_bytes.c:
	Convert to ANSI C
	[c857c74e3]

	* src/load_plugins.c:
	Fix strlcpy() return value check.
	[6470a057e]

	* INSTALL, configure, configure.in:
	No longer need to substitute in script.o and pty.o; I/O logging
	support is always built.
	[cf07bde70]

2010-02-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c:
	Add fallback to /bin/sh when execve() fails with ENOEXEC.
	[19b17c750]

	* include/alloc.h, src/alloc.c:
	Add estrndup()
	[76c90bc30]

2010-02-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c, src/sudo.c:
	Refactor script_execve() a bit so that it can be used in non-script
	mode. Needs more cleanup.
	[f145264ee]

	* src/sudo.c:
	Ignore empty entries in command_info list
	[157b7805c]

	* include/list.h, src/list.c:
	Add tq_remove
	[25d3b4e51]

	* src/conversation.c:
	Pass timeout to tgetpass()
	[289dc98d9]

	* Makefile:
	Add ChangeLog target
	[d53f352c4]

	* README, WHATSNEW:
	Bump version and update things slightly for sudo 1.8.0
	[186ef7e68]

	* configure, configure.in:
	Sudo now requires an ANSI/ISO C compiler
	[ca3ee9de1]

	* src/alloc.c, src/audit.c, src/error.c, src/lbuf.c,
	src/sudo_noexec.c:
	Convert to ANSI C
	[7ec040b54]

	* include/alloc.h, include/compat.h, include/error.h,
	include/lbuf.h, include/list.h, include/missing.h:
	Convert to ANSI C
	[841807dd6]

	* compat/charclass.h, compat/closefrom.c, compat/fnmatch.c,
	compat/fnmatch.h, compat/getcwd.c, compat/getline.c,
	compat/getprogname.c, compat/glob.c, compat/glob.h,
	compat/isblank.c, compat/memrchr.c, compat/mkstemp.c,
	compat/nanosleep.c, compat/sigaction.c, compat/snprintf.c,
	compat/strcasecmp.c, compat/strerror.c, compat/strlcat.c,
	compat/strlcpy.c, compat/strsignal.c, compat/utime.h,
	compat/utimes.c:
	Convert to ANSI C
	[488c1531e]

2010-02-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/sudo.c, src/tgetpass.c:
	Make user_details extern so tgetpass can get at the uid and gid. Set
	uid/gid to user before executing askpass program. Check environment
	for SUDO_ASKPASS and use that if set. TODO: a way for the policy to
	set the askpass program itself
	[9e5ff964a]

	* src/sudo.c:
	No longer need sudo_usage.h in sudo.c
	[f3b2c9ac1]

	* doc/sudo.cat, doc/sudo.man.in, doc/sudo.pod,
	doc/sudo_plugin.man.in, doc/sudo_plugin.pod, src/Makefile.in,
	src/parse_args.c, src/sudo_usage.h.in:
	Document -D level command line flag which maps to the debug_level
	setting.
	[07bf968c4]

	* doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudo_plugin.pod:
	Document debug_level in plugin doc. Still need to document the -D
	flag in sudo itself.
	[9eb3e63c5]

2010-02-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c:
	Check for pseudo-command by looking at the first character of the
	command in sudoers instead of checking the user-supplied command for
	a slash.
	[2a236bd21]

2010-02-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* plugins/sample/sample_plugin.c:
	include missing,h for vasprintf
	[fac0743e8]

	* doc/Makefile.in, doc/sudo_plugin.cat, doc/sudo_plugin.man.in,
	doc/sudo_plugin.pod:
	Rename plugin.pod -> sudo_plugin.pod and wire into Makefile
	[bcd021da5]

	* plugins/sample/sample_plugin.c:
	Need to include limits.h
	[80fae46be]

	* compat/glob.c:
	No more sudo_getpw*
	[edd5184ac]

	* plugins/sample/Makefile.in, src/Makefile.in:
	Add missing compat bits
	[7200af0ce]

	* compat/closefrom.c, compat/mkstemp.c, plugins/sample/Makefile.in:
	compat files should not include sudo.h wire up compat in sample
	plugin
	[b3176134c]

	* Makefile, configure, configure.in, doc/Makefile.in,
	src/Makefile.in:
	Fix up compat dependencies. Fix distclean target in doc/Makefile.in
	[fadb324f1]

	* configure, configure.in:
	Fix typo
	[51131cdb8]

	* plugins/sample/sample_plugin.c:
	Log input and output to temp files for proof of concept.
	[781a054ab]

	* Makefile, configure, configure.in, doc/Makefile.in:
	Add doc Makefile.in and wire it up
	[279cf1e95]

	* src/script.c:
	Handle SIGSTOP in addition to SIGTSTP. Fixes a problem with
	suspending a shell with the "suspend" builtint.
	[ad4a07a44]

	* src/script.c:
	In child, handle parent side of the pipe going away.
	[d73e870e6]

	* src/script.c:
	No longer need to check for explicit death of the child (process #2)
	since if it dies we will get EPIPE from the socketpair. Fix a
	sizeof() that was causing a spurious error. Convert SCRIPT_DEBUG to
	sudo_debug.
	[32ea572f2]

	* src/sudo.c:
	Make sudo_debug do a single vfprintf() which will result in a single
	write call on most systems. Avoids problems with interleaved debug
	printf from different processes. Also remove an extraneous error
	case since recv() can't return a short read and add some more XXX.
	[c2aaf8fbf]

2010-02-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* src/script.c:
	Fix uninitialized variable.
	[afcac0824]

	* src/Makefile.in:
	Fix sudo install target
	[121c54705]

	* src/parse_args.c, src/sudo.c, src/sudo.h:
	Wire up debug_level
	[abb431b36]

	* src/Makefile.in:
	Fix dependencies
	[b4e0f503e]

	* configure, configure.in:
	Fix setting of plugin dir
	[3327db217]

	* Makefile:
	add clean targets
	[6dccb419f]

	* src/atobool.c:
	Add missing source for sudo front end
	[4b88f1a7e]

	* plugins/sample/Makefile.in, plugins/sample/sample_plugin.c:
	Sample plugin demonstrating the sudo plugin API
	[3b354e36f]

	* Makefile, configure, configure.in, install-sh, pathnames.h.in,
	src/Makefile.in, src/conversation.c, src/fileops.c,
	src/fmt_string.c, src/load_plugins.c, src/parse_args.c, src/pty.c,
	src/script.c, src/sudo.c, src/sudo.h, src/sudo_plugin_int.h,
	src/sudo_usage.h.in, src/tgetpass.c:
	Modular sudo front-end which loads policy and I/O plugins that do
	most the actual work. Currently relies on dynamic loading using
	dlopen(). See doc/plugin.pod for the plugin API.
	[b6a4cf723]

	* doc/plugin.pod, include/sudo_plugin.h:
	Sudo plugin API
	[90c06ad7f]

	* compat/fnmatch.c, compat/glob.c, compat/nanosleep.c,
	compat/utimes.c, plugins/sudoers/check.c, plugins/sudoers/gettime.c,
	plugins/sudoers/match.c, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/visudo.c,
	src/fileops.c, src/sudo_edit.c:
	Replace emul/include.h with compat/include.h to match new source
	tree layout.
	[d6187f5ad]

	* src/lbuf.c:
	Include missing.h for memrchr() proto
	[dc525d258]

	* compat/charclass.h, compat/closefrom.c, compat/fnmatch.c,
	compat/fnmatch.h, compat/getcwd.c, compat/getline.c,
	compat/getprogname.c, compat/glob.c, compat/glob.h,
	compat/isblank.c, compat/memrchr.c, compat/mkstemp.c,
	compat/nanosleep.c, compat/sigaction.c, compat/snprintf.c,
	compat/strcasecmp.c, compat/strerror.c, compat/strlcat.c,
	compat/strlcpy.c, compat/strsignal.c, compat/timespec.h,
	compat/utime.h, compat/utimes.c, doc/HISTORY, doc/LICENSE,
	doc/PORTING, doc/TROUBLESHOOTING, doc/UPGRADE, doc/history.pod,
	doc/license.pod, doc/sample.pam, doc/sample.sudoers,
	doc/sample.syslog.conf, doc/schema.ActiveDirectory,
	doc/schema.OpenLDAP, doc/schema.iPlanet, doc/sudo.cat,
	doc/sudo.man.in, doc/sudo.man.pl, doc/sudo.pod, doc/sudoers.cat,
	doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in, doc/sudoers.ldap.pod,
	doc/sudoers.man.in, doc/sudoers.man.pl, doc/sudoers.pod,
	doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/sudoreplay.pod,
	doc/visudo.cat, doc/visudo.man.in, doc/visudo.pod, include/alloc.h,
	include/compat.h, include/error.h, include/lbuf.h, include/list.h,
	include/missing.h, plugins/sudoers/Makefile.binary.in,
	plugins/sudoers/Makefile.in, plugins/sudoers/aixcrypt.exp,
	plugins/sudoers/alias.c, plugins/sudoers/auth/API,
	plugins/sudoers/auth/afs.c, plugins/sudoers/auth/aix_auth.c,
	plugins/sudoers/auth/bsdauth.c, plugins/sudoers/auth/dce.c,
	plugins/sudoers/auth/fwtk.c, plugins/sudoers/auth/kerb4.c,
	plugins/sudoers/auth/kerb5.c, plugins/sudoers/auth/pam.c,
	plugins/sudoers/auth/passwd.c, plugins/sudoers/auth/rfc1938.c,
	plugins/sudoers/auth/secureware.c, plugins/sudoers/auth/securid.c,
	plugins/sudoers/auth/securid5.c, plugins/sudoers/auth/sia.c,
	plugins/sudoers/auth/sudo_auth.c, plugins/sudoers/auth/sudo_auth.h,
	plugins/sudoers/boottime.c, plugins/sudoers/check.c,
	plugins/sudoers/def_data.c, plugins/sudoers/def_data.h,
	plugins/sudoers/def_data.in, plugins/sudoers/defaults.c,
	plugins/sudoers/defaults.h, plugins/sudoers/env.c,
	plugins/sudoers/find_path.c, plugins/sudoers/getdate.c,
	plugins/sudoers/getdate.y, plugins/sudoers/getspwuid.c,
	plugins/sudoers/gettime.c, plugins/sudoers/goodpath.c,
	plugins/sudoers/gram.c, plugins/sudoers/gram.h,
	plugins/sudoers/gram.y, plugins/sudoers/ins_2001.h,
	plugins/sudoers/ins_classic.h, plugins/sudoers/ins_csops.h,
	plugins/sudoers/ins_goons.h, plugins/sudoers/install-sh,
	plugins/sudoers/insults.h, plugins/sudoers/interfaces.c,
	plugins/sudoers/interfaces.h, plugins/sudoers/ldap.c,
	plugins/sudoers/logging.c, plugins/sudoers/logging.h,
	plugins/sudoers/match.c, plugins/sudoers/mkdefaults,
	plugins/sudoers/mon_systrace.c, plugins/sudoers/mon_systrace.h,
	plugins/sudoers/nonunix.h, plugins/sudoers/parse.c,
	plugins/sudoers/parse.h, plugins/sudoers/pwutil.c,
	plugins/sudoers/redblack.c, plugins/sudoers/redblack.h,
	plugins/sudoers/set_perms.c, plugins/sudoers/sudo_nss.c,
	plugins/sudoers/sudo_nss.h, plugins/sudoers/sudoers,
	plugins/sudoers/sudoers.c, plugins/sudoers/sudoers.h,
	plugins/sudoers/sudoers2ldif, plugins/sudoers/sudoreplay.c,
	plugins/sudoers/testsudoers.c, plugins/sudoers/timestr.c,
	plugins/sudoers/toke.c, plugins/sudoers/toke.l,
	plugins/sudoers/tsgetgrpw.c, plugins/sudoers/vasgroups.c,
	plugins/sudoers/visudo.c, src/aix.c, src/alloc.c, src/audit.c,
	src/bsm_audit.c, src/bsm_audit.h, src/error.c, src/fileops.c,
	src/lbuf.c, src/list.c, src/pty.c, src/script.c, src/selinux.c,
	src/sesh.c, src/sudo_edit.c, src/sudo_noexec.c, src/term.c,
	src/tgetpass.c, src/zero_bytes.c:
	Rework source layout in preparation for modular sudo.
	[e90fa482f]

2010-02-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* :
	Avoid a duplicate fclose() of the sudoers file.
	[28c24027e]

	* :
	Fix size arg when realloc()ing include stack. From Daniel Kopecek
	[60adef2e3]

	* :
	Use setrlimit64(), if available, instead of setrlimit() when setting
	AIX resource limits since rlim_t is 32bits.
	[6b02fe5ea]

	* :
	Fix use after free when sending error messages. From Timo Juhani
	Lindfors
	[7f59ba20b]

	* :
	Generate the ChangeLog as part of "make dist" instead of having it
	in the repo.
	[280a51cda]

2010-02-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.l:
	Avoid a duplicate fclose() of the sudoers file.
	[a40de29cb]

	* toke.l:
	Fix size arg when realloc()ing include stack. From Daniel Kopecek
	[01240ab71]

2010-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aix.c, config.h.in, configure, configure.in:
	Use setrlimit64(), if available, instead of setrlimit() when setting
	AIX resource limits since rlim_t is 32bits.
	[fd37f5c59]

	* logging.c:
	Fix use after free when sending error messages. From Timo Juhani
	Lindfors
	[d4d13c1ca]

2010-01-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ChangeLog, Makefile.in:
	Generate the ChangeLog as part of "make dist" instead of having it
	in the repo.
	[c0f149b53]

2010-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Generate correct ChangeLog for 1.7 branch.
	[924daf022]

	* Makefile.binary.in, Makefile.in, aix.c, alias.c, alloc.c, alloc.h,
	auth/afs.c, auth/aix_auth.c, auth/bsdauth.c, auth/dce.c,
	auth/fwtk.c, auth/kerb4.c, auth/kerb5.c, auth/pam.c, auth/passwd.c,
	auth/rfc1938.c, auth/secureware.c, auth/securid.c, auth/securid5.c,
	auth/sia.c, auth/sudo_auth.c, auth/sudo_auth.h, check.c,
	closefrom.c, compat.h, configure.in, defaults.c, defaults.h,
	emul/charclass.h, emul/timespec.h, env.c, error.c, error.h,
	fileops.c, find_path.c, getcwd.c, getprogname.c, getspwuid.c,
	gettime.c, goodpath.c, gram.c, gram.y, ins_2001.h, ins_classic.h,
	ins_csops.h, ins_goons.h, insults.h, interfaces.c, interfaces.h,
	isblank.c, lbuf.c, lbuf.h, ldap.c, list.c, list.h, logging.c,
	logging.h, match.c, memrchr.c, missing.h, mkinstalldirs, mkstemp.c,
	mon_systrace.c, nanosleep.c, parse.c, parse.h, pathnames.h.in,
	pty.c, pwutil.c, redblack.c, redblack.h, sample.pam, sample.sudoers,
	sample.syslog.conf, script.c, selinux.c, sesh.c, set_perms.c,
	sigaction.c, snprintf.c, strcasecmp.c, strerror.c, strlcat.c,
	strlcpy.c, strsignal.c, sudo.c, sudo.h, sudo.man.in, sudo.pod,
	sudo_edit.c, sudo_noexec.c, sudo_nss.c, sudo_nss.h, sudo_usage.h.in,
	sudoers.ldap.man.in, sudoers.ldap.pod, sudoers.man.in, sudoers.pod,
	sudoers2ldif, sudoreplay.c, sudoreplay.man.in, sudoreplay.pod,
	term.c, testsudoers.c, tgetpass.c, timestr.c, toke.c, toke.l,
	utimes.c, visudo.c, visudo.man.in, visudo.pod, zero_bytes.c:
	Remove CVS $Sudo$ tags.
	[3bb69ffe8]

2010-01-18  convert-repo  <none@none>

	* .hgtags:
	update tags
	[4a50fafc1]

2009-12-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_usage.h.in:
	make this match sudoers SYNOPSIS
	[fb0e20802]

	* lbuf.c, parse.c:
	Print a newline between Runas and Command-specific defaults in sudo
	-l.
	[8ca8f2400]

	* term.c:
	Use SET and CLR macros in term_raw
	[d0b2086a6]

	* sudoreplay.c:
	Set stdin to non-blocking mode early instead of in check_input. Use
	term_raw instead of term_cbreak since the data we get has already
	been expanded via OPOST.
	[8fbdbde2f]

2009-12-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c, term.c:
	Enable/disable all postprocessing instead of just nl->crnl
	processing since things like tab expansion matter too. However, if
	stdout is a tty leave postprocessing on in the pty since we run into
	problems doing it only on the real stdout with .e.g nvi.
	[7a759cd2a]

2009-12-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	If tty_tickets is enabled and there is no tty, prompt for a
	password. Do not lecture user for "sudo -k command" if user has a
	timestamp.
	[ce63ab506]

	* INSTALL:
	Document missing options: --with-efence and --with-bsm-audit
	[2df5bd857]

	* sudo.cat, sudo.man.in, sudo.pod, sudoers.cat, sudoers.ldap.cat,
	sudoers.ldap.man.in, sudoers.ldap.pod, sudoers.man.in, sudoers.pod,
	sudoreplay.cat, sudoreplay.man.in, sudoreplay.pod, visudo.cat,
	visudo.man.in, visudo.pod:
	username -> user name groupname -> group name hostname -> host name
	[e007e2ad4]

	* INSTALL, README.LDAP, sudoers.pod:
	filename -> file name like the rest of the docs
	[00c89f014]

2009-12-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	Fix printing of entries with multiple host entries on a single line.
	[73dccdf93]

2009-12-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Mention that targetpw affects the timestamp file name.
	[2bc6801ca]

	* def_data.c, def_data.h, def_data.in, defaults.c, script.c,
	sudoers.pod:
	Add compress_transcript option.
	[180785567]

2009-12-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	bump to 1.7.3b2
	[6810071e8]

	* pwutil.c, set_perms.c, sudo.c, sudo_nss.c:
	Better split of membership vs. traditional group check in
	user_in_group(). Allow user_ngroups to be < 0 if getgroups() fails.
	[d20335136]

2009-12-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pwutil.c:
	Fix pasto and add default return value.
	[0d054f897]

	* check.c, match.c, pwutil.c, sudo.h:
	refactor group member checking into user_in_group()
	[ab72e242b]

	* check.c, config.h.in, configure, configure.in, match.c, sudo.c,
	sudo.h:
	Add support for mbr_check_membership() as present in darwin.
	[b8239bb34]

2009-12-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c:
	Rename label to be accurate
	[02ae5fd96]

	* Makefile.in, boottime.c, check.c, config.h.in, configure,
	configure.in, sudo.h:
	Treat timestamp files from before we booted as old. Idea from and
	Apple patch.
	[600ce3dfa]

2009-12-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c, sudo.pod, sudo_usage.h.in:
	Allow the -u flag to be used in conjunction with the -v flag as per
	older versions of sudo.
	[8b48ab71e]

	* logging.c:
	fix typo in last commit
	[f325cfac8]

2009-12-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	Convert fmt_first and fmt_confd into macros.
	[2a9810bfd]

	* sudoers.pod:
	timeouts can be floats now
	[a61c1806a]

	* WHATSNEW, def_data.c, def_data.h, def_data.in, defaults.c,
	defaults.h, mkdefaults:
	Add support for floating point timeout values (e.g. 2.5 minutes).
	[186d836eb]

2009-12-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod:
	The -L flag will be removed in sudo 1.7.4
	[d92b6c5d9]

2009-12-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoreplay.c:
	Fix a bug due to order of operators.
	[aa03d9cac]

2009-11-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c:
	cmnd_matches() already deals with negation so _cmndlist_matches()
	does not need to do so itself. Fixes a bug with negated entries in a
	Cmnd_List.
	[803dd9a7c]

2009-11-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Don't exit() from open_sudoers, just return NULL for all errors.
	[a86896a1c]

	* script.c:
	Can't rely on the shell sending us SIGCONT when transitioning from
	backgroup to foreground process.
	[453d055b4]

	* toke.c, toke.l:
	Add missing extern def for parse_error
	[850990b88]

2009-11-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c, toke.l:
	Avoid a parse error when #includedir doesn't find any files. Closes
	bug #375
	[22e333fc5]

	* Makefile.in:
	Include sudo.man.pl and sudoers.man.pl in the distribution tarball.
	[41c3dc733]

2009-11-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	Start command out in foreground mode if stdout is a tty. Works
	around issues with some curses-based programs that don't handle
	tcsetattr getting interrupted by a signal. Still allows us to avoid
	hogging the tty if the command is part of a pipeline.
	[84d4bc2df]

	* script.c, sudo.c, sudo.h, sudoreplay.c, term.c, tgetpass.c:
	Use a socketpair to pass signals from parent to child. Child will
	now pass command status change info back via the socketpair. This
	allows the parent to distinguish between signals it has been sent
	directly and signals the command has received. It also means the
	parent can once again print the signal notifications to the tty so
	all writes to the pty master occur in the parent. The command is now
	always started in background mode with tty signals handled by the
	parent.
	[dcf6602da]

2009-11-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Fix a few typos in the descriptions; from Jeff Makey Only do the
	check for krb5_get_init_creds_opt_free() taking two arguments if we
	find krb5_get_init_creds_opt_alloc(). Otherwise we will get a false
	positive when using our own krb5_get_init_creds_opt_free which takes
	only a single argument.
	[871b3fb12]

2009-11-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Remove a spurious comma in the kerb5 bits.
	[d0fdeb12a]

	* auth/kerb5.c:
	Call krb5_get_init_creds_opt_init() in our emulated
	krb5_get_init_creds_opt_alloc() for MIT kerberos.
	[ce0fdd554]

2009-11-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	Add HAVE_ZLIB
	[63fee4708]

	* script.c:
	Need to ignore SIGTT{IN,OU} in child when running the command in the
	background. Also some minor cleanup.
	[febc3cbb1]

2009-10-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	Instead of calling sigsuspend when waiting for SIGUSR[12] from
	parent, install the signal handlers w/o SA_RESTART and let them
	interrupt waitpid().
	[78cd63e07]

	* script.c:
	Pass along SIGHUP and SIGTERM from parent to child.
	[94370b319]

	* script.c:
	Close unused bits of script_fds in processes that don't need them.
	Restore default SIGCONT handler in child.
	[e6567f46b]

	* script.c:
	Update foreground/background status in SIGCONT handler in parent
	process.
	[aee3382ed]

2009-10-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	Defer setting terminal into raw mode until just before we fork() and
	only do it if sudo is the foreground process. If we get SIGTT{IN,OU}
	and sudo is already in the foreground be sure to set raw mode before
	continuing the child.
	[e62dd7645]

2009-10-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	Fix handling of SIGTTOU/SIGTTIN in program being run. We now only
	give the command the controlling tty if the main sudo process is the
	foreground process.
	[c77ef16fc]

	* script.c:
	Don't bother with sudo_waitpid() here for now.
	[61b57817a]

	* script.c:
	fix non-zlib case
	[50f5d5516]

2009-10-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	Remove non-wroking code that crept into rev 1.55
	[470d3a192]

2009-10-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, configure, configure.in, script.c, sudoreplay.c:
	First pass at zlib support for transcript data files
	[602a62c01]

	* Makefile.in:
	remove vestiges of ZLDFLAGS
	[aaa2f89ea]

	* script.c:
	Add missing variable declaration for when TIOCSCTTY is not defined.
	Need to include sys/termio.h for TIOCSCTTY on some systems.
	[db502bb58]

	* script.c:
	when resuming command, send SIGCONT to its pgrp not just pid
	[03e0e4c74]

	* selinux.c:
	remove unused variable
	[777c82a4d]

	* script.c:
	include selinux.h for is_selinux_enabled() proto
	[8fa5a519a]

	* script.c:
	Don't use log_error() in the child process.
	[b231f074a]

	* script.c:
	Do I/O in parent instead of child since the parent can have both
	/dev/tty as well as the pty fds open. The child just sets things up
	and waits for its grandchild and writes the signal description to
	the pty master if the command was killed by a signal.
	[425026fa1]

2009-10-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* missing.h, sudo.h:
	Move two struct forward declarations from sudo.h to missing.h
	[773865eb1]

	* script.c:
	Make comment at the top of script_exec() match reality.
	[27b221e43]

	* sudo.c:
	if neither stdin nor stdout is a tty, check stderr
	[7281ad3bc]

	* Makefile.in:
	Add back dependecy of gram.h on gram.y
	[c6ba8ebdd]

	* script.c:
	Make transcript mode work as long as we can figure out our tty, even
	if it is not stdin. We'd like to use /dev/tty but that won't be
	valid after the setsid().
	[1a5afcbb1]

2009-10-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, pty.c:
	Add support for IRIX-style dynamic ptys
	[e5087b726]

	* Makefile.in, alloc.h, getline.c, sudo.h, sudoreplay.c:
	Move alloc.c protos into alloc.h
	[8cb463ade]

	* missing.h:
	Move prototypes for missing libc functions to missing.h
	[335b895c1]

	* Makefile.in, sudo.h, sudoreplay.c:
	Move prototypes for missing libc functions to missing.h
	[8c6960e7a]

2009-10-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in:
	Disable transcript support if no tcsetpgrp until we support older
	BSD-style job control.
	[52b2762f7]

	* configure, configure.in, pty.c, script.c:
	Break out pty code into pty.c
	[9544845ef]

	* compat.h, config.h.in, configure, configure.in:
	add killpg macro if no killpg function
	[e443ee9ff]

	* config.h.in, configure, configure.in, script.c:
	Push ptem and ldterm for STERAMS-based systems when allocating a
	pty.
	[babf9292d]

2009-10-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	Sprinkle some more O_NOCTTY and call grantpt() before unlockpt()
	[7d79b1da3]

	* script.c:
	Call tcgetpgrp() in the parent, not the child and have the child
	spin until it is granted. Fixes a race on darwin.
	[3ece4c837]

	* script.c:
	Only use TIOCNOTTY in the non-setsid case. If no TIOCSCTTY, just
	reopen slave.
	[52f3374ce]

2009-10-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	In script mode, if the command is killed by a signal, print the
	signal description as well as a core dump notification like the
	shell does.
	[7411b071e]

	* Makefile.in, config.h.in, configure, configure.in, strsignal.c,
	sudo.h:
	Add check for strsignal() and a simple implementation if it is not
	there but sys_siglist is
	[233377a8b]

	* script.c:
	Add missing WUNTRACED and store the signal that stopped the
	grandchild in suspended, not signo.
	[7bfe0fe95]

	* script.c:
	g/c unused code
	[cd8ba1219]

	* script.c:
	Associate the grandchild's pgrp with the tty instead of the child's
	and just get suspend notifications via SIGCHLD instead of directly.
	This fixes a hang with programs that try to set terminal attributes
	and is more consistent with how the shell handles things.
	[0d04ffc40]

2009-10-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	Move setpgid() of child into the parent side of the fork() where it
	belongs.
	[d72afb29a]

2009-10-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	fix typo
	[bc1769df2]

	* script.c:
	Run command in its own pgrp (like the shell does) for easier
	signalling. No need to relay SIGINT or SIGQUIT to parent, just send
	to grandchild. Don't want grandchild stopped events in the child
	(only termination). Flush output after suspending grandchild before
	signalling parent.
	[88b93973f]

	* script.c:
	Back out revision 1.34; the problem lies elsewhere.
	[a3185d3e2]

	* script.c:
	Don't set stdout to blocking mode when flushing remaining output. It
	can cause us to hang when trying to exit. Need to investigate why.
	[f44c2261f]

	* script.c:
	Handle SIGTTOU and remove some debugging.
	[03e3ca08d]

	* term.c:
	Back out revision 1.10 as the signal that interrupts us may be
	SIGTTOU or SIGTTIN which the caller must handle.
	[9afe6a842]

	* script.c:
	Apparently we need to send SIGSTOP to the command as well as ourself
	when we get SIGTSTP, the kernel doesn't automatically stop the
	process for us.
	[09a7bb78f]

	* script.c:
	Use an extra process to act as the glue bewteen the sessions
	associated with the user's controlling tty (what the shell uses) and
	the tty that sudo is using to do its logging. Basically, this means
	that if we get, e.g. SIGTSTP from the process sudo is running, we
	relay the signal to the parent so it's shell can do the job control.
	[2cf1b81ab]

	* term.c:
	Handle getting/setting terminal attributes when the fd is in
	non-blocking mode.
	[3a343d499]

2009-10-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoreplay.c, sudoreplay.cat, sudoreplay.man.in, sudoreplay.pod:
	Add support for pausing and changing the speed in interactive mode.
	[55434759f]

	* script.c:
	Already define O_NOCTTY in compat.h, don't need it here
	[50b62b694]

2009-10-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoreplay.c:
	Add missing protos
	[c8e048c20]

2009-09-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_edit.c:
	Always update the stashed mtime of the temp file instead of using
	what we have for the original because the time resolution of the
	filesystem the temporary is on may not match that of the filesystem
	that holds the original. Should fix bz #371 found by Philippe Levan.
	[378d15f8f]

	* sudoreplay.c:
	Use cbreak mode instead of raw mode and add signal handlers to
	restore the tty on interrupt.
	[5636a93f5]

	* script.c, sudo.h, term.c:
	Retain NL to NLCR conversion on the real tty and skip it on the pty
	we allocate. That way, if stdout is not a pty there are no extra
	carriage returns.
	[fe9fc5ad1]

	* script.c:
	Fix log_output(); just pass in a string and a length.
	[e6331c077]

2009-09-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	do not use errno when complaining out lack of a tty
	[8e4379b26]

2009-09-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, sudoreplay.c, term.c:
	Instead of messing with line endings, just set terminal to raw mode
	in sudoreplay.
	[0d9e1e7b6]

	* term.c:
	When copying the terminal attributes to the pty, be sure not to set
	ONLCR. This prevents extra carriage returns from ending up in the
	script output file.
	[929f13fdf]

	* script.c:
	Convert a do {} while into a while
	[577fb346f]

	* Makefile.in:
	Use if then instead of test && when installing binaries that may not
	exist.
	[672d0f592]

	* script.c:
	Add O_NOCTTY when opening a tty device. Explicitly disconnect from
	old tty before associatng with new one.
	[4283bbcb2]

	* script.c, selinux.c, sudo.c, sudo.h:
	First cut at refactoring some of the selinux code so it can be used
	in conjunction with sudo's transcript support.
	[7d1947850]

2009-09-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4, configure, configure.in:
	Fix default case of transcript_enabled being unset.
	[c6a8c71d2]

	* script.c, sudoreplay.c:
	Use _PATH_SUDO_TRANSCRIPT instead of _PATH_SUDO_SESSDIR
	[d111b0d9b]

	* INSTALL, Makefile.in, aclocal.m4, configure, configure.in, sudo.c:
	Hook up --disable-transcript and --enable-transcript=DIR
	[8a6dcebd8]

2009-09-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4, configure, configure.in, pathnames.h.in:
	_PATH_SUDO_SESSDIR -> _PATH_SUDO_TRANSCRIPT Add
	--enable-transcript=DIR option to specify the directory
	[0e823cdad]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in:
	regen
	[c4fa5baa1]

	* configure, configure.in, sudoers.man.pl, sudoers.pod:
	Substitute in default value for secure_path
	[104a402b6]

	* sudo.pod:
	Mention that the password must be followed by a newline with the -S
	option.
	[d8422c4ff]

2009-09-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	Go back to dropping out of the select() loop when the process dies;
	Linux ptys apparently don't behave the same as BSD in regards to
	select(). No need to flush remaining output to the transcript, only
	to stdout. Add back code to check the master pty for additional data
	when we exit the main select loop.
	[7bb38284b]

2009-09-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Add getline.o to COMMON_OBJS
	[b008f3fda]

	* Makefile.in:
	sudoreplay depends on libsudo.a
	[16a495c6c]

	* Makefile.in:
	More pwutil.o into COMMON_OBJS
	[6c4eea59e]

	* pwutil.c, testsudoers.c, tsgetgrpw.c:
	Remove my_* redirection in pwutil.c for testsudoers and just use the
	normal libc get{pw,gr}* names.
	[e56d4af8f]

	* sudoreplay.cat, sudoreplay.man.in, sudoreplay.pod:
	More time and date examples
	[2950b0c75]

	* Makefile.in, configure, configure.in, nanosleep.c, sudoreplay.c:
	Move nanosleep() emulation into its own file Check librt.a for
	nanosleep if we don't find it in libc
	[6794ef532]

	* Makefile.in, configure, configure.in:
	Build libsudo with the common bits and link things against that.
	[2752268c9]

	* script.c:
	Fix final flush.
	[f68a24fb3]

	* script.c:
	Keep reading from the pty master -> log file until read returns <=
	0. Do our best to write everything to stdout when flushing any
	remaining bits.
	[3223231b1]

	* sudoreplay.c:
	Use unbuffered I/O when writing to stdout and make sure we write the
	entire buffer.
	[7de6bbcfd]

2009-09-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoreplay.c:
	Only use max_wait if it is non-zero
	[6744c573b]

	* getdate.c, getdate.y, getline.c:
	Need compat.h here
	[b241a9e2d]

	* sudoreplay.c:
	Fix nanosleep emulation
	[680351cb9]

	* script.c:
	Fix comment after #endif
	[3cc02be8a]

	* sudoreplay.c:
	Add protos for missing libc bits
	[b9f4db895]

	* configure, configure.in:
	add missing line continuation char
	[54e38658d]

	* config.h.in, configure, configure.in, getline.c:
	Implement getline() in terms of fgetln() if we have it.
	[f17c6df8e]

	* sudoreplay.c:
	Print year when formatting log line
	[89fa08f7e]

	* sudoreplay.pod:
	Document cwd, attempt to document time/date formats.
	[7011be08e]

	* sudoreplay.c:
	Fix getline return value check.
	[fb0fb0380]

	* Makefile.in, config.h.in, configure, configure.in, getline.c,
	sudoreplay.c:
	Use getline() if the system has it, else use provide our own for
	sudoreplay.
	[40114c9ba]

	* script.c:
	Refactor code to update output and timing files.
	[798867ed2]

2009-09-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoreplay.c:
	Make sudo_getln() behave more like glibc getline.
	[1a537514d]

	* script.c:
	When flushing remaining output, also update timing file.
	[74844b178]

	* sudoreplay.c:
	Use get_timestr() and make the -l output look like the regular sudo
	log.
	[4421db631]

	* logging.c, sudo.h, timestr.c:
	Make get_timestr() take a time_t so we can use it properly in
	sudoreplay.
	[3fe7ac2b9]

	* script.c:
	Create session dir earlier now that we update the seq number early.
	[88a063b04]

2009-09-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoreplay.c:
	Use fromdate and todate as the keywords instead of from and to; the
	short forms will still be accepted.
	[705d23073]

	* sudoreplay.c:
	Fix reading long liensin sudo_getln()
	[f2b3a0e6c]

	* script.c, sudoreplay.c:
	Log the cwd in the script log file. Add sudo_getln() to read
	arbitrarily long lines.
	[a418f7811]

	* Makefile.in, logging.c, sudo.h, timestr.c:
	Move get_timestr() into its own source file so sudoreplay can use
	it.
	[28b3a1813]

2009-09-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoreplay.c:
	Add to and from perdicates (date ranges); needs documentation
	[789d71601]

2009-09-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, getdate.c, getdate.y:
	Fix warning and add generated getdate.c
	[8589fccae]

	* Makefile.in, getdate.y:
	Add getdate.y to be used for sudoreplay date parsing.
	[8c7750931]

2009-09-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoreplay.c:
	Check more than just the first character of a predicate
	[65500fa95]

	* sudoreplay.cat, sudoreplay.man.in, sudoreplay.pod:
	Add examples, sort predicates
	[5acbff40a]

	* Makefile.in, sudoreplay.c, sudoreplay.cat, sudoreplay.man.in,
	sudoreplay.pod:
	Implement search expressions in sudoreplay similar in concept to
	what find or tcpdump uses. TODO: date ranges
	[3724c2e90]

2009-09-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	Remove vhangup as it was hanging up the wrong tty. Should really
	vhangup in the child after it as set its tty.
	[10fa87dfa]

	* sudoers.pod:
	Fix cut at documenting transcript support.
	[bd9854db5]

	* logging.c:
	ID= -> TSID= for transcript ID
	[0040571c9]

2009-09-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Move fast_glob description to where it belongs in sorted order
	[95c41c897]

	* def_data.c, def_data.h, def_data.in, gram.c, gram.h, gram.y,
	parse.c, parse.h, sudo.c:
	Rename script -> transcript
	[927e98e29]

2009-09-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h:
	Add timeradd and timersub for those without them
	[c8fc35b0a]

	* script.c:
	Sanity check sessid before using it.
	[c1fe4492f]

	* sudo.c:
	Only set the session id if we are running a command or editing a
	file.
	[f80fa34e7]

	* script.c:
	Actually. qsort is fine since most versions fal back to a cheaper
	sort when the number of elements to sort is small (like in our
	case).
	[568c99b09]

	* config.h.in, configure, configure.in, script.c:
	Check for dup2 and use dup instead if we don't have it.
	[2935e2a5b]

	* script.c, sudo.c, sudo.h:
	Move the code to dup2 the script fds to low numbered descriptors
	into script_duplow() and fix the fd sorting.
	[c57b8bb7b]

	* script.c, sudo.c, sudo.h:
	Move script_setup() back to immediately before we drop privs and
	call the new script_nextid() in its place, which will set
	sudo_user.sessid for the logging functions.
	[ad9ab8dab]

2009-09-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Install sudoreplay
	[932914903]

	* sudoreplay.c:
	remove unused variable
	[f798228a7]

2009-08-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c, script.c, sudo.c, sudo.h:
	Log the session ID, if there is one. Currently logs ID=XXXXXX,
	perhaps should be SESSIONID or SESSID.
	[6184eb946]

	* Makefile.in, configure, configure.in, sudoreplay.cat,
	sudoreplay.man.in, sudoreplay.pod:
	Add sudoreplay docs
	[5181d496c]

	* sudoreplay.c:
	add -V (version) flag
	[7ae1dae37]

	* sudoreplay.c:
	Hook up max_wait.
	[5dd8fe2fe]

	* script.c, sudoreplay.c:
	Use base36 number for the ID and store script files with paths like
	/var/log/sudo-session/00/00/00{,.tim,.scr}. This gives us 36^6
	(2,176,782,336) unique IDs.
	[b9f38b2ac]

2009-08-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure.in:
	Add check for regcomp
	[6ae9dae82]

	* sudoreplay.c:
	Add support for selecting by pattern and tty when listing.
	[9efd18b1b]

2009-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoreplay.c:
	The beginnings of a list mode.
	[30cfb7160]

2009-08-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	fix pasto
	[051eab750]

	* Makefile.in, config.h.in, configure.in:
	Add scaffolding for building sudoreplay
	[7a00c5257]

	* sudoreplay.c:
	include error.h first arg to nanotime is const
	[20ad41f4d]

	* sudoreplay.c:
	Initial cut at sudoreplay; replay a sudo session.
	[e4be17511]

2009-08-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* script.c:
	Fix wait() usage and use correct wait status.
	[946ea4c97]

	* sudo.c, sudo.h, tgetpass.c:
	Add protos for term_* to sudo.h
	[0ab5c31ee]

	* script.c:
	Fix detection of the child process exiting. Since the child is in
	its own session we should only ever get SIGCHLD for that process but
	better safe than sorry.
	[40a21a6c7]

	* config.h.in:
	Add UNIX98 pty support.
	[834e817fa]

	* configure, configure.in, script.c:
	Add UNIX98 pty support.
	[c3c6c299e]

2009-08-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* term.c:
	For raw mode, don't bother clearing BRKINT or PARMRK and clear IUCLC
	if it is defined.
	[92dcfa896]

	* auth/pam.c:
	Set PAM_RUSER and PAM_RHOST early so they can be used during
	authentication. Based on a patch from Jamie Beverly.
	[3bc3a2e85]

	* match.c:
	Close dir before returning if strlcpy() reports overflow. From
	Martynas Venckus.
	[fde79c46f]

	* config.h.in, configure, configure.in, script.c:
	On Linux, the openpty proto libes in pty.h
	[ee20527bf]

	* script.c:
	Call vhangup on exit if the system has it Use setpgrp() if no
	setsid()
	[51793254e]

2009-08-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in:
	Add checks for revoke and vhangup if we don't have openpty
	[b3458ec09]

	* script.c:
	Session logging guts that got forgotten in the previous commit.
	[ee45ce4db]

	* Makefile.in, aclocal.m4, compat.h, config.h.in, configure,
	configure.in, def_data.c, def_data.h, def_data.in, gram.c, gram.h,
	gram.y, parse.c, parse.h, pathnames.h.in, sudo.c, sudo.h, term.c,
	tgetpass.c:
	First cut at session logging for sudo. Still need to write get_pty()
	for Unix 98 and old-style BSD ptys. Also needs documentation and
	general cleanup.
	[3bfce30a8]

2009-08-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c, sudo_edit.c:
	Fix a bug introduced with def_closefrom. The value of def_closefrom
	already includes the +1.
	[334c19a40]

2009-07-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Generate sudo distributions with pax in ustar mode. No longer need
	to use a temp file or have the source dir name match the version.
	[477f895ec]

2009-07-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c, toke.l:
	Fix expansion of %h in #include names. Fixes bugzilla 363
	[b8ca82fee]

2009-07-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkdefaults:
	If no arg assume def_data.in
	[51e292a47]

	* README, WHATSNEW:
	Update for 1.7.2
	[2b80daae9]

	* ChangeLog:
	sync
	[dd52fff16]

2009-06-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.man.in, sudoers.pod:
	Add missing single quotes around a colon in Runas_Spec definition.
	From Elias Benali.
	[0d73e1924]

2009-06-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.man.in, sudoers.man.in:
	regen
	[29ca85390]

	* redblack.c:
	In rbrepair, re-color the root or the first non-block node we find
	to be black. Re-coloring the root is probably not needed but won't
	hurt.
	[02dd5d998]

	* sudo.cat, sudoers.cat:
	regen
	[4764730f7]

2009-06-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* redblack.c:
	When repairing the tree, don't touch the root node.
	[ca2e91126]

2009-06-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* set_perms.c:
	Protect call to setegid in runas_setup with #ifdef HAVE_SETEUID.
	Reported by Josef Schmid.
	[4e0200a33]

2009-06-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Document that we accept env_pam-style environment files
	[b2189fede]

	* env.c:
	Adapt to accept pam_env-style /etc/environment which allows
	shell-style lines such as: export EDITOR="/usr/bin/vi"
	[0c669eda2]

	* sudoers.pod:
	Make it clear that env_delete only works when !env_reset. From
	LoÃ¯c Minier
	[8f1643467]

2009-06-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod, sudoers.pod:
	Add non-unix group bits, adapted from Quest
	[d2efb0a55]

	* Makefile.in:
	build the .cat page in the current working dir, not the src dir
	[3086f937f]

	* env.c:
	Return EINVAL in setenv() if var is NULL or the empty string to
	match glibc behavior.
	[44ace7735]

2009-06-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Use AS_HELP_STRING for AC_ARG_WITH and AC_ARG_ENABLE
	[633357448]

2009-06-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.ldap.cat,
	sudoers.ldap.man.in, sudoers.man.in, visudo.cat, visudo.man.in:
	regen
	[e939739aa]

2009-06-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	Document --with-libvas and --with-libvas-rpath
	[54c599d71]

2009-05-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c, sudoers.ldap.pod:
	For netscape-derived LDAP SDKs the cert and key paths may be a
	directory or a file. However, version 5.0 of the SDK only seems to
	support using a directory. If ldapssl_clientauth_init fails and the
	cert or key paths look like they could be files, strip off the last
	path element and try again.
	[9606d2165]

	* Makefile.in:
	Add non-Unix group .o to COMMON_OBJS and substitute in path to flex.
	[073981ea8]

2009-05-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in, match.c, sudo.c, vasgroups.c:
	Update non-Unix group support from Quest, as reworked by me.
	[7b7ae44ea]

	* toke.c:
	regen
	[3ea51f226]

	* toke.l:
	Add support for escaped hex chars in names, e.g. \x20 for space.
	[c70841395]

2009-05-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE, Makefile.in, aclocal.m4, alias.c, auth/aix_auth.c,
	auth/pam.c, auth/sudo_auth.c, auth/sudo_auth.h, check.c, env.c,
	fileops.c, glob.c, gram.y, interfaces.c, lbuf.c, ldap.c, logging.c,
	logging.h, match.c, parse.c, parse.h, pathnames.h.in, pwutil.c,
	set_perms.c, sudo.c, sudo.h, sudo.pod, sudo_nss.c, sudo_nss.h,
	sudo_usage.h.in, sudoers.ldap.pod, sudoers.pod, testsudoers.c,
	tgetpass.c, toke.l, visudo.c:
	Update copyright years.
	[62b89f9df]

2009-05-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* interfaces.c, lbuf.c:
	Minor fixes for Minix-3
	[4341ce6cd]

2009-05-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* set_perms.c:
	Handle getgroups() returning 0. Also add missing check for
	HAVE_GETGROUPS.
	[896508077]

2009-05-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, config.h.in, configure, configure.in, sudo.c,
	version.h, visudo.c:
	Replace version.h with PACKAGE_VERSION set via AC_INIT in configure.
	[f54b69b0c]

2009-05-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* set_perms.c:
	Remove group setting code in setusercontext case, we will do it
	ourselves later on in runas_setup. Set the gid after
	initgroups/setgroups is called, since on Mac OS X it seems to change
	the egid.
	[5f9f29a23]

2009-05-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE, Makefile.in, config.h.in, match.c, nonunix.h, sudo.c,
	vasgroups.c:
	Initial bits of non-unix group support using Quest Authentication
	Services
	[d98536623]

	* toke.c, toke.l:
	Accept %:foo as a non-Unix group
	[f3407d869]

	* toke.c, toke.l:
	Allow user/group to be double quoted in the case of non-Unix groups
	which contain spaces.
	[e74bea762]

2009-05-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c:
	Don't allow the user to specify the default runas user if their
	sudoers entry only allows them to run as a group.
	[8d3491356]

2009-05-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Must call audit_success before we change uids.
	[c0ac222c3]

	* logging.c, set_perms.c, sudo.h, testsudoers.c:
	Add option for set_perm to not exit on failure and use this in the
	logging routines.
	[755a81e94]

	* parse.c:
	In -l mode, if the user is only allowed to run as a group, display
	the user's name, not root's before the allowed group.
	[2a609b467]

	* sudo.c:
	Fix -g mode, broken by rev 1.503 which had the side effect of
	setting the runas user to root unilaterally.
	[3332ee984]

2009-05-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* fileops.c:
	When unlocking a file with fcntl, use F_SETLK, not F_SETLKW.
	[9251cf24a]

	* pwutil.c:
	Only cache by the method we fetched for pwd and grp lookups.
	Previously we cached both by namd and id but this can cause problems
	for entries that share the same id. Also add more info in the error
	message in case the insert fails (which should now be impossible).
	[03f4a2e70]

2009-04-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Add a clarification from Nick Sieger
	[2b8994112]

2009-04-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Inline the setting of the environment string.
	[8d7518a18]

2009-04-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	setenv(3) in Linux treats a NUL value as the empty string setenv(3)
	in BSD doesn't return an error if the name has '=' in it, it just
	treats the '=' as end of string.
	[c0c7180bb]

2009-04-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c, toke.l:
	Not all systems have d_namlen
	[182711e34]

2009-04-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Fix up some pod2html issues.
	[db9860aa3]

2009-04-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* interfaces.c:
	Check for NULL ifa_addr and ifa_netmask. Adapted from a diff from
	Quest Software.
	[78c347990]

	* sudoers.pod:
	Ignore files ending in '~' in sudo.d (emacs backup files)
	[0509ce3f6]

	* toke.c, toke.l:
	Ignore files ending in '~' in sudo.d (emacs backup files)
	[72a1d8241]

2009-04-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.man.in, sudoers.pod, toke.c, toke.l:
	For #includedir, ignore any file containing a dot
	[95de5670a]

	* Makefile.in, version.h:
	Bump version
	[392edea92]

	* gram.c, gram.y, parse.c, parse.h, sudo.c, sudo.h, sudoers.cat,
	sudoers.man.in, sudoers.pod, testsudoers.c, toke.c, toke.l,
	visudo.c:
	Implement #includedir directive. Files in an includedir are not
	edited by visudo unless they contain a syntax error.
	[3be603aa4]

	* ChangeLog:
	sync
	[e65ec1438]

	* WHATSNEW:
	Forgot umask_override
	[584a14555]

	* ChangeLog, TODO:
	sync
	[bfce2852f]

2009-04-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	Rewind stream if we fdopen sudoers since it may not be at the
	beginning. Set the keepopen flag on already-open files too so the
	lexer doesn't close them out from under us.
	[68ab808ac]

	* visudo.c:
	Print the proper file name when there is a parse error in an include
	file.
	[c7c8554cf]

2009-04-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW:
	Sync
	[e4c408392]

2009-04-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Fix a warning when --without-ldap is specified.
	[8eae33753]

2009-04-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* alias.c, parse.h, visudo.c:
	Store aliases that we remove during check_aliases in a freelist and
	free them at the end so we don't leak memory.
	[d9708f9c2]

2009-03-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	Check aliases in -c mode too.
	[9703224b8]

	* alias.c, parse.h, visudo.c:
	Make alias_remove return the alias struct instead of freeing it
	directly. Fixes a use after free in alias_remove_recursive, the only
	consumer.
	[7bf7af941]

	* alias.c, match.c, parse.c, parse.h, visudo.c:
	Rename find_alias -> alias_find for consistency.
	[065662998]

2009-03-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	When checking for unused aliases, recurse if the alias points to
	another alias.
	[b65831d4b]

2009-03-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Back out rev 1.105 for now. Real ldapux_client.conf support will be
	done later after some refactoring.
	[322abc61e]

2009-03-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Treat ldap_hostport the same as "host" for ldapux.
	[c07c11f6b]

	* configure, configure.in:
	Only check for ldap_sasl_interactive_bind_s if we can find sasl.h.
	Fixes compilation with ldapux.
	[28ce9e96e]

2009-03-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* fileops.c:
	fix char subscript
	[cd900bdc2]

2009-03-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	remove errant carriage returns
	[55ddfd48a]

	* audit.c, env.c:
	fix K&R compilation
	[2012ce9ea]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.ldap.cat,
	sudoers.ldap.man.in, sudoers.man.in, visudo.cat, visudo.man.in:
	regen
	[fc0ca59db]

2009-03-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	Add missing HAVE_BSM_AUDIT
	[45334b209]

	* WHATSNEW:
	Add 1.7.1 features
	[870fd4073]

	* INSTALL:
	Mention --with-netsvc
	[5dec26b06]

	* sudoers.ldap.pod:
	Document netsvc.conf support
	[f50deedc3]

	* configure, configure.in, pathnames.h.in, sudo.c, sudo_nss.c,
	sudo_nss.h:
	Add support for AIX netsvc.conf (like nsswitch.conf).
	[838cb6108]

2009-03-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, env.c:
	Add --enable-env-debug flag to enable environment sanity checks.
	[91f04dc3b]

	* sudoers.ldap.pod, sudoers.pod:
	Work around some pod2html issue.
	[9e85f3754]

2009-03-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Only sync environ for putenv, setenv, and unsetenv. We need to make
	sure that sudo_putenv and sudo_setenv only modify env.envp, not
	environ.
	[f64125368]

2009-03-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Really fix UNSETENV_VOID
	[0fee90c19]

	* env.c:
	Fix unsetenv when UNSETENV_VOID
	[a7a53b5f4]

	* aclocal.m4, configure:
	Fix SUDO_FUNC_PUTENV_CONST
	[e43e319ae]

	* ldap.c:
	tivoli-based ldap does not have ldapssl_err2string
	[4210f536c]

	* configure:
	regen
	[237d4e922]

2009-03-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, ldap.c:
	Add support for Tivoli-based LDAP start TLS as seen in AIX.
	Untested.
	[ef071fa65]

	* env.c:
	Add sanity checks for setenv/unsetenv
	[3c8acdd64]

	* Makefile.in:
	Include bsm_audit.h in the tarball
	[aafea55f2]

	* Makefile.in, version.h:
	bump version for sudo 1.7.1
	[dff0b6b52]

	* aclocal.m4, auth/aix_auth.c, config.h.in, configure, configure.in,
	env.c, ldap.c, sudo.h:
	Replace sudo_setenv/sudo_unsetenv with calls to setenv/unsetenv and
	provide our own setenv/unsetenv/putenv that operates on own env
	pointer. Make sync_env() inline in setenv/unsetenv/putenv functions.
	[6fed38f32]

2009-02-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Make "sudoedit -h" work as expected
	[a25aee9cb]

	* auth/pam.c:
	Make sure def_prompt is always defined. This is a workaround for pam
	configs that prompt for a password in the session but don't have an
	auth line. A better fix is to expand the sudo prompt earlier and set
	def_prompt to that when initializing.
	[536ba5e23]

	* sudo.pod:
	Mention that the helper for -A may be graphical.
	[0c0560975]

	* TROUBLESHOOTING:
	Document what happens if there is no tty.
	[4929b5160]

	* sudo.c:
	cosmetic changes
	[0390504c3]

	* term.c:
	Fix term_restore
	[2e8d722ae]

	* sudo.c:
	Fix "sudo -k" with no other args
	[710e72ecb]

2009-02-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c, sudo.c, sudo.pod, sudo_usage.h.in:
	Allow the -k flag to be specified in conjunction with a command or
	another option that may require authentication.
	[15975b83c]

2009-02-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Remove unneeded AC_CANONICAL_TARGET; from Diego E. 'Flameeyes'
	[e7ee38d62]

	* Makefile.in:
	Parallel make fix. From Diego E. 'Flameeyes'
	[c5513388e]

2009-02-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* def_data.c, def_data.h, def_data.in, sudo.c, sudoers.pod:
	Implement umask_override
	[f96b0a743]

	* toke.c:
	regen
	[030b39958]

	* sudoers.pod, toke.l, visudo.c:
	Implement %h escape in sudoers include filenames.
	[0d7f77177]

	* audit.c:
	Need to include compat.h
	[ceaa7a38c]

	* Makefile.in, audit.c, bsm_audit.c, bsm_audit.h, logging.h, sudo.c:
	Make audit_success and audit_failure generic functions in
	preparation for integrating linux audit support.
	[6491696ca]

	* term.c:
	remove duplicate include
	[380c953e6]

2009-02-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* bsm_audit.c:
	Add missing include
	[c29881ef1]

	* sudo.c:
	May need to update the runas user after parsing command-based
	defaults.
	[f4bc42d63]

2009-02-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* glob.c:
	Add missing pair of braces introduced with character class support.
	[a9caa4380]

2009-02-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* def_data.c, def_data.h, def_data.in, sudoers.pod, tgetpass.c:
	Rename pwstars to pwfeedback
	[dd56fbadb]

2009-02-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* bsm_audit.c, bsm_audit.h:
	Add const to make MacOS happy.
	[d1bbb48f1]

	* Makefile.in, auth/sudo_auth.c, bsm_audit.c, bsm_audit.h,
	configure, configure.in, sudo.c:
	Add bsm audit support from Christian S.J. Peron
	[f492e5305]

	* term.c:
	This is new code, no DARPA notice.
	[bd05b56a8]

2009-02-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* def_data.c, def_data.h, def_data.in, match.c, sudoers.pod:
	Rename simple_glob -> fast_glob
	[108d53548]

	* match.c:
	g/c unused var
	[cfb9ec7ba]

	* def_data.c, def_data.h, def_data.in, match.c, sudoers.pod:
	Add simple_glob option to use fnmatch() instead of glob(). This is
	useful when you need to specify patterns that reference network file
	systems.
	[7207b4cd6]

	* tgetpass.c:
	add term_* proto
	[5df16f86b]

	* sudoers.pod:
	mention glob()
	[eec86958b]

2009-02-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	Delete any pwstars we wrote after the user hits return. That way
	there is no record on screen as to the user's password length.
	[e58df973a]

2009-02-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* term.c:
	Move terminal setting bits from tgetpass.c to term.c
	[2c8e1a45e]

	* Makefile.in, def_data.c, def_data.h, def_data.in, sudoers.pod,
	tgetpass.c:
	Add pwstars sudoers option that causes sudo to print a star every
	time the user presses a key.
	[38c225af0]

2009-02-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Fix up F<> brokenness for visudo.man.in and sudoers.ldap.man.in.
	[6d88a04a0]

2009-01-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	For ldap_search_ext_s() the sizelimit param should be 0, not -1, to
	indicate no limit. From Mark Janssen.
	[da769cd42]

2009-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c, toke.l:
	Comments that begin with #- should not be parsed as uids.
	[2d4aebed6]

2009-01-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Do not try to set the close on exec flag if we didn't actually open
	sudoers.
	[77794f27a]

2008-12-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ChangeLog:
	regen
	[930f3ac48]

2008-12-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO:
	sync
	[36ba7133c]

2008-12-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	Return PAM_AUTH_ERR instead of PAM_CONV_ERR if user enters ^C at the
	password prompt.
	[743c62495]

	* configure, configure.in:
	Don't try to build sudo_noexec.so on HP-UX with the bundled compiler
	as it cannot generate shared objects.
	[0bfb3394b]

	* emul/charclass.h, glob.c, lbuf.c, tgetpass.c:
	K&R compilation fixes
	[761066ab0]

	* parse.c:
	Use tq_foreach_fwd when checking pseudo-commands to make it clear
	that we are not short-circuiting on last match. When pwcheck is
	'all', initialize nopass to TRUE and override it with the first
	non-TRUE entry.
	[a93344d2b]

2008-12-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	Do not short circuit pseudo commands when we get a match since,
	depending on the settings, we may need to examine all commands for
	tags.
	[96f1ea470]

2008-12-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.man.in:
	regen
	[d488f2a03]

	* sudoers.pod:
	hostnames may also contain wildcards
	[3f92c8740]

	* Makefile.in:
	remove stamp-* files and linux core files in clean target
	[613b889ee]

2008-12-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/sudo_auth.h, config.h.in, configure, configure.in:
	Use HAVE_SIA_SES_INIT instead of HAVE_SIA for Digital UNIX
	[02a894a09]

2008-11-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	correctly enable SIA on Digital UNIX
	[2464ba1f5]

	* TODO:
	checkpoint
	[498e00374]

	* ChangeLog:
	sync
	[bc1466519]

2008-11-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c, sudo.h, tgetpass.c:
	Even if neither stdin nor stdout are ttys we may still have /dev/tty
	available to us.
	[b18eede62]

2008-11-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.man.in:
	regen
	[30296d050]

	* sudoers.pod:
	fix typos; Markus Lude
	[42771539e]

	* ChangeLog:
	sync
	[de66ff1af]

	* toke.c:
	regen
	[13968b685]

	* toke.l:
	Fix matching of a line that only consists of a comment char
	[1c79dd537]

2008-11-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	MacOS pam will retry conversation function if it fails so just treat
	^C as an empty password.
	[c3d3db62f]

	* visudo.c:
	When checking for alias use, also check defaults bindings.
	[c1a62bf88]

	* redblack.c:
	unused var
	[8811643f9]

	* redblack.c:
	Replace my rbdelete with Emin's version (which actually works ;-)
	[b5a12039a]

2008-11-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* testsudoers.c:
	malloc debugging
	[1939859a2]

	* visudo.c:
	malloc options in devel mode for visudo too
	[4ed783719]

2008-11-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	fix compilation on non-C99; from Theo
	[68baa6346]

	* visudo.c:
	fix check_aliases
	[d27ceff8e]

	* alias.c:
	when destroying an alias, free the correct data pointer
	[ea81e0446]

	* auth/sudo_auth.h:
	add proto for aixauth_cleanup; from Dale King
	[875b888da]

2008-11-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in, visudo.cat,
	visudo.man.in:
	regen
	[d1a43dbe3]

	* sudo.pod, sudoers.pod, visudo.pod:
	standardize on the term 'option' for command line options (not flag)
	[59302128d]

2008-11-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	Add note on configuring HP-UX pam
	[7af30b75e]

2008-11-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c, sudo.c:
	Move tty checks into check_user() so we only do them if we actually
	need a password.
	[3cc3114d9]

	* sudo.c:
	Don't error out if no tty or askpass unless we actually need to
	authenticate.
	[8e480f4ae]

2008-11-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ChangeLog:
	regen
	[8141061bf]

	* pathnames.h.in, sudo.c:
	s/overriden/overridden/; from Tobias Stoeckmann
	[43c98580f]

2008-11-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW, visudo.c:
	check sudoers owner and mode in strict mode
	[235dc7ad0]

	* gram.c, toke.c:
	regen
	[a33e988df]

	* sudo.man.in, sudoers.man.in, visudo.man.in:
	Update copyright years.
	[5f934f10f]

	* LICENSE, alias.c, alloc.c, auth/afs.c, auth/aix_auth.c,
	auth/bsdauth.c, auth/fwtk.c, auth/kerb4.c, auth/kerb5.c, auth/pam.c,
	auth/securid.c, auth/securid5.c, auth/sia.c, auth/sudo_auth.h,
	closefrom.c, compat.h, defaults.c, defaults.h, env.c, fileops.c,
	gettime.c, gram.y, ins_csops.h, insults.h, interfaces.c,
	interfaces.h, lbuf.c, license.pod, list.c, logging.c, logging.h,
	parse.c, parse.h, pwutil.c, redblack.c, redblack.h, snprintf.c,
	sudo.c, sudo.pod, sudo_edit.c, sudo_nss.h, sudoers.pod,
	testsudoers.c, toke.l, tsgetgrpw.c, utimes.c, version.h, visudo.c,
	visudo.pod, zero_bytes.c:
	Update copyright years.
	[840acbd3a]

	* emul/charclass.h, fnmatch.c, glob.c:
	add my copyright
	[4baa2f90c]

2008-11-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c, toke.l:
	The loop in fill_cmnd() was going one byte too far past the end,
	resulting in a NUL being written immediately after the buffer end.
	[b0c1c7979]

	* UPGRADE, WHATSNEW:
	add sections on tgetpass changes
	[b8742114c]

	* tgetpass.c:
	Treat EOF w/o newline as an error.
	[80ca3a972]

2008-11-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	Fix "sudo -v" when NOPASSWD is set.
	[54a07b5e8]

	* auth/bsdauth.c, auth/fwtk.c, auth/pam.c, auth/sudo_auth.c,
	auth/sudo_auth.h:
	No longer treat an empty password at the prompt as special. To quit
	out of sudo you now need to hit ^C at the password prompt.
	[ff175f7f0]

	* sudoers.cat, sudoers.man.in:
	regen
	[213eaef4c]

	* def_data.c, def_data.h, def_data.in, sudo.c, sudoers.pod:
	Sudo will now refuse to run if no tty is present unless the new
	visiblepw sudoers flag is set.
	[535ed3817]

2008-11-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aix.c:
	just use RLIM_INFINITY for RLIM_SAVED_MAX if RLIM_SAVED_MAX not
	defined
	[5c4840365]

	* aix.c:
	fix fallback value for RLIM_SAVED_MAX
	[c60c4c71c]

	* auth/aix_auth.c, auth/sudo_auth.h:
	Move clearing of AUTHSTATE into aixauth_cleanup.
	[51fae2c9c]

	* auth/aix_auth.c, env.c:
	Unset AUTHSTATE after calling authenticate() as it may not be
	correct for the user we are running the command as.
	[50d897475]

	* isblank.c:
	Add isblank() function for systems without it. Needed for POSIX
	character class matching in fnmatch.c and glob.c.
	[8654dec3c]

2008-11-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TROUBLESHOOTING:
	expound on sudo and cd
	[b909652ad]

2008-11-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ChangeLog:
	regen
	[e94d951ac]

	* sudoers.cat, sudoers.man.in:
	regen
	[fd4065a83]

	* sudoers.pod:
	mention defauts parse order
	[e2fb6dbb0]

2008-11-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, aclocal.m4, compat.h, configure:
	Add isblank() function for systems without it. Needed for POSIX
	character class matching in fnmatch.c and glob.c.
	[48329f0e4]

	* Makefile.in:
	add emul/charclass.h to HDRS
	[49611b132]

2008-11-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO:
	checkpoint
	[ffb9f65b2]

	* defaults.c, parse.c, testsudoers.c, visudo.c:
	Move update_defaults into defaults.c and call it properly from
	visudo and testsudoers.
	[f201db90f]

	* defaults.c, interfaces.c, pwutil.c, sudo.c, sudo_edit.c,
	tgetpass.c, tsgetgrpw.c:
	use zero_bytes() instead of memset() for consistency
	[3cb9d538f]

	* logging.c, mon_systrace.c, parse.c, sudo.c, sudo_edit.c,
	tgetpass.c, visudo.c:
	Zero out sigaction_t before use in case it has non-standard entries.
	[4afceb8e9]

	* match.c:
	quiet gcc
	[1cc431c42]

	* match.c:
	Short circuit glob() checks if basename(pattern) !=
	basename(command). Refactor code that checks for a command in a
	directory and use it in the glob case if the resolved pattern ends
	in a '/'.
	[4c7a96ba1]

2008-11-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.h, parse.c, sudo.c, testsudoers.c, visudo.c:
	Defer setting runas defaults until after runaspw/gr is setup.
	[8ba6fa2ae]

2008-10-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c, sudo.c, testsudoers.c:
	Use MAXHOSTNAMELEN+1 when allocating host/domain name since some
	systems do not include space for the NUL in the size. Also manually
	NUL-terminate buffer from gethostname() since POSIX is wishy-washy
	on this.
	[efb510a9d]

2008-10-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c, sudoers.pod:
	When setting the umask, use the union of the user's umask and the
	default value set in sudoers so that we never lower the user's umask
	when running a command.
	[9b5e94cef]

	* sudo.c:
	Don't try to read from a zero-length sudoers file. Remove the bogus
	Solaris work-around for EAGAIN. Since we now use fgetc() it should
	not be a problem.
	[aa54053ad]

2008-10-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	In update_defaults() check the return value of user*_matches against
	ALLOW so we don't inadvertantly match on UNSPEC.
	[ab32ede12]

2008-10-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.ldap.cat,
	sudoers.ldap.man.in, sudoers.man.in, visudo.cat, visudo.man.in:
	regen man pages; no more hyphenation
	[b3349ed6b]

	* sudo.c:
	Don't error out on a zero-length sudoers file. With the advent of
	#include the user could create a situation where sudo is unusable.
	[18e764403]

2008-10-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/kerb5.c, config.h.in, configure, configure.in:
	Newer heimdal has 2-argument krb5_get_init_creds_opt_free() like MIT
	krb5. Really old heimdal has no krb5_get_init_creds_opt_alloc() at
	all. Add configure tests to handle all the cases.
	[13e2ccea6]

2008-10-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod:
	resort ENVIRONMENT
	[cf9fa33eb]

	* sudoers.pod:
	document sudoers_locale
	[ce67f2249]

	* sudo.pod, sudo_edit.c:
	add SUDO_EDITOR variable that sudoedit uses in preference to VISUAL
	or EDITOR
	[7bb516039]

	* toke.c, toke.l:
	In fill_cmnd(), collapse any escaped sudo-specific characters.
	Allows character classes to be used in pathnames.
	[240339c05]

2008-10-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lbuf.c:
	fix typo in non-C89 function declaration
	[55ed6f2c1]

	* sudoers.pod:
	Mention POSIX characters classes now that out fnmatch() and glob()
	support them.
	[22103775c]

	* sample.sudoers, sudoers.pod:
	Replace [A-z] (which won't match in UTF8) with [A-Za-z] which is
	locale agnostic.
	[5446cd3ae]

	* parse.h:
	use __signed char if we are going to assign a negative value since
	on Power, char is unsigned by default
	[a71667af5]

	* config.h.in, configure, configure.in:
	Add tests for __signed char and signed char.
	[99cdf6dc8]

	* aix.c:
	Fix AIX limit setting. getuserattr() returns values in disk blocks
	rather than bytes. The default hard stack size in newer AIX is
	RLIM_SAVED_MAX. From Dale King.
	[ad4dd3b22]

2008-09-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* emul/charclass.h, fnmatch.c, glob.c:
	Add character class support to included glob(3) and fnmatch(3).
	[0372d7dc2]

2008-09-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* emul/fnmatch.h:
	Remove UCB advertising clause and some compatibility defines.
	[8c1e64b7d]

2008-09-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_edit.c:
	Check EDITOR/VISUAL to make sure sudoedit is not re-invoking itself
	or sudo. This allows one to set EDITOR to sudoedit without getting
	into an infinite loop of sudoedit running itself until the path gets
	too big.
	[8fa4ef591]

	* def_data.c, def_data.h, def_data.in, defaults.c, sudo.c:
	Add sudoers_locale Defaults option to override the default sudoers
	locale of "C".
	[b02daa827]

2008-09-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Set locale to system default except for during sudoers parse.
	[508295b1f]

2008-09-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c:
	Redo change in 1.34 to use pointer arithmetic.
	[65bce6555]

2008-09-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c:
	Fix a dereference (read) of a freed pointer. Reported by Patrick
	Williams.
	[d0a44e437]

2008-08-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Set locale to "C" to avoid interpretation issues with character
	ranges in sudoers. May want to make the locale a sudoers option in
	the future.
	[a5245c235]

2008-08-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	we no longer use setproctitle
	[194d57b96]

	* sudo.h:
	remove #if 1
	[1954d6811]

	* LICENSE, mkstemp.c:
	Use my replacement mkstemp() from the mktemp package.
	[da6ffd067]

2008-07-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* gram.c:
	regen with yacc skeleton bug fixed
	[ed3cc2b33]

	* sudoers.pod:
	Remove duplicate "as root". From Martin Toft.
	[8f38cfbe9]

2008-07-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pwutil.c, sudo.c, sudo.h, testsudoers.c:
	Flesh out the fake passwd entry used for running commands as a uid
	not listed in the passwd database. Fixes an issue with some PAM
	modules.
	[e439faeeb]

2008-07-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Error out in -i mode if the user has no shell. This can happen when
	running commands as a uid with no password entry.
	[0cf7172b1]

2008-06-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c, toke.l:
	Better fix for line continuation inside double quotes. Now accepts
	whitespace between the backslash and the newline like the main
	lexer.
	[3bf94ded8]

2008-06-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c, toke.l:
	Fix line continuation in strings. It was only being honored if
	preceded by whitespace.
	[bd8e38a0c]

2008-06-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, logging.c:
	Replace the double fork with a fork + daemonize.
	[ca6eddf0d]

2008-06-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c, sudo.c:
	The -i flag should imply env_reset. This got broken in sudo 1.6.9.
	[4578548c4]

	* logging.c, sudo.c, sudo_edit.c, visudo.c:
	Change how the mailer is waited for. Instead of having a SIGCHLD
	handler, use the double fork trick to orphan the child that opens
	the pipe to sendmail. Fixes a problem running su on some Linux
	distros.
	[5756ddfbe]

2008-06-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Fix configure test for dirfd() on Linux where DIR is opaque.
	[c372928c3]

2008-06-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	Get rid of the QNX TCSAFLUSH -> TCSADRAIN hack. If QNX still has
	this problem we'll need to revisit this again.
	[e37c901cd]

2008-06-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	Ignore SIGPIPE instead of blocking it when piping to the mailer. If
	we only block the signal it may be delivered later when we unblock.
	Also, there is no need to block SIGCHLD since we no longer do the
	double fork. The normal SIGCHLD handler is sufficient.
	[552eca0d0]

2008-06-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Add description for NO_PAM_SESSION, from a redhat patch.
	[cfb45078b]

2008-06-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in, sudo.pod:
	Fix typos in -i usage
	[06a4e1402]

2008-05-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Redo the test for dgettext() in a way that hopefully will work
	around the libintl_dgettext() undefined problem.
	[e2cbaa50a]

2008-05-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* schema.ActiveDirectory:
	change filename in comment
	[2aadaaded]

2008-05-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, README.LDAP, sudoers.ldap.cat, sudoers.ldap.man.in,
	sudoers.ldap.pod:
	Reference schema.ActiveDirectory
	[64c5738ec]

2008-05-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* schema.OpenLDAP, schema.iPlanet:
	Mark sudoRunAs as deprecated.
	[1da320979]

	* schema.ActiveDirectory:
	add sudoRunAsUser and sudoRunAsGroup
	[236fd128d]

	* schema.ActiveDirectory:
	Active Directory schema by Chantal Paradis and Eric Paquet
	[2860716ba]

2008-05-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	remove an XXX that was fixed
	[f0db3ecfb]

	* ChangeLog:
	sync
	[fbc4aea0e]

	* parse.c:
	Initialize tags to UNSPEC instead of def_* in "sudo -l" mode. This
	fixes a problem where the tag value printed was influenced by
	defaults set in the first pass through the parser.
	[88b932722]

2008-05-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, sudo.psf:
	No point in packaging the TODO file
	[5c58a7e96]

	* ChangeLog:
	sync
	[d529c35bf]

2008-05-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW, def_data.c, def_data.h, def_data.in, env.c, sudo.c,
	sudo.h, sudoers.cat, sudoers.man.in, sudoers.pod:
	Add env_file Defaults option that is similar to /etc/environment on
	some systems.
	[b85a28aba]

2008-05-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, README, TODO, WHATSNEW, sudo.cat, sudo.man.in,
	sudoers.cat, sudoers.ldap.cat, sudoers.ldap.man.in, sudoers.man.in,
	version.h, visudo.cat, visudo.man.in:
	change version to 1.7.0
	[c3470aa58]

	* UPGRADE:
	initial valgrind pass done
	[bfc826872]

2008-04-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Fix typo/think in sudo_ldap_read_secret() when storing the secret.
	[25aa1b5bf]

2008-04-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	define LDAPS_PORT if the system headers do not
	[3fa2f3292]

2008-04-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* gram.c, gram.y:
	Fix another memory leak in init_parser().
	[a890d723d]

	* configure, configure.in:
	There was a missing space before the ldap libs in SUDO_LIBS for some
	configurations.
	[f0a6827fe]

	* alias.c, gram.c, gram.y, toke.c, toke.l:
	Clean up some memory leaks pointed out by valgrind.
	[b06e2f9d6]

2008-04-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	fix "sudo -s" broken by mode/flags breakout
	[cb8bc538d]

	* configure, configure.in:
	remove duplicate check for dgettext
	[7fe25e284]

2008-04-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aix.c:
	Fall back to default stanza if no user-specific limit is found.
	[7ddbc66eb]

2008-04-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* snprintf.c:
	include stdint.h if present
	[00d499348]

	* snprintf.c:
	Use LLONG_MAX, not the old QUAD_MAX
	[66d388c3d]

2008-04-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.ldap.pod:
	fix cut and pasto
	[0715e45e7]

2008-03-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pwutil.c:
	Add #ifdef PURITY
	[82ba4c72e]

2008-03-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/bsdauth.c:
	remove useless cast
	[d43f00c18]

2008-03-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ChangeLog:
	sync
	[a19527614]

	* TODO:
	sync
	[27fa3e97d]

	* sudo.h:
	Split MODE_* defines into primary and flags.
	[6ca2fd6b5]

2008-03-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aix.c:
	It turns out the logic for getting AIX limits is more convoluted
	than I realized and differs depending on whether the soft and/or
	hard limits are defined.
	[d7b4d7bc2]

2008-03-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, configure, configure.in:
	Back out AIX-specific change to set the sudo_noexec path to the .a
	file, we do really want to use the .so file. Since libtool doesn't
	do that correctly, just install the .so file ourselves in the
	Makefile.
	[241d0750f]

	* install-sh:
	If the file given to install is a path, only use the basename of the
	file when building the destination path.
	[1efe9a900]

2008-03-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	parse_args() cleanup: Sort command line options in the getopt()
	switch The -U option requires a parameter Normalize a few ISSET
	calls Split mode into mode and flags and retire the now-obsolete
	excl variable
	[938f79172]

	* WHATSNEW, check.c, sudo.c, sudo.cat, sudo.h, sudo.man.in,
	sudo.pod, sudo_usage.h.in:
	Add -n (non-interactive) flag.
	[c352187cf]

	* sudo.c:
	Move version printing, etc. into a separate function.
	[f2c84d5a6]

	* sudo.c:
	Don't try to cleanup nsswitch if it has not been initialized.
	[4b46531e4]

2008-03-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	Block SIGPIPE in send_mail() so sudo is not killed by a problem
	executing the mailer.
	[b7b807e10]

2008-03-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	AIX shared libs end in .a, not .so.
	[52710ce51]

2008-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Preserve HOME by default too. Matches documentation and previous
	behavior.
	[daba1995f]

2008-03-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Use getopt() to parse the command line. We need to be able to
	intersperse env variables and options yet still honor "--"" which
	complicates things slightly.
	[d11cb3d14]

2008-03-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ChangeLog:
	sync
	[299fe04af]

	* acsite.m4, configure, ltmain.sh:
	update to libtool-1.5.26
	[229a79b6b]

	* config.guess, config.sub:
	update from libtool-1.5.26 distribution
	[af2555357]

	* aix.c, sudo.h:
	attempt to fix compilation errors on AIX
	[59c1ac153]

	* Makefile.in:
	fix typo in last commit
	[d2a05f214]

	* Makefile.in:
	Add WHATSNEW file to the distribution
	[094c79a20]

	* visudo.c:
	use warningx instead of fprintf(stderr, ...)
	[459013247]

	* list.c:
	add DEBUG to list2tq
	[3fbd32170]

	* ChangeLog, TODO:
	sync
	[e87d5f845]

	* WHATSNEW:
	mention mailfrom
	[06053753d]

	* Makefile.in, aix.c, config.h.in, configure, configure.in,
	set_perms.c, sudo.h:
	Add aix_setlimits() to set resource limits on AIX using a
	combination of getuserattr() and setrlimit(). Currently untested.
	[897239afe]

2008-03-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* def_data.c, def_data.h, def_data.in, logging.c, sudoers.cat,
	sudoers.man.in, sudoers.pod:
	Add mailfrom Defaults option that sets the value of the From: field
	in the warning/error mail. If unset the login name of the invoking
	user is used.
	[0f9e7f96f]

	* defaults.c:
	store a copy of _PATH_SUDO_ASKPASS in def_askpass that is freeable
	[2314fd903]

	* gram.c, gram.y:
	When adding a default, only call list2tq() once to do the list to tq
	conversion. It is not legal to call list2tq multiple times on the
	same list since list2tq consumes and modifies the list argument.
	[cb1a3be9d]

	* sudoers.ldap.cat, sudoers.ldap.man.in, sudoers.ldap.pod:
	comment out XXXs for now
	[c880b55b8]

	* WHATSNEW:
	mention askpass
	[9c1b476df]

2008-03-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Error out if both -A and -S are specified Error out if -A is
	specified but no askpass is configured
	[0c6a760fc]

	* configure, configure.in:
	we are not going to ship a sudo-specific askpass
	[64d226e1d]

2008-03-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	fix definition of TGP_ASKPASS
	[5d86a9d6f]

	* def_data.c, def_data.in:
	make askpass boolean-capable
	[cbf038c61]

	* INSTALL:
	document --with-askpass
	[9a6917851]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.ldap.cat,
	sudoers.man.in, visudo.cat:
	regen
	[c0773d037]

2008-03-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod, sudo_usage.h.in, sudoers.pod:
	document -A and askpass
	[143691e6d]

	* auth/sudo_auth.c, check.c, configure, configure.in, def_data.c,
	def_data.h, def_data.in, defaults.c, pathnames.h.in, sudo.c, sudo.h,
	sudo_usage.h.in, tgetpass.c:
	Add support for running a helper program to read the password when
	no tty is present (or when specified with the -A flag). TODO: docs.
	[ee0491416]

	* def_data.c, def_data.in:
	add missing printf format to SELinux role and type strings
	[5b248a076]

2008-02-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, configure, configure.in:
	Disable use of gss_krb5_ccache_name() by default and add
	--enable-gss-krb5-ccache-name configure option to enable it. It
	seems that gss_krb5_ccache_name() doesn't work properly with some
	combinations of Heimdal and OpenLDAP.
	[f20935284]

2008-02-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* selinux.c:
	Ignore setexeccon() failing in permissive mode. Also add a call to
	setkeycreatecon() (though this is probably insufficient). From Dan
	Walsh.
	[9c3a47892]

	* auth/pam.c:
	Only set std_prompt for the PAM_PROMPT_* cases. The conversation
	function may be called for non-password reading purposes so we must
	be careful not to use def_prompt in cases where it may not be set.
	[48eee67e5]

2008-02-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* selinux.c:
	Don't free the new tty context, we need to keep it around when we
	restore the tty context after the command completes
	[1a347284e]

2008-02-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* selinux.c:
	s/newrole/sudo/
	[361280501]

	* sudo.man.pl, sudo.pod:
	Only put login_cap(3) in SEE ALSO section if we have login.conf
	support
	[c2378eb4d]

2008-02-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.ldap.cat,
	sudoers.ldap.man.in, sudoers.man.in, visudo.cat, visudo.man.in:
	regen
	[795a303ea]

	* sudoers.pod:
	Substitute in comment characters for lines partaining to login.conf,
	BSD auth and SELinux and only enable them if pertinent.
	[b07217919]

	* sudoers.man.pl:
	Substitute in comment characters for lines partaining to login.conf,
	BSD auth and SELinux and only enable them if pertinent.
	[2b4e67ff8]

	* sudo.pod:
	Substitute in comment characters for lines partaining to login.conf,
	BSD auth and SELinux and only enable them if pertinent.
	[ef16f80a3]

	* sudo.man.pl:
	Substitute in comment characters for lines partaining to login.conf,
	BSD auth and SELinux and only enable them if pertinent.
	[a228c7209]

	* Makefile.in, configure, configure.in:
	Substitute in comment characters for lines partaining to login.conf,
	BSD auth and SELinux and only enable them if pertinent.
	[cf6bca4b0]

	* Makefile.in, sudo.pod, sudoers.ldap.pod, sudoers.pod, visudo.pod:
	Remove the =cut on the first line (above the copyright notice) to
	quiet pod2man. Also remove the hackery in the FILES section and just
	deal with the fact that there will a newline between each pathname.
	[7a1e2dfb5]

2008-02-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	run sudo.man.pl when generating sudo.man.in
	[07daaa390]

	* configure, configure.in, sudo.man.pl:
	comment out SELinux manual bits unless --with-selinux was specified
	[279ee07ee]

	* sudoers.pod:
	document role and type defaults for SELinux
	[229b23146]

	* sudo.c, sudo.cat, sudo.man.in, sudo.pod, sudo_usage.h.in:
	Document "sudo -ll" and make "sudo -l -l" be equivalent.
	[211be00cc]

2008-02-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Treat k*bsd*-gnu like Linux, not BSD. Fixes compilation problems on
	Debian GNU/kFreeBSD.
	[506285209]

2008-02-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/kerb5.c:
	Avoid Heimdal'isms introduced in the rev 1.32 rewrite of
	verify_krb_v5_tgt()
	[dd2c345be]

	* logging.c, logging.h, sudo.c:
	Remove dependence on VALIDATE_NOT_OK in logging functions. Split
	log_auth() into log_allowed() and log_denial() Replace mail_auth()
	with should_mail() and a call to send_mail()
	[04bb8f00f]

2008-02-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Add debugging so we can tell if the krb5 ccache is accessible
	[4f5d9371a]

	* INSTALL:
	mention --with-selinux
	[ebae55854]

2008-02-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[9635907f2]

	* selinux.c:
	add Sudo tag
	[cc47d67b4]

	* sudo.c, sudo.cat, sudo.h, sudo.man.in, sudo.pod, sudo_usage.h.in,
	sudoers.ldap.cat, sudoers.ldap.man.in, sudoers.ldap.pod,
	testsudoers.c, toke.c, toke.l:
	Add support for SELinux RBAC. Sudoers entries may specify a role and
	type. There are also role and type defaults that may be used. To
	make sure a transition occurs, when using RBAC commands are executed
	via the new sesh binary. Based on initial changes from Dan Walsh.
	[4c992e190]

	* sesh.c:
	Add support for SELinux RBAC. Sudoers entries may specify a role and
	type. There are also role and type defaults that may be used. To
	make sure a transition occurs, when using RBAC commands are executed
	via the new sesh binary. Based on initial changes from Dan Walsh.
	[c7a2ef7a1]

	* Makefile.in, config.h.in, configure.in, def_data.c, def_data.h,
	def_data.in, gram.c, gram.h, gram.y, ldap.c, parse.c, parse.h,
	pathnames.h.in, selinux.c:
	Add support for SELinux RBAC. Sudoers entries may specify a role and
	type. There are also role and type defaults that may be used. To
	make sure a transition occurs, when using RBAC commands are executed
	via the new sesh binary. Based on initial changes from Dan Walsh.
	[f2b70188b]

2008-02-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lbuf.c, ldap.c, parse.c, sudo.c, sudo.h, sudo_nss.c:
	Add long list (sudo -ll) support for printing verbose LDAP and
	sudoers file entries. Still need to update manual.
	[5d20923c2]

2008-02-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c, parse.c, sudo.h, sudo_nss.c, sudo_nss.h:
	Unify the -l output for file and ldap based sudoers and use lbufs
	for both. The ldap output does not currently include options that
	cannot be represented as tags. This will be remedied in a long list
	output mode to come.
	[3c7b76bb5]

2008-01-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* set_perms.c:
	Use a specific error message for errno == EAGAIN when setuid() et al
	fails. On Linux systems setuid() will fail with errno set to EAGAIN
	if changing to the new uid would result in a resource limit
	violation.
	[8e33f6348]

	* sudo.c:
	Unlimit nproc on Linux systems where calling the setuid() family of
	syscalls causes the nroc resource limit to be checked. The limits
	will be reset by pam_limits.so when PAM is used. In the non-PAM case
	the nproc limit will remain unlimited but there doesn't seem to be a
	way around that other than having sudo parse
	/etc/security/limits.conf directly.
	[72656eaf3]

	* env.c, sudo.c, sudo.pod:
	Only read /etc/environment on Linux and AIX
	[801860b29]

2008-01-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Use SUDO_DEFINE_UNQUOTED instead of AC_DEFINE_UNQUOTED to prevent
	ldap.conf and ldap.secret paths from going into config.h. Avoid
	single quotes in variable expansion when using SUDO_DEFINE_UNQUOTED
	since in some versions of bash they will end up literally in the
	resulting define.
	[f0dc1caa4]

2008-01-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README.LDAP:
	mention --with-nsswitch=no
	[cc346a5ec]

	* configure, configure.in:
	ldap_ssl.h depends on ldap.h being included first
	[48df9c481]

	* config.h.in, configure, configure.in, ldap.c:
	Include ldap_ssl.h if we can find it. Needed for the
	ldapssl_set_strength defines on HP-UX at least.
	[a3e6610e0]

	* sudoers.ldap.pod:
	sync
	[870334373]

	* TODO:
	sync
	[40fb31c0a]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.ldap.cat,
	sudoers.ldap.man.in, sudoers.man.in, visudo.cat, visudo.man.in:
	regen
	[bc5772f79]

	* Makefile.in:
	Use 78n line length when formatting cat pages.
	[b54eff661]

	* README.LDAP:
	Remove redundant info that is now in sudoers.ldap.pod
	[57a6ebde5]

2008-01-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.ldap.cat, sudoers.ldap.man.in, sudoers.ldap.pod:
	Reorganize the first section a bit. Substitute the proper path for
	/etc/sudoers.
	[a48e85e1a]

	* sudoers.ldap.cat, sudoers.ldap.man.in, sudoers.ldap.pod:
	Substitute values for ldap.conf, ldap.secret and nsswitch.conf Move
	schema into EXAMPLES
	[e1db0d126]

	* configure, configure.in:
	Substitute values for ldap.conf, ldap.secret and nsswitch.conf into
	sudoers.ldap.man.
	[c268627f9]

	* configure, configure.in:
	substitute for sudoers.ldap.man
	[49f2264ad]

	* Makefile.in:
	Fix cut & pasto introduced when adding sudoers.ldap man page.
	[32d57a928]

	* sudoers.ldap.cat, sudoers.ldap.man.in, sudoers.ldap.pod:
	Fill in some of the missing pieces. Still needs some reorganization
	and editing.
	[961a79b74]

2008-01-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, sudoers.ldap.cat, sudoers.ldap.man.in,
	sudoers.ldap.pod:
	Beginnings of a sudoers.ldap man page. Currently, much of the
	information is adapted from README.LDAP.
	[907be979c]

2008-01-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pwutil.c:
	When copying gr_mem we must guarantee that the storage space for
	gr_mem is properly aligned. The simplest way to do this is to simply
	store gr_mem directly after struct group. This is not a problem for
	gr_passwd or gr_name as they are simple strings.
	[2a5a01c22]

	* ldap.c:
	Fix a typo/thinko in one of the calls to
	sudo_ldap_check_user_netgroup(). From Marco van Wieringen.
	[09c1189d1]

2008-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, ldap.c:
	include <mps/ldap_ssl.h> in ldap.c if available
	[0f6101bb2]

2008-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* gram.c, gram.y:
	Make sure we define SIZE_MAX for yacc's skeleton.c
	[5fc4d8fa1]

	* tgetpass.c:
	Use TCSAFLUSH when restoring terminal settings (and echo) to
	guarantee that any pending output is discarded
	[ebcf3cf39]

2008-01-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers:
	no longer need to specify SETENV when user has sudo ALL
	[fb4b04978]

	* testsudoers.c:
	sync user_args size calculation with sudo.c Add -g group option,
	renaming old -g to -G Add set_runasgr() and set_runaspw() and use
	them
	[18d42bf8b]

	* sudo.c, sudo.h:
	Make set_runaspw static void
	[7f05a4ff6]

	* testsudoers.c, visudo.c:
	g/c set_runaspw stub
	[6c1ef6839]

	* configure, configure.in:
	Don't add -llber twice.
	[63f224f04]

2008-01-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	fix typo
	[6131e9f36]

2008-01-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* gram.c:
	regen
	[2ff13a240]

	* configure, configure.in:
	Fix check that determines whether -llber is required.
	[dde5143f0]

	* README.LDAP, config.h.in, configure, configure.in, ldap.c:
	For netscape-based LDAP, use ldapssl_set_strength() to implement the
	checkpeer ldap.conf option.
	[9a07c1a7f]

	* auth/kerb5.c:
	Delay krb5_cc_initialize() until we actually need to use the cred
	cache, which is what krb5_verify_user() does. Better cleanup on
	failure.
	[0851d77f1]

2008-01-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/kerb5.c:
	Rewrite verify_krb_v5_tgt() based on what heimdal's
	krb5_verify_user() does.
	[584ab252d]

2008-01-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* gram.c:
	The U suffix on constants is an ANSI feature
	[7a110f08c]

	* configure, configure.in:
	Add check for ber_set_option() in -llber
	[1df9ca2dc]

2008-01-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README.LDAP:
	default if no nsswitch.conf is files only
	[8db7b8e59]

2008-01-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README.LDAP:
	don't tell people to mail aaron about LDAP stuff
	[1b6275a69]

	* README.LDAP:
	timelimit and bind_timelimit
	[0b11b7e71]

	* ChangeLog:
	sync
	[a9615943f]

	* ldap.c:
	Move ldap.secret reading into a separate function.
	[00030b9ad]

	* check.c:
	user_runas -> runas_pw
	[43f740860]

2008-01-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO:
	sync
	[990910665]

	* check.c, sudo.pod, sudoers.pod:
	Add and document the %p escape in the password prompt. Based on a
	patch from Patrick Schoenfeld.
	[0fc0e3c86]

	* ldap.c:
	Check strlcpy() return values.
	[9998419d7]

	* ldap.c:
	refactor ldap binding code into sudo_ldap_bind_s()
	[4bb216745]

	* README.LDAP:
	Make it clear that host and uri can take multiple parameters. URI is
	now supported for more than just openldap nsswitch.conf does't
	accept "compat"
	[77d841e0e]

	* sudo.c:
	comment cleanup and update (c) year
	[055bda626]

	* parse.c, sudo_nss.c:
	Move display_privs() and display_cmnd() from parse.c to sudo_nss.c.
	This should make it possible to build an LDAP-only sudo binary.
	[fb0164887]

	* ldap.c, parse.c, sudo.c, sudo.h, sudo_nss.h:
	Improve chaining of multiple sudoers sources by passing in the
	previous return value to the next in the chain
	[28ed51b44]

	* gram.y:
	Free up parser data structures in sudo_file_close().
	[56d193b29]

	* gram.c, parse.c:
	Free up parser data structures in sudo_file_close().
	[53aec6601]

	* ldap.c:
	Parse uri ourself if no ldap_initialize() is present Use
	ldap_create() instead of deprecated ldap_init() Use
	ldap_sasl_bind_s() instead of deprecated ldap_simple_bind_s()
	[e4370acaa]

	* config.h.in, configure, configure.in:
	Add check for ldap_sasl_bind_s() Remove -DLDAP_DEPRECATED from
	CFLAGS
	[f1377429a]

2008-01-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in:
	add check for ldap_create
	[b564d5186]

2008-01-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, ldap.c:
	Add sudo_ldap_get_first_rdn() to return the first rdn of an entry's
	dn using the mechanism appropriate for the LDAP SDK in use. Use
	ldap_unbind_ext_s() instead of deprecated ldap_unbind_s(). Emulate
	ldap_unbind_ext_s() and ldap_search_ext_s() for SDK's without them.
	[86bd55fc6]

	* lbuf.c:
	include unistd.h
	[179ec68f8]

	* config.h.in, configure.in:
	fix typo in mtim_getnsec
	[27efa3d25]

2008-01-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in:
	add check for st__tim in struct stat as used by SCO
	[32e4a98a6]

	* ldap.c:
	use ldap_search_ext_s instead of deprecated ldap_search_s
	[e23813315]

	* Makefile.in, TODO, sudo.cat, sudo.man.in:
	add sudo_nss.h to HDRS
	[915fc493c]

	* ldap.c:
	Replace deprecated ldap_explode_dn() with calls to ldap_str2dn() and
	ldap_rdn2str().
	[5173bbb95]

2008-01-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Use ldap_get_values_len()/ldap_value_free_len() instead of the
	deprecated ldap_get_values()/ldap_value_free().
	[8a2db8bd0]

	* ChangeLog:
	sync
	[6771b3617]

	* TODO:
	sync
	[f738ef46f]

	* gettime.c, sudo.c:
	Remove some already fixed XXXs
	[5a6ad03e5]

	* ldap.c:
	Same return value as non-existent sudoers if LDAP was unable to
	connect.
	[aa562c8f6]

	* sudo.pod:
	mention /etc/environment
	[ab14071ec]

	* README.LDAP, UPGRADE, WHATSNEW:
	Update to reflect recent developments.
	[685d9d2da]

	* sudo.c:
	Print nsswitch.conf, ldap.conf and ldap.secret paths in -V output.
	[156c94975]

	* ldap.c:
	When building up a query don't list groups in the aux group vector
	that are the same as the passwd file group. On most systems the
	first gid in the group vector is the same as the passwd entry gid.
	[a7fb2f3e3]

	* env.c, ldap.c:
	Define LDAPNOINIT before calling ldap_init(), etc. to disable user
	ldaprc and system defaults that could affect how LDAP works.
	[cd30e8474]

	* INSTALL, configure, configure.in, pathnames.h.in, sudo.c,
	sudo_nss.c, sudo_nss.h:
	Rename read_nss -> sudo_read_nss Add --with-nsswitch to allow users
	to specify nsswitch.conf path or disable it. If --with-nsswitch=no
	but --with-ldap, order is LDAP, then sudoers. Fix
	--with-ldap-conf-file and --with-ldap-secret-file
	[6f2cd1b18]

	* parse.c:
	Honor def_ignore_local_sudoers
	[d2de8d5fe]

2007-12-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	no longer need to check def_ignore_local_sudoers here
	[d6e9445a6]

	* parse.c:
	Refactor group vector resetting into a function and also call it
	from display_cmnd. Stop after the first sucessful match in
	display_cmnd. Print a newline between each display_privs method.
	[4d8f37f4b]

	* parse.c:
	fix double free introduced in rev 1.218
	[36b221af2]

	* ldap.c:
	belt and suspenders; zero out result after freeing it
	[b28913068]

	* env.c, fileops.c, ldap.c, sudo.h, sudo_nss.c:
	Refactor line reading into a separate function, sudo_parseln(),
	which removes comments, leading/trailing whitespace and newlines.
	May want to rethink the use of sudo_parseln() for /etc/ldap.secret
	[926dcd0bc]

	* parse.c, sudo.c:
	Make the inability to read the sudoers file a non-fatal error if
	there are other sudoers sources available. sudoers_file_lookup now
	returns "not OK" if sudoers was not present
	[0a2166272]

	* ldap.c:
	make it clear that the global options are from LDAP
	[09439030f]

	* logging.c:
	allocate proper amount of space for error string
	[e6d707b2d]

	* sudo_nss.c, sudo_nss.h:
	actual sudo nss code
	[de3bb5892]

	* ldap.c, parse.c, sudo.c, sudo.h:
	nss-ify display_privs and display_cmnd.
	[adfaebdb4]

	* defaults.c, parse.c, testsudoers.c, visudo.c:
	move update_defaults() to parse.c
	[3008bb494]

	* Makefile.in, ldap.c, list.c, parse.c, parse.h, sudo.c, sudo.h:
	Use nsswitch to hide some sudoers vs. ldap implementation details
	and reduce the number of #ifdef LDAP TODO: fix display routines and
	error handling
	[ae2ae3452]

2007-12-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, README.LDAP, ldap.c, pathnames.h.in, sudo.c, sudo.h:
	First cut at nsswitch.conf support. Further reorganizaton and
	related changes are forthcoming.
	[7f323157a]

2007-12-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c, pathnames.h.in, sudo.c, sudo.h:
	Add support for reading and /etc/environment file. Still needs to be
	documented and should probably only applies to OSes that have it
	(AIX and Linux, maybe others).
	[f8c52dc92]

	* ldap.c:
	include limits.h
	[1a69e42d9]

2007-12-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW:
	reword LDAP SASL
	[12b86ef41]

2007-12-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO:
	sync
	[d7090332e]

	* README.LDAP:
	Add an example sudoRole, clarify netscape vs. openldap a bit more
	[e60093477]

	* README.LDAP:
	Be clear on what is OpenLDAP vs. Netscape-derived
	[9dc049ccf]

	* config.h.in, configure, configure.in, ldap.c:
	Use ldapssl_init() for ldaps support instead of trying to do it
	manually with ldap_init() + ldapssl_install_routines(). Use tls_cert
	and tls_key for cert7.db and key3.db respectively. Don't print
	debugging info for options that are not set. Add warning if
	start_tls specified when not supported.
	[56729b9a6]

	* ldap.c:
	fix compilation on solaris
	[f60e1d3cb]

	* Makefile.in:
	add missing .h and .c files for missing lib objs
	[9ed999b7a]

2007-12-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	fix LDAP_OPT_NETWORK_TIMEOUT setting
	[dbe2b9e4f]

	* ldap.c:
	fix compilation on Solaris
	[3be9fcbed]

2007-12-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	fix typo
	[72e1a2b54]

	* README.LDAP:
	try to clear up which variables are for OpenLDAP and which are for
	netscape-derived SDKs
	[6aa830875]

	* config.h.in, configure, configure.in, ldap.c:
	Add support for "ssl on" in both netscape and openldap flavors. Only
	the OpenLDAP flavor has been tested.
	[b40949930]

	* logging.c, sudo.c, sudo.h:
	Call cleanup() before exit in log_error() instead of calling
	sudo_ldap_close() directly. ldap_conn can now be static to sudo.c
	[ff0a538d0]

	* sudo.c:
	ld -> ldap_conn
	[ed88a812e]

2007-12-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c, sudo.c, sudo.h:
	Better ldap cleanup.
	[a68ab16dc]

	* ldap.c:
	Distinguish between LDAP conf settings that are connection-specific
	(which take an ld pointer) and those that are default settings
	(which do not).
	[c5b5f0cfd]

2007-12-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Improved warnings on error.
	[06e6097a4]

	* ldap.c:
	Make ldap config table driven and set the config *after* we open the
	connection.
	[7c1889af1]

2007-12-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	fix LDAP_OPT_X_CONNECT_TIMEOUT compat define
	[6acbe1728]

	* configure, configure.in:
	some operating systems need to link with -lkrb5support when using
	krb5
	[400309aa9]

2007-12-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW:
	minor update
	[5ae3bb2dd]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in:
	regen
	[51d841654]

2007-12-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ChangeLog, TODO:
	sync
	[3e7a467e8]

	* ldap.c, schema.OpenLDAP, schema.iPlanet, sudoers2ldif:
	add -g support for LDAP
	[ae98617df]

2007-12-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW, sudo.c, sudo.pod, sudo_usage.h.in:
	The -i and -s flags can now take an optional command.
	[3592cc0b1]

2007-12-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c, def_data.c, def_data.h, def_data.in, sudo.c, sudo.pod,
	sudoers.pod:
	Add passprompt_override flag to sudoers that will cause the prompt
	to be overridden in all cases. This flag is also set when the user
	specifies the -p flag.
	[74c5dc4fa]

	* sudo.c:
	Move setting of login class until after sudoers has been parsed. Set
	NewArgv[0] for -i after runas_pw has been set.
	[4efd981d6]

	* configure, configure.in:
	Move the dgettext check.
	[c148eb52d]

2007-12-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c, config.h.in, configure, configure.in:
	Add basic support for looking up the string "Password: " in the PAM
	localized text db. This allows us to determine whether the PAM
	prompt is the default "Password: " one even if it has been
	localized.

	TODO: concatenate non-std PAM prompts and user-specified sudo
	prompts.
	[8694c7314]

2007-11-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, config.h.in, configure, configure.in, parse.c,
	set_perms.c, sudo.c, sudo.h:
	Use AC_FUNC_GETGROUPS instead of a home-grown attempt that was
	insufficient.
	[908b8f64e]

	* acsite.m4, configure, interfaces.c, memrchr.c:
	Fix typos; Martynas Venckus
	[a85dd4b86]

2007-11-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* set_perms.c:
	Don't assume runas_pw is set; it may not be in the -g case.
	[9c5696978]

2007-11-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c, set_perms.c:
	Set aux group vector for PERM_RUNAS and restore group vector for
	PERM_ROOT if we previously changed it. Stash the runas group vector
	so we don't have to call initgroups more than once. Also add no-op
	check to check_perms.
	[a76630000]

2007-11-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW, check.c, def_data.in, defaults.c, gram.c, gram.h,
	gram.y, ldap.c, logging.c, match.c, mon_systrace.c, parse.c,
	parse.h, pwutil.c, set_perms.c, sudo.c, sudo.cat, sudo.h,
	sudo.man.in, sudo.pod, sudo_usage.h.in, sudoers.cat, sudoers.man.in,
	sudoers.pod, testsudoers.c, visudo.c, visudo.cat, visudo.man.in:
	Add support for runas groups. This allows the user to run a command
	with a different effective group. If the -g option is specified
	without -u the command will be run as the current user (only the
	group will change). the -g and -u options may be used together.
	TODO: implement runas group for ldap improve runas group
	documentation add testsudoers support
	[f9f4aca55]

	* configure, configure.in:
	fix setting of mandir
	[bfd781ff6]

	* sudo.pod, sudoers.pod:
	document that ALL implies SETENV
	[c9f393e4d]

	* ldap.c:
	s/setenv_ok/setenv_implied/g
	[e6c0ba72f]

	* ldap.c:
	hostname_matches() returns TRUE on match in sudo 1.7.
	[fff47a319]

	* ldap.c:
	use strcmp, not strcasecmp when comparing ALL
	[4a39e1beb]

	* ldap.c:
	Make sudo ALL imply setenv. Note that unlike with file-based sudoers
	this does affect all the commands in the sudoRole.
	[6751e9a9c]

	* gram.c, gram.y, parse.c, parse.h:
	sudo "ALL" now implies the SETENV tag but, unlike an explicit tag,
	it is not passed on to other commands in the list.
	[52b2861bb]

	* visudo.c:
	Add missing sudo_setpwent() and sudo_setgrent() calls. Also use
	sudo_getpwuid() instead of getpwuid().
	[87dc0bb2e]

2007-11-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers:
	Expand on the dangers of not using visudo to edit sudoers.
	[8b1ada4a8]

2007-11-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	Don't quote *?[]! on output since the lexer does not strip off the
	backslash when reading those in.
	[7cd59baad]

2007-11-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* glob.c:
	expand "u_foo" types to "unsigned foo" to avoid compatibility
	issues.
	[5c61e13db]

2007-11-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	Refactor log line generation in to new_logline().
	[8ff6b6cca]

2007-10-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TROUBLESHOOTING:
	fix typo
	[c22d29597]

2007-10-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, interfaces.c, interfaces.h,
	match.c:
	Add configure check for struct in6_addr instead of relying on
	AF_INET6 since some systems define AF_INET6 but do not include IPv6
	support.
	[0d22c2f98]

2007-10-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Fix block to add -lutil for FreeBSD and NetBSD when logincap is in
	use.
	[c50e7d4c0]

2007-10-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	POSIX states that struct timespec be declared in time.h so check
	there regardless of the value of TIME_WITH_SYS_TIME.
	[8ef458b59]

2007-10-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	Instead of defining a macro to call the appropriate method for
	turning on/off echo, just define tc[gs]etattr() and the related
	defines that use the correct terminal ioctls if needed. Also go back
	to using TCSAFLUSH instead of TCSADRAIN on all but QNX.
	[45a382bba]

2007-10-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	g/c @ALLOCA@
	[f28aa7f8c]

	* configure:
	regen
	[c3f281841]

	* INSTALL, auth/pam.c, config.h.in, configure.in:
	Add --disable-pam-session configure option to disable calling
	pam_{open,close}_session. May work around bugs in some PAM
	implementations.
	[5a04b3ff9]

2007-10-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	quiet gcc warnings
	[f95160542]

	* tgetpass.c:
	Avoid printing the prompt if we are already backgrounded. E.g. if
	the user runs "sudo foo &" from the shell. In this case, the call to
	tcsetattr() will cause SIGTTOU to be delivered.
	[c84ad2683]

2007-09-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* def_data.c, def_data.h, def_data.in:
	Reorder things such that the definition of env_reset come right
	before the env variable lists.
	[209e35027]

	* parse.h:
	Shrink type and seqno in struct alias from int to u_short
	[0b6ebf4d8]

	* alias.c, match.c, parse.c, parse.h:
	Add a sequence number in the aliases for loop detection. If we find
	an alias with the seqno already set to the current (global) value we
	know we've visited it before so ignore it.
	[76e5eb434]

2007-09-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO, auth/pam.c, sudo.c, sudo.h:
	PAM wants the full tty path so add user_ttypath which holds the full
	path to the tty or is NULL if no tty was present.
	[4f5e88532]

	* auth/pam.c:
	Set PAM_RHOST to work around a bug in Solaris 7 and lower that
	results in a segv.
	[bb07eea18]

2007-09-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* gram.c:
	regen
	[57ee080a0]

	* alias.c, defaults.c, gram.y, list.c, list.h, match.c, parse.c,
	parse.h, testsudoers.c, visudo.c:
	rename lh_ -> tq_
	[a0f80d658]

2007-09-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* alloc.c:
	remove some useless casts
	[91526aaf7]

	* alloc.c:
	pull in inttypes.h for SIZE_MAX; we avoid stdint.h since inttypes.h
	predates the final C99 spec and the standard specifies that it shall
	include stdint.h anyway
	[fde060e84]

2007-09-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, alloca.c, configure.in:
	Since we ship with a pre-generated parser there is no need to ship a
	bogus alloca implementation.
	[2c59eea84]

	* configure:
	regen
	[6cbee775b]

	* configure.in:
	remove initial setting of CHECKSIA, we require that it be unset if
	not used
	[580348788]

	* Makefile.in:
	add list.c to SRCS
	[dda1fb26a]

	* configure:
	regen
	[638d039ae]

	* configure.in:
	only do SIA checks on Digital Unix
	[2c6287b71]

2007-09-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.man.in:
	regen
	[a06ae77c5]

	* ChangeLog, TODO:
	sync
	[6e05465b9]

	* auth/kerb5.c:
	Remove call to krb5_cc_register() as it is not needed for modern
	kerb5.
	[c572e31ff]

	* configure:
	regen
	[32e97c5dc]

	* aclocal.m4, configure.in:
	New method for setting the default authentication type and avoiding
	conflicts in auth types.
	[72255c0ad]

	* match.c, parse.c, testsudoers.c:
	Each entry in a cmndlist now has an associated runaslist so no need
	to keep track of the most recent non-NULL one.
	[21f0ea4d6]

2007-09-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	back out partial ldaps support mistakenly committed
	[19ff128f3]

	* ldap.c:
	Add support for unix groups and netgroups in sudoRunas
	[84a22a2d5]

2007-09-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_edit.c:
	Fix sudoedit of a non-existent file. From Tilo Stritzky.
	[32403a2d8]

2007-09-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[2bff032c9]

	* INSTALL:
	update --passprompt escape info
	[290eff4f5]

	* configure.in:
	remove now-bogus comment and update copyright date
	[5ac0dc57b]

	* configure.in:
	Fix up use of with_passwd
	[237922518]

	* acsite.m4, config.guess, config.sub, configure.in, ltmain.sh:
	Update to autoconf-2.61 andf libtool-1.5.24
	[16871871d]

	* Makefile.in:
	"cmp -s" not just cmp Add @datarootdir@ to quiet autoconf-2.61
	[0459e07d4]

2007-09-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* gram.c:
	regen
	[d8e1c8090]

	* gram.y:
	move tags and runaslist propagation to be earlier
	[b11b56deb]

	* visudo.c:
	If -f flag given use the permissions of the original file as a
	template
	[dee39f572]

	* gram.y:
	prevent a double free() when re-initing the parser
	[cbe6be8f8]

2007-08-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[a7bfc5909]

	* aclocal.m4, alias.c, alloc.c, auth/API, auth/afs.c,
	auth/bsdauth.c, auth/kerb4.c, auth/kerb5.c, auth/pam.c,
	auth/securid.c, auth/securid5.c, auth/sia.c, auth/sudo_auth.h,
	config.h.in, configure.in, env.c, ldap.c, list.c, list.h, memrchr.c,
	parse.c, parse.h, pwutil.c, redblack.c, redblack.h, snprintf.c,
	sudo.c, sudo.h, testsudoers.c, visudo.c, zero_bytes.c:
	Remove support for compilers that don't support void *
	[19fa25948]

	* gram.c:
	regen
	[6b3157d80]

	* Makefile.in, alias.c, defaults.c, gram.y, list.c, list.h, match.c,
	parse.c, parse.h, testsudoers.c, visudo.c:
	Move list manipulation macros to list.h and create C versions of the
	more complex ones in list.c. The names have been down-cased so they
	appear more like normal functions.
	[d72778832]

	* Makefile.in:
	Fix cmp command when regenerating parser. Make gram.o the first
	dependency for all programs so gram.h will be generated before
	anything that needs it.
	[07ebde409]

	* gram.y, parse.h:
	Convert NEW_DEFAULT anf NEW_MEMBER into static functions.
	[d56d0b115]

	* match.c, parse.c, testsudoers.c:
	Use LH_FOREACH_REV when checking permission and short-circuit on the
	first non-UNSPEC hit we get for the command. This means that instead
	of cycling through the all the parsed sudoers entries we start at
	the end and work backwards and quit after the first positive or
	negative match.
	[10e5d4e70]

	* gram.c:
	regen
	[270ba11db]

	* defaults.c, gram.y, parse.c, parse.h, testsudoers.c, visudo.c:
	Change list head macros to take a pointer, not a struct.
	[d1dbe2ece]

	* gram.c:
	regen
	[4df703781]

	* gram.y:
	Propagate the runasspec from one command to the next in a cmndspec.
	[470a710c3]

2007-08-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c:
	Replace has_meta() with a macro that calls strpbrk().
	[1d69c0d63]

	* :
	regen
	[bb51d5210]

	* alias.c, defaults.c, gram.y, match.c, parse.c, parse.h,
	testsudoers.c, visudo.c:
	Use a list head struct when storing the semi-circular lists and
	convert to tail queues in the process. This will allow us to reverse
	foreach loops more easily and it makes it clearer which functions
	expect a list as opposed to a single member.

	Add macros for manipulating lists. Some of these should become
	functions.

	When freeing up a list, just pop off the last item in the queue
	instead of going from head to tail. This is simpler since we don't
	have to stash a pointer to the next member, we always just use the
	last one in the queue until the queue is empty.

	Rename match functions that take a list to have list in the name.
	Break cmnd_matches() into cmnd_matches() and cmndlist_matches.
	[8cdea0b94]

	* parse.c:
	Fix pasto, append "!" not negated (which is an int) for sudo -l
	output.
	[a05abf5c8]

	* Makefile.in:
	Remove the dependency of gram .h on gram.y, the .c dependency is
	enough. Only move y.tab.h to gram.h if it is different; avoids
	needless rebuilding.
	[0e30ec199]

2007-08-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Defaults lines may be associated with lists of users, hosts,
	commands and runas users, not just single entries.
	[aaacf16ee]

2007-08-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Revert the "cmp" portion of the last diff, it doesn't make sense.
	[cd6d9d7e1]

	* Makefile.in:
	Remove *.lo for clean: When generating the parser, only move the
	generated files into place if they differ from the existing ones.
	[e90c32674]

2007-08-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c, toke.l:
	Replace IPV6 regexp with a much simpler (readable) one and add an
	extra check when it matches to make sure we have a valid address.
	[51904f668]

	* match.c:
	Fix thinko introduced when merging IPV6 support.
	[3fd33970c]

2007-08-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* HISTORY, LICENSE:
	regen
	[f9dd821b5]

	* license.pod:
	add 2007
	[eb8b3d6b5]

	* UPGRADE:
	mention #uid vs. comment pitfall
	[836d04019]

	* acsite.m4:
	Merge in a patch from the libtool cvs that fixes a problem with the
	latest autoconf. From Stepan Kasal.
	[5f11011f0]

	* parse.h:
	Back out he XOR swap trick, it is slower than a temp variable on
	modern CPUs.
	[b63a4c9db]

	* gram.c:
	regen
	[eb4b7b2e6]

	* gram.y, parse.h:
	Convert the tail queue to a semi-circle queue and use the XOR swap
	trick to swap the prev pointers during append.
	[6f732db02]

2007-08-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.h:
	remove useless statement
	[444e77946]

	* toke.c, toke.l:
	Refactor #include parsing into a separate function and return
	unparsed chars (such as newline or comment) back to the lexer.
	[7cea15ef4]

2007-08-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* WHATSNEW:
	mention better uid support
	[9cb10fc94]

	* sudoers.pod:
	Users may now consist of a uid.
	[94922dbae]

	* gram.c, gram.h, toke.c:
	regen
	[d65c8e827]

	* parse.c:
	Use lbuf_append_quoted() for sudo -l output to quote characters that
	would require quoting in sudoers.
	[340831499]

	* lbuf.c, lbuf.h:
	Add lbuf_append_quoted() which takes a set of characters which
	should be quoted with a backslash when displayed.
	[14d1b79a4]

	* toke.l:
	Require that the first character after a comment not be a digit or a
	dash. This allows us to remove the GOTRUNAS state and treat uid/gids
	similar to other words. It also means that we can now specify uids
	in User_Lists and a User_Spec may now contain a uid.
	[0940a74e6]

	* gram.y, toke.l:
	Replace RUNAS token with '(' and ')' tokens to make the runas
	portion of the grammar more natural.
	[add2fe024]

	* BUGS:
	The BUGS file is history
	[057d10a1e]

	* Makefile.in, README:
	The BUGS file is history
	[58fd9b25b]

2007-08-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c, toke.l:
	Allow comments after a RunasAlias as long as the character after the
	pound sign isn't a digit or a dash.
	[53961224a]

	* WHATSNEW:
	Glob support was back-ported to 1.6.9
	[fd0ea842f]

2007-08-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	remove sudo_usage.h in distclean
	[68aac1b39]

	* parse.c:
	If a Defaults value contains a blank, double-quote the string.
	[c6cf39cdf]

	* toke.c, toke.l:
	Properly deal with Defaults double-quoted strings that span multiple
	lines using the line continuation char. Previously, the entire
	thing, including the continuation char, newline, and spaces was
	stored as-is.
	[9cf8213c2]

	* sudo.c:
	Be consistent when using single quotes and backticks.
	[fa6536920]

2007-08-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, configure, configure.in, lbuf.c, lbuf.h, parse.c,
	sudo.c, sudo_usage.h.in:
	Add new linebuf code to do appends of dynamically allocated strings
	and word-wrapped output. Currently used for sudo's usage() and sudo
	-l output. Sudo usage strings are now in sudo_usage.h which is
	generated at configure time.
	[2315b317e]

2007-08-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c, sudo.c, sudo.h:
	Fix line wrapping in usage() and use the actual tty width instead of
	assuming 80.
	[d28030c9f]

2007-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* history.pod:
	some more info
	[ccd780f99]

	* history.pod:
	Mentioned Chris Jepeway's parser and also the new one that is in
	sudo 1.7.
	[0b43e9362]

2007-08-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod, visudo.pod:
	For the options list, add flag args where appropriate and increase
	the indent level so there is room for them.
	[28f814d12]

2007-08-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	Fix some spacing in "sudo -l" and add a comment about some bogosity
	in the line wrapping.
	[994036cf0]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in, visudo.cat,
	visudo.man.in:
	regen
	[5ab2e0767]

	* INSTALL, Makefile.in, WHATSNEW, config.h.in, configure.in,
	def_data.c, def_data.h, def_data.in, gram.c, gram.h, gram.y,
	parse.c, parse.h, pathnames.h.in, sudo.c, sudo.h, sudoers.pod,
	testsudoers.c, toke.c, toke.l:
	Remove monitor support until there is a versino of systrace that
	uses a lookaside buffer (or we have a better mechanism to use).
	[317e600f4]

	* config.h.in, configure, configure.in, sudo.c:
	use getaddrinfo() instead of gethostbyname() if it is available
	[72b36ddf5]

2007-08-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c, sudo.c:
	Deal with OSes where sizeof(gid_t) < sizeof(int).
	[c93969078]

	* interfaces.c:
	repair non-getifaddrs() code after ipv6 integration
	[dd3e80180]

	* sudo.c:
	If we can open sudoers but fail to read the first byte, close the
	file stream before trying again.
	[580be13e7]

2007-08-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c:
	regen
	[b1845dcf1]

	* gram.y, interfaces.c, interfaces.h, match.c, sudoers.pod, toke.l:
	Add IPv6 support; adapted from patches by YOSHIFUJI Hideaki
	[d65602ca6]

	* sudo.pod, sudoers.pod, visudo.pod:
	Add some missing markup Update copyright
	[0a96fe407]

2007-08-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	fix sudo_noexec extension which got broken in the libtool update
	[f90beb2b2]

2007-08-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	explicitly specify -Tascii to nroff
	[cb68709a7]

2007-08-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	remove an ANSI-ism that crept in
	[bcdddfc05]

2007-08-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod:
	Adjust list indents Prevent -- from being turned into an em dash Use
	a list for the environment instead of a literal paragraph
	[1ae60a557]

	* visudo.pod:
	Use a list for the environment instead of an indented literal
	paragraph.
	[91f2696d1]

	* sudoers.pod:
	Adjust list indentation
	[6c2448ed2]

	* license.pod:
	add =head3
	[977ff0d6a]

2007-08-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod:
	mention that when specifying a uid for the -u option the shell may
	require that the # be escaped
	[1994a37c6]

2007-08-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c:
	Fix off by one in group matching.
	[4fea71625]

2007-07-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Fix typo: PYTHONINSPEC should be PYTHONINSPECT. From David Krause.
	[17c8249fe]

2007-07-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Add missing define of HAVE_GSS_KRB5_CCACHE_NAME for the
	-lgssapi_krb5 case.
	[4da496423]

	* aclocal.m4, configure, configure.in:
	Fix link tests such that new gcc doesn't optimize away the test.
	[e81f9efd1]

2007-07-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod, sudoers.pod, visudo.pod:
	add missing over/back
	[a08b9a107]

	* sudo.pod, sudoers.pod, visudo.pod:
	Change FILES section to use =item
	[c3a1e75b0]

	* env.c:
	Add back allocation of the env struct in rebuild_env but save a copy
	of the old pointer and free it before returning.
	[4b257e50c]

	* env.c:
	Don't init the private environment in rebuild_env() since it may
	have already been done implicitly sudo_setenv/sudo_unsetenv.

	Multiply length by sizeof(char *) in memcpy/memmove when copying the
	environment so we copy the full thing.

	Add missing set of parens so we deref the right pointer in
	sudo_unsetenv when searching for a matching variable.
	[2304e1a4a]

2007-07-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod, sudoers.pod, visudo.pod:
	Use file markup for paths in the FILES section
	[2e147dc73]

	* sudo.pod, sudoers.pod, visudo.pod:
	Don't capitalize sudo/visudo
	[e5cc89e01]

	* sudoers.pod:
	Sort sudoers options; based on a diff from Igor Sobrado.
	[b925712f9]

2007-07-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod, sudoers.pod, visudo.pod:
	Use 8 and 5 instead of @mansectsu@ and @mansectform@ since the
	latter confuses pod2man. The Makefile rules for the .man.in file
	will add @mansectsu@ and @mansectform@ back in after pod2man is done
	anyway.
	[d947abaa3]

2007-07-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE, Makefile.in, license.pod:
	Move license info to pod format
	[e0c31eef1]

	* configure, configure.in, sudoers.pod:
	Substitute value of path_info into sudoers man page.
	[5c6880f1e]

	* WHATSNEW:
	remove features that were back-ported to 1.6.9
	[cd9aad660]

	* sudo.c, sudo.pod, visudo.c, visudo.pod:
	Sort SYNOPSIS and sync usage. From Igor Sobrado.
	[5cd49e1e0]

	* env.c:
	Only need sudo_setenv/sudo_unsetenv if we are going to use
	ldap_sasl_interactive_bind_s() but don't have
	gss_krb5_ccache_name().
	[c94a3d624]

	* ChangeLog:
	rebuild without branch info
	[fd711b629]

	* Makefile.in:
	Add ChangeLog target
	[8aa5ba749]

	* auth/pam.c:
	Run cleanup code if the user hits ^C at the password prompt.
	[42ac4fb2c]

	* auth/pam.c:
	Some versions of pam_lastlog have a bug that will cause a crash if
	PAM_TTY is not set so if there is no tty, set PAM_TTY to the empty
	string.
	[b166928ba]

2007-07-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	ChageLog not Changelog
	[24ada438f]

	* ChangeLog:
	sync
	[5f0788597]

	* Makefile.in:
	CHANGE -> Changelog
	[1bbac967e]

	* TODO:
	sync
	[641f34e30]

2007-07-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, ldap.c:
	Add configure hooks for gss_krb5_ccache_name() and the gssapi
	headers.
	[1f30bd424]

2007-07-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c, sudo.c:
	rebuild_env() and insert_env_vars() no longer return environment
	pointer, they set environ directly.

	No longer need to pass around an envp pointer since we just operate
	on environ now.

	Add dosync argument to insert_env() that indicates whether it should
	reset environ when realloc()ing env.envp.

	Use an initial size of 128 for the environment.
	[8f0f4743f]

	* env.c:
	Split sudo_setenv() into an external version and a version only for
	use by rebuild_env().
	[8fa2eb187]

2007-07-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Add support for using gss_krb5_ccache_name() instead of setting
	KRB5CCNAME. Also use sudo_unsetenv() in the
	non-gss_krb5_ccache_name() case if there was no KRB5CCNAME in the
	original environment. TODO: configure setup for
	gss_krb5_ccache_name()
	[3a96b6de4]

	* README.LDAP:
	add krb5_ccname
	[320ab55d5]

	* README.LDAP, ldap.c:
	Add support for sasl_secprops in ldap.conf
	[f5ad187ed]

	* env.c, sudo.h:
	Add sudo_unsetenv() and refactor private env syncing code into
	sync_env().
	[436e3b631]

	* README.LDAP, ldap.c:
	The ldap.conf variable is sasl_auth_id not sasl_authid.
	[328a6b493]

2007-07-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c, sudo.c, sudo.h:
	Add support for krb5_ccname in ldap.conf. If specified, it will
	override the default value of KRB5CCNAME in the environment for the
	duration of the call to ldap_sasl_interactive_bind_s().
	[af18ed5e9]

	* env.c, sudo.h:
	Remove format_env() Add sudo_setenv() to replace most format_env() +
	insert_env() combinations. insert_env() no longer takes a struct
	environment *
	[d1f6bdbcf]

	* ldap.c:
	Fix use_sasl vs. rootuse_sasl logic.
	[8cb8c55f9]

	* README.LDAP, config.h.in, configure, configure.in, ldap.c:
	Add support for SASL auth when connecting to an LDAP server. Adapted
	from a diff by Tom McLaughlin.
	[5fdb0649b]

2007-07-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Only enable AIX or BSD auth if no other exclusive auth method has
	been chosen. Allows people to e.g., use PAM on AIX without adding
	--without-aixauth. A better solution is needed to deal with default
	authentication since if a non-exclusive method is chosen we will
	still get an error.
	[38b2dd0a5]

2007-07-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* HISTORY, Makefile.in, history.pod:
	Generate HISTORY from history.pod (which is also used for web pages)
	[39228bf9e]

2007-07-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.man.in, sudoers.man.in:
	regen
	[c0ffb8ce3]

	* sudo.pod:
	Better explanation of environment handling in the sudo man page.
	[e8dc37d79]

	* env.c, sudo.c:
	Defer setting user-specified env vars until after authentication.
	[6462c1edd]

	* env.c:
	honor def_default_path for PATH set on the command line
	[25b624ce5]

	* env.c, sudo.c, sudo.pod, sudoers.pod:
	Allow user to set environment variables on the command line as long
	as they are allowed by env_keep and env_check. Ie: apply the same
	restrictions as normal environment variables. TODO: deal with
	secure_path
	[87a95bb3a]

2007-07-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c, sudo_edit.c:
	Call rebuild_env() in call cases. Pass original envp to sudo_edit().
	Don't allow -E or env var setting in sudoedit mode. More accurate
	usage() when called as sudoedit.
	[5919eb1fa]

	* ldap.c:
	warn -> warning
	[16166fc5e]

	* sudo.pod:
	add -c option to sudoedit synopsis
	[c94ee11b6]

	* TODO:
	udpate to reality
	[b7927b2b3]

	* parse.c:
	Use ALLOW/DENY instead of TRUE/FALSE when dealing with the return
	value from {user,host,runas,cmnd}_matches(). Rename *matches
	variables -> *match. Purely cosmetic.
	[888540a7b]

	* parse.c:
	Move setting of FLAG_NO_CHECK into the if(pwflag) block. No change
	in behavior.
	[1e9030d95]

	* sudoers:
	add SETENV tag
	[b70cf25a3]

2007-07-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	Make pwcheck local to the pwflag block. Use pwcheck even if user
	didn't match since Defaults options may still apply.
	[a26c783be]

	* check.c, sudo.c:
	Do not update timestamp if user not validated by sudoers.
	[6f1a9c0bc]

	* set_perms.c:
	for PERM_RUNAS, set the egid to the runas user's gid and restore to
	the user's original in PERM_ROOT
	[988f44a60]

	* logging.c, mon_systrace.c, set_perms.c, sudo.h:
	PERM_FULL_ROOT is now no different than PERM_ROOT so remove
	PERM_FULL_ROOT
	[f3ef73825]

	* check.c:
	don't check timestamp mtime if we are just going to remove it
	[af53e335a]

	* sudoers.pod:
	Move sudoers defaults parameters into their own section.
	[95df3fa67]

	* testsudoers.c:
	Reduce a level of indent by a few placed continue statements.
	[45b311cfa]

	* parse.c:
	Make matching but negated commands/hosts/runas entries override a
	previous match as expected. Also reduce some levels of indent by a
	few placed continue statements.
	[7f0bb4b1a]

2007-07-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	Print default runas in "sudo -l" if sudoers don't specify one.
	[bdd5b43f7]

	* match.c:
	Less hacky way of testing whether the domain was set.
	[6a8fb7115]

2007-07-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	Mention pam-devel and openldap-devel for Linux
	[c21164d37]

2007-07-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README.LDAP:
	or vs. are
	[e5bb0bb97]

2007-07-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	fix typo in Solaris project support
	[3d321157a]

	* HISTORY:
	update
	[3c6c4677b]

	* sudo.c:
	Make -- on the command line match the manual page. The implied shell
	case has been simplified as a result.
	[49b66be51]

2007-06-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers2ldif:
	add simplistic support for sudoRunas; note that if a sudoers entry
	contains multiple Runas users, all will apply to the sudoRole
	[ad86ccfb1]

	* sudoers2ldif:
	honor SETENV and NOSETENV tags
	[888a6d2e4]

2007-06-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mon_systrace.c:
	Redo setting of user_args. We now build up a private copy of argv
	first and then replace the NULs with spaces.
	[9f49d28ea]

	* mon_systrace.c:
	getcwd() returns NULL on failure, not 0 on success
	[a83e28b25]

	* mon_systrace.c:
	allow chunksiz to reach 1 before erroring out
	[2d76de6cd]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in, visudo.cat,
	visudo.man.in:
	regen
	[b3b905ba5]

2007-06-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* def_data.c, def_data.h, def_data.in, env.c, gram.c, gram.h,
	gram.y, logging.c, parse.c, parse.h, sudo.c, sudo.h, sudo.pod,
	sudoers.pod, toke.c, toke.l:
	Add support for setting environment variables on the command line.
	This is only allowed if the setenv sudoers options is enabled or if
	the command is prefixed with the SETENV tag.
	[879c46e4d]

	* README.LDAP:
	replace Aaron's email address with the sudo-workers list
	[459c4bcd3]

	* configure:
	regen
	[0d4fe735a]

2007-06-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* schema.OpenLDAP, schema.iPlanet:
	Break schema out into separate files.
	[ddeafc2bc]

	* Makefile.in, README.LDAP:
	Break schema out into separate files.
	[d8d7657c5]

2007-06-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/aix_auth.c:
	free message if set by authenticate()
	[fd7a9af87]

	* match.c:
	deal with NULL gr_mem
	[ae2f7c77e]

2007-06-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	regen
	[f9a6950fb]

	* configure.in:
	add template for HAVE_PROJECT_H
	[5c22c694c]

	* closefrom.c:
	include fcntl.h
	[2a8cda261]

2007-06-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	mention --with-project
	[ce963ef43]

	* config.h.in, configure.in, sudo.c:
	Add Solaris 10 "project" support. From Michael Brantley.
	[60b7ac61b]

	* sudoers.pod:
	fix typo
	[459b9cb1d]

	* configure:
	regen
	[e0ae6e100]

	* configure.in:
	Fix preservation of LDFLAGS in the LDAP case.
	[d1702ca4c]

	* memrchr.c:
	Remove dependecy on NULL
	[5c59e9046]

	* configure:
	regen
	[7f21fc74c]

	* aclocal.m4, configure.in:
	Can't use the regular autoconf fnmatch() check since we need
	FNM_CASEFOLD so go back to our custom one.
	[c154f0119]

	* env.c:
	Fix preserving of variables in env_keep.
	[363a2f259]

	* env.c:
	add XAUTHORIZATION
	[f670ef29b]

	* UPGRADE:
	expand upon env resetting and mention that it began in 1.6.9 not
	1.7.
	[7d8b899e4]

	* sudoers.pod:
	Update descriptions of env_keep and env_check to match current
	reality.
	[a922ff68a]

2007-06-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Add LINGUAS to initial_checkenv_table. Add COLORS, HOSTNAME,
	LS_COLORS, MAIL, PS1, PS2, XAUTHORITY to intial_keepenv_table.
	[5ac9f1de5]

	* env.c, logging.c:
	Treat USERNAME environemnt variable like LOGNAME/USER
	[c22566897]

	* env.c:
	Don't need to populate keepenv table with the contents of the
	checkenv table.
	[549c88d51]

	* sudo.c:
	Don't force sudo into the C locale.
	[4dcaba90a]

	* env.c:
	Make env_check apply when env_reset it true. Environment variables
	are passed through unless they contain '/' or '%'. There is no need
	to have a variable in both env_check and env_keep.
	[e096ae6f1]

2007-06-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	Remove an duplicate lock_file() call and add a comment.
	[db084676e]

	* UPGRADE:
	Add sudo 1.6.9 upgrade note.
	[a162c1634]

2007-06-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* interfaces.c:
	Solaris will return EINVAL if the buffer used in SIOCGIFCONF is too
	small. From Klaus Wagner.
	[f58f63770]

	* logging.c, sudo.h:
	Redo the long syslog line splitting based on a patch from Eygene
	Ryabinkin. Include memrchr() for systems without it.
	[49cb30aa5]

	* memrchr.c:
	Redo the long syslog line splitting based on a patch from Eygene
	Ryabinkin. Include memrchr() for systems without it.
	[889f928e5]

	* Makefile.in, config.h.in, configure, configure.in:
	Redo the long syslog line splitting based on a patch from Eygene
	Ryabinkin. Include memrchr() for systems without it.
	[c22096ac3]

	* configure.in:
	Since we need to be able to convert timespec to timeval for utimes()
	the last 3 digits in the tv_nsec are not significant. This makes the
	sudoedit file date comparison work again.
	[1f38301a5]

2007-06-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4, configure, configure.in:
	Add SUDO_ADD_AUTH macro to deal with adding things to AUTH_OBJS.
	This deals with exclusive authentication methods in a simple way.
	[4a7c81886]

2007-06-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE:
	mkstemp.c is BSD code too.
	[927c229b9]

	* sudo.pod, sudoers.pod, visudo.pod:
	No commercial support for now.
	[3f2230617]

2007-06-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	cleanenv() is no more.
	[7fb914ea0]

2007-06-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ChangeLog:
	Display branch info in Changelog
	[214f7d07f]

	* utimes.c:
	Include config.h early so we have it for TIME_WITH_SYS_TIME
	[ce92c1cf6]

	* ChangeLog:
	Fix Changelog generation and update.
	[7b73bcbb8]

2007-06-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* closefrom.c:
	Use /proc/self/fd instead of /proc/$$/fd

	Move old-style fd closing into closefrom_fallback() and call that if
	/proc/self/fd doesn't exist or the F_CLOSEM fcntl() fails
	[8ae409b8f]

	* auth/kerb5.c, config.h.in, configure.in:
	o use krb5_verify_user() if available instead of doing it by hand o
	use krb5_init_secure_context() if we have it o pass an encryption
	type of 0 to krb5_kt_read_service_key() instead of
	ENCTYPE_DES_CBC_MD5 to let kerberos choose.
	[fc38e7c21]

	* env.c:
	Check TERM and COLORTERM for '%' and '/' characters. From Debian.
	[f221ba230]

	* configure.in:
	Fix closefrom() substitution in the Makefile
	[4d04baaee]

	* TROUBLESHOOTING:
	Mention alternate sudo pronunciation.
	[7323cbb50]

2007-06-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Remove KRB5_KTNAME from environment. Allow COLORTERM.
	[30e57038d]

	* auth/kerb5.c:
	If we cannot get a valid service key using the default keytab it is
	a fatal error. Fixes a bug where sudo could be tricked into allowing
	access when it should not by a fake KDC. From Thor Lancelot Simon.
	[8d9732115]

2007-05-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4, configure, configure.in:
	Update long long checks to use AC_CHECK_TYPES and to cache values.
	[bd221e2eb]

	* aclocal.m4, configure.in:
	Use AC_FUNC_FNMATCH instead of a homebrew fnmatch checker. We can't
	use AC_REPLACE_FNMATCH since that assumes replacing with GNU
	fnmatch.
	[1c824fb36]

2007-05-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Add closefrom() to LIB_OBJS not SUDO_OBJS if it is missing since we
	need it for visudo now too.
	[1488331d7]

2007-04-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Attempt to clarify the bit talking about network numbers w/o
	netmasks.
	[0ea35c0d3]

	* sudo.pod:
	Clarify timestamp dir ownership sentence.
	[af80a3e57]

2007-04-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	Linux PAM now defines __LINUX_PAM__, not __LIBPAM_VERSION. From
	Dmitry V. Levin.
	[f2433e036]

2007-04-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	-i is also one of the mutually exclusive options to list it in the
	warning message. Noted by Chris Pepper.
	[3f2b6b146]

2007-04-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.pod:
	The sudoers variable is env_editor, not enveditor. From
	Jean-Francois Saucier.
	[b679cb930]

2007-03-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* redblack.c:
	I tracked down the original author so credit him and include his
	license info.
	[666c85dba]

2007-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in, sudo.pod, sudoers.cat, sudoers.man.in,
	sudoers.pod:
	Fix typos; from Jason McIntyre.
	[7a96eb86e]

	* logging.c:
	Restore signal mask before calling reapchild(). Fixes a possible
	race condition that could prevent sudo from properly waiting for the
	child.
	[832f4c376]

2007-01-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pwutil.c:
	Don't declare pw_free() if we are not going to use it.
	[51d61f148]

	* env.c:
	Add NOEXEC support for AIX 5.3 which supports LDR_PRELOAD and
	LDR_PRELOAD64. The 64-bit version is not currently supported. Remove
	zero_env() prototype as it no longer exists.
	[bf500a00d]

2006-12-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	Add "Auto-Submitted: auto-generated" line to sudo mail for rfc 3834.
	[9d6695ed4]

2006-09-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	If the user enters ^C at the password prompt, abort instead of
	trying to authenticate with an empty password (which causes an
	annoying delay).
	[8d97a8d20]

2006-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* closefrom.c, config.h.in, configure, configure.in:
	Add fcntl F_CLOSEM support to closefrom(); adapted from a diff by
	Darren Tucker.
	[cad6de7d7]

	* pwutil.c:
	pw_free() is only used by sudo_freepwcache() so ifdef it out too.
	[5994797e4]

2006-08-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.guess, config.sub:
	Update to latest versions from cvs.savannah.gnu.org
	[6e9df267c]

2006-07-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pwutil.c, sudo_edit.c:
	Move password/group cache cleaning out of sudo_end{pw,grp}ent() so
	we can close the passwd/group files early.
	[884b70acc]

	* config.h.in, configure, configure.in, set_perms.c:
	Add seteuid() flavor of set_perms() for systems without setreuid()
	or setresuid() that have a working seteuid(). Tested on Darwin.
	[ea8c5d5d2]

2006-07-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mon_systrace.c:
	systrace_read() returns ssize_t
	[7276bf7b9]

	* configure, configure.in:
	Fix typo, -lldap vs. -ldap; from Tim Knox.
	[be3a220f7]

2006-07-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* HISTORY:
	Fix typo; Matt Ackeret
	[bbe7ab84b]

2006-07-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Print sudoers path in -V mode for root.
	[c28a289f1]

2006-06-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Do a sub tree search instead of a base search (one level in the tree
	only) for sudo right objects. This allows system administrators to
	categorize the rights in a tree to make them easier to manage.
	[296680928]

2005-12-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod:
	fix typo
	[b6e3fb008]

2005-12-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Convert GET_OPT and GET_OPTI to use just 2 args. Add timelimit and
	bind_timelimit support; adapted from gentoo.
	[7c588a014]

2005-11-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Support comments that start in the middle of a line
	[920c81168]

	* configure, configure.in:
	Define LDAP_DEPRECATED until we start using ldap_get_values_len()
	[bce8fbdd6]

2005-11-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* closefrom.c:
	Silence gcc -Wsign-compare; djm@openbsd.org
	[ab076942e]

	* error.c, sudo.c, sudo.h, testsudoers.c, visudo.c:
	cleanup() now takes an int as an arg so it can be used as a signal
	handler too.
	[2d282cd22]

	* sudo.c:
	Make a copy of the shell field in the passwd struct for NewArgv to
	avoid a use after free situation after sudo_endpwent() is called.
	[c7140895a]

2005-11-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in:
	Add mkstemp() for those poor souls without it.
	[8efcb4051]

	* mkstemp.c:
	Add mkstemp() for those poor souls without it.
	[6ac7edb6e]

	* Makefile.in:
	Add mkstemp() for those poor souls without it.
	[7a8ed8e07]

2005-11-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Add PERL5DB to list of environment variables to remove.
	[be9d490e1]

2005-11-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mon_systrace.c, mon_systrace.h:
	Instead of calling the check function twice with a state cookie use
	separate check/log functions.

	Check more ioctl() calls for failure.

	systrace_{read,write} now return the number of bytes read/written or
	-1 on error.
	[3553eee07]

	* env.c:
	Add more environment variables to remove; from gentoo linux Add some
	comments about what bad env variables go to what (more to do)
	[b9f34a5a3]

2005-11-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c, sudo_edit.c:
	Move sudo_end{gr,pw}ent() until just before the exec since they free
	up our cached copy of the passwd structs, including sudo_user and
	sudo_runas. Fixes a use-after-free bug.
	[b2a32d13c]

	* visudo.c:
	Close all fd's before executing editor.
	[0b3b32ab9]

	* sudo.c:
	Enable malloc debugging on OpenBSD when SUDO_DEVEL is set.
	[69c627658]

	* check.c:
	Fix fd leak when lecture file option is enabled. From Jerry Brown
	[50004e00b]

2005-11-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Add PERLLIB, PERL5LIB and PERL5OPT to the default list of
	environment variables to remove. From Charles Morris
	[3c6d0cc87]

2005-11-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	add JAVA_TOOL_OPTIONS to initial_badenv_table for java 5
	[ce8f2b10e]

2005-10-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	add PS4 and SHELLOPTS to initial_badenv_table for bash
	[096a289d9]

2005-08-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Fix typo; Toby Peterson
	[2c3be532a]

2005-08-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tsgetgrpw.c:
	Make return buffers static so they don't get clobbered
	[f75830227]

2005-07-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/securid5.c:
	Fix securid5 authentication, was not checking for ACM_OK. Also add
	default cases for the two switch()es. Problem noted by ccon at
	worldbank
	[26523a7ce]

2005-06-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Remove ncat() in favor of just counting bytes and pre-allocating
	what is needed.
	[4e86b1d74]

2005-06-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Fix up some comments Add missing fclose() for the rootbinddn case
	[73730b872]

	* ldap.c:
	align struct ldap_config
	[380d3c8c7]

	* ldap.c:
	use LINE_MAX for max conf file line size
	[76f3c652d]

	* pathnames.h.in:
	add _PATH_LDAP_SECRET
	[e0ac56ae6]

	* README.LDAP:
	Mention rootbinddn Give example ou=SUDOers container
	[69be47579]

2005-06-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, configure, configure.in, ldap.c:
	Support rootbinddn in ldap.conf
	[3b30d7514]

	* env.c, sudo.pod, sudoers.pod:
	Preserve DISPLAY environment variable by default.
	[8f90cfbd8]

	* acsite.m4, configure:
	set need_lib_prefix=no for all cases; this is safe for LD_PRELOAD
	[485fa9b66]

	* acsite.m4, configure:
	set need_version=no for all cases; this is safe for LD_PRELOAD
	[c09bfd638]

	* aclocal.m4:
	typo
	[c8f360fd5]

	* configure, configure.in:
	Add dragonfly
	[1ddff1113]

	* auth/pam.c:
	Fix call to pam_end() when pam_open_session() fails.
	[d281ff77e]

	* configure:
	regen
	[94ab74182]

	* acsite.m4:
	rebuild acsite.m4 from libtool 1.9f libtool.m4 ltoptions.m4
	ltsugar.m4 ltversion.m4
	[a2c030930]

	* config.guess, config.sub, ltmain.sh:
	merge in local changes: config.guess: o better openbsd support
	config.sub: o hiuxmpp support ltmain.sh o remove requirement that
	libs must begin with "lib" o don't print a bunch of crap about
	library installs o don't run ldconfig
	[f8b3770be]

	* config.guess, config.sub, ltmain.sh:
	libtool 1.9f
	[37d8f4ee9]

	* configure.in:
	Update with autoupdate and make minor changes for libtool 1.9f
	[95b9648ba]

2005-06-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	don't call sudo_ldap_display_cmnd if ldap not setup
	[98931e0f8]

	* sudo_edit.c, visudo.c:
	Move declatation of struct timespec to its own include files for
	systems without it since it needs time_t defined.
	[2566e6b7d]

	* gettime.c:
	Move declatation of struct timespec to its own include files for
	systems without it since it needs time_t defined.
	[46230280c]

	* fileops.c:
	Move declatation of struct timespec to its own include files for
	systems without it since it needs time_t defined.
	[6cbaca026]

	* emul/timespec.h:
	Move declatation of struct timespec to its own include files for
	systems without it since it needs time_t defined.
	[ad5c04c90]

	* check.c, compat.h:
	Move declatation of struct timespec to its own include files for
	systems without it since it needs time_t defined.
	[3bb5c181b]

	* ldap.c:
	Don't set safe_cmnd for the "sudo ALL" case.
	[9800e99ff]

2005-05-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	Call pam_open_session() and pam_close_session() to give pam_limits a
	chance to run. Idea from Karel Zak.
	[d3b45ae3f]

2005-04-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c, sudo.c:
	Add explicit cast from mode_t -> u_int in printf to silence warnings
	on Solaris
	[c7ea24f2c]

	* parse.c:
	include grp.h to silence a warning on Solaris
	[7ce5994d6]

2005-04-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	Fix printing of += and -= defaults.
	[f1a095308]

2005-04-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mon_systrace.c:
	Sanity check number of syscall args with argsize. Not really needed
	but a little paranoia never hurts.
	[56d72a3b8]

	* mon_systrace.c, mon_systrace.h:
	Don't do pointer arithmetic on void * Use int, not size_t/ssize_t
	for systrace lengths (since it uses int)
	[95c47e7f3]

2005-04-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mon_systrace.c:
	Add some memsets for paranoia Fix namespace collsion w/ error Check
	rval of decode_args() and update_env() Remove improper setting of
	validated variable
	[fe9b65308]

2005-04-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c, sudo.c, sudo.h:
	In -l mode, only check local sudoers file if def_ignore_sudoers is
	not set and call LDAP versions from display_privs() and
	display_cmnd() instead of directly from main(). Because of this we
	need to defer closing the ldap connection until after -l processing
	has ocurred and we must pass in the ldap pointer to display_privs()
	and display_cmnd().
	[f261a99f2]

	* ldap.c:
	Reorganize LDAP code to better match normal sudoers parsing. Instead
	of storing strings for later printing in -l mode we do another query
	since the authenticating user and the user being listed may not be
	the same (the new -U flag). Also add support for "sudo -l command".

	There is still a fair bit if duplicated code that can probably be
	refactored.
	[fe4f33ab9]

2005-04-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Replace pass variable with do_netgr for better readability.
	[b8cbf50a3]

	* ldap.c:
	use DPRINTF macro
	[3f84e1b18]

	* ldap.c:
	estrdup, not strdup
	[f1d67a9b3]

2005-04-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	Add macro to test if the tag changed to improve readability.
	[d0df82a93]

	* parse.c:
	Avoid printing defaults header if there are no defaults to print...
	[ce7708e09]

	* glob.c:
	Fix a warning on systems without strlcpy().
	[132a79945]

	* pwutil.c:
	Use macros where possible for sudo_grdup() like sudo_pwdup().
	[06a11acf1]

2005-04-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* utimes.c:
	It is possible for tv_usec to hold >= 1000000 usecs so add in
	tv_usec / 1000000.
	[f057686d2]

2005-03-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/kerb5.c:
	The component in krb5_principal_get_comp_string() should be 1, not 0
	for Heimdal. From Alex Plotnick.
	[d857334e6]

2005-03-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* alias.c, alloc.c, check.c, defaults.c, find_path.c, gram.c,
	gram.y, interfaces.c, ldap.c, logging.c, match.c, mon_systrace.c,
	pwutil.c, redblack.c, sudo.c, sudo.h, toke.c, toke.l, visudo.c:
	Add efree() for consistency with emalloc() et al. Allows us to rely
	on C89 behavior (free(NULL) is valid) even on K&R.
	[304dc46d7]

	* parse.c, sudo.c:
	Move initgroups() for -U option into display_privs() so group
	matching in sudoers works correctly.
	[9efe91fa1]

2005-03-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Removed duplicate call to ldap_unbind_s introduced along with
	sudo_ldap_close.
	[e3c99d9c8]

	* parse.c:
	Add missing space in Defaults printing
	[61413ca50]

2005-03-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pwutil.c:
	Sync sudo_pwdup with OpenBSD changes: use macros for size computaton
	and string copies.
	[f78ce5517]

2005-03-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pwutil.c:
	Zero old pw_passwd before replacing with version from shadow file.
	[ca7c43574]

	* configure, configure.in:
	Only attempt shadow password detection if PAM is not being used Add
	shadow_* variables to make shadow password detection more generic.
	[6666ca23d]

	* configure.in:
	Use OSDEFS for os-specific -D_FOO_BAR stuff rather than CPPFLAGS
	[0a795b83d]

2005-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	use a non-breaking space to avoid a double space after e.g.
	[244eae916]

	* sudo.pod:
	commna, not colon after e.g.
	[963ca5045]

2005-03-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_noexec.c:
	Add __ variants of the exec functions. GNU libc at least uses
	__execve() internally.
	[00bea5e74]

	* indent.pro:
	Match reality a bit more.
	[5a7ab7e63]

	* pwutil.c:
	Missed piece from rev. 1.6, fix sudo_getpwnam() too.
	[bb63e0168]

	* pwutil.c:
	Store shadow password after making a local copy of struct passwd in
	case normal and shadow routines use the same internal buffer in
	libc.
	[0ea568c7d]

2005-03-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* alloc.c, logging.c:
	Make varargs usage consistent with the rest of the code.
	[e7dcda792]

2005-03-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_noexec.c:
	Wrap more of the exec family since on Linux the others do not appear
	to go through the normal execve() path.
	[7362b7e98]

	* visudo.c:
	make print_unused static like proto says
	[d4b745759]

	* glob.c:
	silence a warning on K&R systems
	[b980f9588]

	* alias.c, error.c:
	make this build in K&R land
	[40b899b10]

	* parse.c:
	make this build in K&R land
	[f35ff3e32]

2005-03-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c:
	regen
	[5e060faa3]

2005-03-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	return(foo) not return foo optimize _atobool() slightly
	[ddb8c3d7d]

	* ldap.c:
	Use TRUE/FALSE
	[474768bd5]

	* ldap.c:
	Reformat to match the rest of sudo's code.
	[3154a75b8]

	* sudo.pod:
	I am the primary author
	[abc10fd9a]

2005-02-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, README, RUNSON:
	The RUNSON file is toast--it confused too many people and really
	isn't needed in a configure-oriented world.
	[b5e92527c]

	* INSTALL:
	alternate -> alternative
	[33d0e5128]

	* tgetpass.c:
	Use TCSADRAIN instead of TCSAFLUSH since some OSes have issues with
	TCSAFLUSH.
	[7facbeeed]

	* toke.l:
	Allow leading blanks before Defaults and Foo_Alias definitions
	[470a4b549]

	* Makefile.in:
	fix rules to build toke.o and gram.o in devel mode
	[444b6fbf8]

2005-02-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	env_keep overrides set_logname
	[9805bdd7f]

	* env.c:
	Fix disabling set_logname and make env_keep override set_logname.
	[2791a1807]

	* compat.h, config.h.in, configure, configure.in:
	No longer need memmove()
	[c2f6b93ad]

	* env.c, sudo.c:
	Just clean the environment once. This assumes that any further
	setenv/putenv will be able to handle the fact that we replaced
	environ with our own malloc'd copy but all the implementations I've
	checked do.
	[6bee8e377]

2005-02-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c, sudo.c:
	In -i mode, base the value of insert_env()'s dupcheck flag on
	DID_FOO flags. Move checks for $HOME resetting into rebuild_env()
	[87a8b5b48]

2005-02-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c, sudo.c:
	Move setting of user_path, user_shell, user_prompt and prev_user
	into init_vars() since user_shell at least is needed there.
	[74894ebf6]

2005-02-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	fix devel builds
	[e2a517d88]

	* sudo.c:
	Fix some printf format mismatches on error.
	[b7068a413]

	* check.c:
	Fix some printf format mismatches on error.
	[cc84c41fb]

	* configure, gram.c, toke.c:
	regen
	[889a0334e]

	* Makefile.in, aclocal.m4, alias.c, alloc.c, auth/afs.c,
	auth/aix_auth.c, auth/bsdauth.c, auth/dce.c, auth/fwtk.c,
	auth/kerb4.c, auth/kerb5.c, auth/pam.c, auth/passwd.c,
	auth/rfc1938.c, auth/secureware.c, auth/securid.c, auth/securid5.c,
	auth/sia.c, auth/sudo_auth.c, auth/sudo_auth.h, check.c,
	closefrom.c, compat.h, configure.in, defaults.c, defaults.h,
	emul/utime.h, env.c, error.c, fileops.c, find_path.c, getprogname.c,
	getspwuid.c, gettime.c, goodpath.c, gram.y, interfaces.c,
	interfaces.h, ldap.c, logging.c, logging.h, match.c, mon_systrace.c,
	parse.c, redblack.c, redblack.h, set_perms.c, sigaction.c,
	snprintf.c, strcasecmp.c, strerror.c, strlcat.c, strlcpy.c, sudo.c,
	sudo.h, sudo.pod, sudo_edit.c, sudo_noexec.c, sudoers.pod,
	testsudoers.c, tgetpass.c, toke.l, utimes.c, version.h, visudo.c,
	visudo.pod, zero_bytes.c:
	Update copyright years.
	[778d58706]

	* Makefile.binary.in:
	Update copyright years.
	[fd0c93bbe]

	* LICENSE:
	Update copyright years.
	[f02f4b428]

	* BUGS, INSTALL, INSTALL.binary, Makefile.in, README, configure.in:
	version 1.7
	[cd6a11b81]

	* WHATSNEW:
	What's new in sudo 1.7, based on the 1.7 CHANGES entries.
	[93cc79642]

2005-02-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h, logging.h, sudo.h:
	Add __printflike and use it with gcc to warn about printf-like
	format mismatches
	[b3b65fb7f]

2005-02-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, ChangeLog:
	Replaced CHANGES file with ChangeLog generated from cvs logs
	[8d74dc1de]

	* set_perms.c:
	Use warning/error instead of perror/fatal.
	[31968c368]

	* config.guess:
	Update OpenBSD section
	[2b48e0dc4]

	* UPGRADE:
	Add upgrading noted for 1.7
	[a50e709a3]

	* env.c, sudo.c, sudoers.pod:
	Instead of zeroing out the environment, just prune out entries based
	on the env_delete and env_check lists. Base building up the new
	environment on the current environment and the variables we removed
	initially.
	[ab2e7bc26]

	* config.h.in, configure, configure.in, sudo.c:
	Set locale to "C" if locales are supported, just to be safe.
	[0b315c10d]

	* toke.c, toke.l:
	Cast argument to ctype functions to unsigned char.
	[ab2439a44]

2005-02-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	correct value for DID_USER
	[f015a51b9]

	* error.c, fnmatch.c, getcwd.c, glob.c, snprintf.c:
	#include <compat.h> not "compat.h"
	[b950f2807]

	* defaults.c:
	Reset the environment by default.
	[280540521]

	* sudo.c:
	Alloc an extra slot in NewArgv. Removes the need to malloc an new
	vector if execve() fails.
	[d27f06b5f]

2005-02-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, config.h.in, configure, configure.in, sudo.c:
	Use execve(2) and wrap the command in sh if we get ENOEXEC.
	[9a890467a]

2005-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_noexec.c:
	Only include time.h on systems that lack struct timespec which gets
	defind in compat.h (using time_t).
	[cea03b5e8]

	* sudo_noexec.c:
	Include time.h for time_t in compat.h for systems w/o struct
	timespec.
	[90d2f5f50]

	* compat.h, config.h.in, configure, configure.in:
	use bcopy on systems w/o memmove
	[f780611c3]

	* compat.h:
	__attribute__((__unused__)) doesn't work in gcc 2.7.2.1 so limit its
	use to gcc >= 2.8.
	[8f0c64f67]

	* Makefile.in:
	Add explicit rule to build sudo_noexec.lo
	[550e8f5a5]

2005-02-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL.configure, Makefile.in:
	No longer depend on VPATH; pointed out a bunch of missed
	dependencies.
	[c20f64d2f]

	* TROUBLESHOOTING:
	Help for PAM when account section is missing
	[b2f7e61ff]

	* auth/pam.c:
	Give user a clue when there is a missing "account" section in the
	PAM config.
	[6548e82f2]

	* auth/pam.c:
	Better error handling.
	[e6f51aa1a]

	* config.h.in, configure, configure.in:
	Move _FOO_SOURCE to CPPFLAGS so it takes effect as early as
	possible. Silences a warning about isblank() on linux.
	[e166c1b11]

	* auth/pam.c:
	Fix typo (missing comma) that caused an incorrect number of args to
	be passed to log_error().
	[f7adbaddc]

2005-02-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pwutil.c:
	Don't try to destroy a tree we didn't create.
	[543fe6e7d]

2005-01-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* alias.c, alloc.c, auth/afs.c, auth/aix_auth.c, auth/bsdauth.c,
	auth/dce.c, auth/fwtk.c, auth/kerb4.c, auth/kerb5.c, auth/pam.c,
	auth/passwd.c, auth/rfc1938.c, auth/secureware.c, auth/securid.c,
	auth/securid5.c, auth/sia.c, auth/sudo_auth.c, check.c, closefrom.c,
	compat.h, defaults.c, env.c, error.c, fileops.c, find_path.c,
	fnmatch.c, getcwd.c, getprogname.c, getspwuid.c, gettime.c,
	goodpath.c, gram.c, gram.y, interfaces.c, ldap.c, logging.c,
	match.c, mon_systrace.c, parse.c, pwutil.c, set_perms.c,
	sigaction.c, snprintf.c, strcasecmp.c, strerror.c, strlcat.c,
	strlcpy.c, sudo.c, sudo_edit.c, sudo_noexec.c, testsudoers.c,
	tgetpass.c, toke.c, toke.l, utimes.c, visudo.c, zero_bytes.c:
	Add __unused to rcsids
	[3b8b88407]

2005-01-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Fix error message when mixing invalid auth types
	[c2dad169f]

	* INSTALL:
	PAM, AIX auth, BSD auth and login_cap are now on by default if the
	OS supports them.
	[f751d934d]

	* auth/sudo_auth.h, config.h.in:
	s/HAVE_AUTHENTICATE/HAVE_AIXAUTH/g
	[2dc559bf3]

	* configure.in:
	Better checking for conflicting authentication methods Display the
	authentication methods used at the end of configure Rename
	--with-authenticate -> --with-aixauth Use --with-aixauth,
	--with-bsdauth, --with-pam, --with-logincap by default on systems
	that support them unless disabled. Add OSMAJOR variable that
	replaces old OSREV; now OSREV has full version number
	[609a615f8]

2005-01-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* def_data.c, def_data.in, sudo.c, sudoers.pod:
	s/-O/-C/
	[840d51a16]

2005-01-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	Replace: test -n "$FOO" || FOO="bar"

	With: : ${FOO='bar'}
	[2e8e96346]

2005-01-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* pwutil.c, testsudoers.c, tsgetgrpw.c:
	Use function pointers to only call private passwd/group routines
	when using a nonstandard passwd/group file.
	[7ca844890]

2005-01-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	sync
	[e7f2e2a19]

	* tsgetgrpw.c:
	Can't use strtok() since it doesn't handle empty fields so add
	getpwent()/getgrent() functions and call those.
	[b8c4e2770]

2005-01-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Fix dummied out toke.c and gram.c dependencies.
	[2fd0f3d4c]

	* Makefile.in:
	Rename PARSESRCS -> GENERATED since it is only used in the clean
	target Add devdir variable and use it to specify the path to parser
	sources
	[ba001795e]

	* configure:
	regen
	[031a3ef55]

	* configure.in:
	Add a devdir variables that defaults to $(srcdir) and is set to . if
	--devel was specified. Allows for proper dependecies building the
	parser.
	[1fb59a25c]

	* testsudoers.c:
	Add support for custom passwd/group files.
	[5e475c85b]

	* Makefile.in:
	Build private copy of pwutil.o for testsudoers with MYPW defined so
	it uses our own passwd/group routines.
	[66773d1b6]

	* visudo.c:
	Remove sudo_*{pw,gr}* stubs and add sudo_setspent/sudo_endspent
	stubs instead. We can now just use the caching sudo_*{pw,gr}*
	functions in pwutil.c Add comment about wanting to call
	sudo_endpwent/sudo_endgrent in cleanup()
	[0ab0ad244]

	* tsgetgrpw.c:
	Remove caching; we will just use what is in pwutil.c Use global
	buffers for passwd/group structs Rename functions from sudo_* to
	my_*
	[13cc08779]

	* logging.c, sudo.c:
	g/c pwcache_init/pwcache_destroy
	[dfccf1933]

	* sudo.h:
	Undo last commit and add sudo_setspent and sudo_endspent instead.
	[54db5e40b]

	* getspwuid.c, pwutil.c:
	Move all but the shadow stuff from getspwuid.c to pwutil.c and
	pwcache_get and pwcache_put as they are no longer needed. Also add
	preprocessor magic to use private versions of the passwd and group
	routines if MYPW is defined (for use by testsudoers).
	[308b6fa11]

	* tsgetgrpw.c:
	zero out struct passwd/group before filling it in so if there are
	fields we don't handle they end up as 0.
	[516ff2977]

	* logging.c, sudo.c, sudo.h, testsudoers.c, visudo.c:
	Adapt to pwutil.c
	[a5d9296d2]

	* Makefile.in:
	Add tsgetgrpw.c and pwutil.c Rename the *OBJ variables for better
	readability.
	[3c58acdc0]

	* tsgetgrpw.c:
	Passwd and group lookup routines for testsudoers that support
	alternate passwd and group files.
	[31fd279da]

	* getspwuid.c, pwutil.c:
	Split off pw/gr cache and dup code into its own file. This allows
	visudo and testsudoers to use the pw/gr cache too.
	[282c0bf36]

2005-01-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	Print Defaults info in "sudo -l" output and wrap lines based on the
	terminal width.
	[ed4df3a94]

2005-01-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c, testsudoers.c, visudo.c:
	Only check group vector in usergr_matches() if we are matching the
	invoking or list user. Always check the group members, even if there
	was a group vector.
	[a58012cff]

2004-12-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE, Makefile.in, fnmatch.3:
	No longer bundle fnmatch.3
	[39ddb7716]

	* CHANGES, TODO:
	checkpoint
	[e05905dd1]

2004-12-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	sort usage
	[bb76440b4]

	* sudo.pod:
	Sort command line options
	[0b1ef8ff5]

	* def_data.c, def_data.h, def_data.in, defaults.c, logging.c,
	sudo.c, sudo.pod, sudoers.pod:
	Add closefrom sudoers option to start closing at a point other than
	3. Add closefrom_override sudoers option and -C sudo flag to allow
	the user to specify a different closefrom starting point.
	[051a2110a]

	* pathnames.h.in:
	Add _PATH_DEVNULL for those without it.
	[74c19b024]

	* LICENSE:
	no more UCB strcasecmp
	[2c9dc5a69]

	* strcasecmp.c:
	replace BSD licensed one with version derived from pdksh
	[b9a727023]

2004-12-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Fix last commit.
	[f93cd1e97]

	* sudo.c:
	Make sure stdin, stdout and stderr are open and dup them to
	/dev/null if not.
	[07d74adfb]

2004-12-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c, mon_systrace.c, sudo.c, sudo.h:
	add sudo_ldap_close
	[1936aeb29]

	* fileops.c, gettime.c, sudo.c, sudo_edit.c, utimes.c, visudo.c:
	Use TIME_WITH_SYS_TIME
	[7d488657f]

	* config.h.in, configure, configure.in:
	Add TIME_WITH_SYS_TIME_H
	[9884923a9]

2004-12-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Add missing braces to avoid DYLD_FORCE_FLAT_NAMESPACE being set
	unconditionally on darwin. From Toby Peterson.
	[48dae86b8]

	* getspwuid.c:
	Check rbinsert() return value. In the case of faked up entries there
	is usually a negative response cached that we need to overwrite.

	In pwfree() don't try to zero out a NULL pw_passwd pointer.
	[77a7ab659]

	* mon_systrace.c:
	Use the double fork trick to avoid the monitor process being waited
	for by the main program run through sudo.
	[d88e6523a]

2004-11-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Call initgroups() in -U mode so group matches work normally.
	[68e54d2c8]

	* def_data.h, mkdefaults:
	Don't print a trailing comma for the last entry in enum def_tupple
	[51fbe264f]

2004-11-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.man.in, sudoers.pod:
	Mention values when lecture, listpw and verifypw are used in boolean
	context.
	[9c8844142]

	* def_data.c, def_data.in:
	verifypw when used in a boolean TRUE context should be "all", not
	"any".
	[f5c359ee0]

2004-11-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* def_data.in, defaults.c:
	Allow tuples that can be used as booleans to be used as boolean
	TRUE. In this case the 2nd possible value of the tuple is used for
	TRUE.
	[57ab7279b]

2004-11-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Correct the test for 2-parameter timespecsub
	[8ed367de8]

	* sudo.h:
	Add strub struct definitions for passwd, timeval and timespec
	[d72a4e9c2]

	* config.h.in, configure, configure.in, sudo_edit.c, visudo.c:
	Add check for 2-argument form of timespecsub (FreeBSD and BSD/OS)
	and fix a typo in the gettimeofday check.
	[33db4b2ed]

2004-11-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c, testsudoers.c:
	Deal with user_stat being NULL as it is for visudo and testsudoers.
	[94f606fbf]

	* parse.c, sudo.c, sudo.cat, sudo.h, sudo.man.in, sudo.pod:
	Add -U option to use in conjunction with -l instead of -u. Add
	support for "sudo -l command" to test a specific command.
	[5f06b19a6]

	* gram.c, gram.y, sudo.c:
	Set safe_cmnd after sudoers_lookup() if it has not been set.
	Previously it was set by sudo "ALL" in the parser but at that point
	the fully-qualified pathname has not yet been found.
	[f75a034f0]

2004-11-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c, testsudoers.c:
	Correctly handle multiple privileges per userspec and runas
	inheritence.
	[9c526bdc3]

2004-11-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.c:
	Zero out sd_un for each entry in sudo_defs_table in init_defaults.
	[f2bdbda17]

2004-11-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* toke.c, toke.l:
	make per-command defaults work with sudoedit
	[77cd81f41]

	* ldap.c, parse.c, sudo.c, sudo.h:
	Remove the FLAG_NOPASS, FLAG_NOEXEC and FLAG_MONITOR flags. Instead,
	we just set the approriate defaults variable.
	[e60507014]

	* sample.sudoers, sudoers.cat, sudoers.man.in, sudoers.pod:
	Document per-command Defaults.
	[9c954d803]

	* defaults.c, defaults.h, gram.c, gram.h, gram.y, mon_systrace.c,
	sudo.c, testsudoers.c, toke.c, toke.l, visudo.c:
	Add support for command-specific Defaults entries. E.g.
	Defaults!/usr/bin/vi noexec
	[fe869025c]

	* defaults.c, match.c, parse.c, parse.h, testsudoers.c:
	Change an occurence of user_matches() -> runas_matches() missed
	previously runas_matches(), host_matches() and cmnd_matches() only
	really need to pass in a list of members. user_matches() still needs
	to pass in a passwd struct because of "sudo -l"
	[0cddfc368]

	* parse.c:
	Check def_authenticate, def_noexec and def_monitor when setting
	return flags. XXX May be better to just set the defaults directly
	and get rid of those flags.
	[2c3cff170]

	* alias.c, alloc.c, auth/afs.c, auth/aix_auth.c, auth/bsdauth.c,
	auth/dce.c, auth/fwtk.c, auth/kerb4.c, auth/kerb5.c, auth/pam.c,
	auth/passwd.c, auth/rfc1938.c, auth/secureware.c, auth/securid.c,
	auth/securid5.c, auth/sia.c, auth/sudo_auth.c, check.c, closefrom.c,
	defaults.c, env.c, error.c, fileops.c, find_path.c, fnmatch.c,
	getcwd.c, getprogname.c, getspwuid.c, gettime.c, glob.c, goodpath.c,
	gram.c, gram.y, interfaces.c, ldap.c, logging.c, match.c,
	mon_systrace.c, parse.c, redblack.c, set_perms.c, snprintf.c,
	strcasecmp.c, strerror.c, strlcat.c, strlcpy.c, sudo.c, sudo_edit.c,
	sudo_noexec.c, testsudoers.c, tgetpass.c, toke.c, toke.l, utimes.c,
	visudo.c, zero_bytes.c:
	Use: #include <config.h> Not: #include "config.h" That way we get
	the correct config.h when build dir != src dir
	[2c2daa8ec]

	* Makefile.in:
	Back out part of rev 1.263; fix -I order
	[bb60da6bb]

	* toke.c, toke.l:
	More robust parsing if #include; could be much better still.
	[faa9a8972]

	* sudo_edit.c, visudo.c:
	Make arg splitting in visudo and sudoedit consistent.
	[6a78b9194]

	* Makefile.in, alias.c, gram.c, gram.y, parse.h:
	Split alias routines out into their own file.
	[07139128f]

	* error.h:
	__attribute__ is already defined in compat.h
	[55d6af846]

	* visudo.c:
	quit() should not be __noreturn__ as it is non-void on some
	platforms.
	[3f9ee04fb]

	* auth/fwtk.c, auth/rfc1938.c, auth/securid.c, auth/securid5.c:
	Add local error/warning functions like err/warn but that call an
	additional cleanup routine in the error case. This means we no
	longer need to compile a special version of alloc.o for visudo.
	[a414762c4]

	* parse.h:
	Clarify comments about the data structures
	[f38c58574]

2004-11-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	Add support for VISUAL and EDITOR containing command line args. If
	env_editor is not set any args in VISUAL and EDITOR are ignored.
	Arguments are also now supported in def_editor.
	[75ad6b81a]

2004-11-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.h:
	alias_matches() is no more
	[cf02ff7f5]

	* CHANGES, TODO:
	sync
	[0e71bf81a]

	* Makefile.in:
	When regenerating the parser, don't replace gram.h unless it has
	changed.
	[81f558732]

	* Makefile.in:
	remove Makefile.binary for distclean
	[761695f32]

	* env.c:
	Preserve KRB5CCNAME in zero_env() and add a paranoia check to make
	sure we can't overflow new_env.
	[b2ef18bbd]

	* sudo_edit.c:
	paranoia when stripping trailing slashes from tempdir.
	[88ce50751]

	* sudo.c:
	Set user_ngroups to 0 if getgroups() returns an error.
	[d427384ae]

2004-11-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, sudo.c:
	Add configure check for getgroups()
	[f7f282ba1]

	* ldap.c:
	Use supplementary group vector in struct sudo_user.
	[fc85c6f02]

	* match.c:
	Only do string comparisons on the group members if there is no
	supplemental group list.
	[596d1ef5a]

	* CHANGES, TODO:
	sync
	[cfbf7768f]

	* sudo_edit.c:
	On Digital UNIX _PATH_VAR_TMP doesn't end with a trailing slash so
	chop off any trailing slashes we see and add an explicit one.
	[900db20f7]

	* match.c:
	remove bogus XXX comment
	[0ed255795]

	* match.c:
	Get rid of alias_matches and correctly fall through to the non-alias
	cases when there is no alias with the specified name.
	[3e97ace97]

	* getspwuid.c:
	Cache non-existent passwd/group entries too.
	[4620e8fa6]

	* gram.c:
	regen
	[7679efc43]

	* getspwuid.c:
	fix typo
	[8680307db]

	* check.c, getspwuid.c, glob.c, ldap.c, logging.c, match.c,
	mon_systrace.h, sudo.c, sudo.h, testsudoers.c, visudo.c:
	Implement group caching and use the passwd and group caches
	throughout.
	[9846e562a]

2004-11-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* match.c:
	Properly negate the return value of alias_matches() when
	appropriate.
	[fd46c2c3e]

	* match.c:
	Make hostname_matches() return TRUE for a match, else FALSE like the
	caller expects.
	[61ba998ee]

	* Makefile.in:
	Add missing dependencies on gram.h
	[cf356ed80]

	* match.c:
	Use runas_matches in alias_matches() now that we have it.
	[814103ee2]

	* parse.c, parse.h:
	Expand aliases in "sudo -l" mode
	[74169a83e]

	* gram.y, match.c:
	Use ALIAS for the member type when storing an alias instead of
	HOSTALIAS/RUNASALIAS/CMNDALIAS/USERALIAS since match.c relies on the
	more generic type. Expand runas_matches instead of calling
	user_matches() inside of it since user_matches() looks up
	USERALIASes, not RUNASALIASes.
	[d076091ab]

	* CHANGES, getspwuid.c:
	Paranoia; zero out pw_passwd before freeing passwd entry.
	[77cb1b56a]

	* LICENSE, Makefile.in, alloc.c, check.c, config.h.in, configure,
	configure.in, defaults.c, emul/err.h, env.c, err.c, error.c,
	error.h, find_path.c, interfaces.c, logging.c, mon_systrace.c,
	sudo.c, sudo.h, sudo_edit.c, testsudoers.c, visudo.c:
	Add local error/warning functions like err/warn but that call an
	additional cleanup routine in the error case. This means we no
	longer need to compile a special version of alloc.o for visudo.
	[51375f969]

	* match.c:
	Use userpw_matches() to compare usernames, not strcmp(), since the
	latter checks for "#uid".
	[244eec5cd]

	* getspwuid.c, mon_systrace.c, mon_systrace.h, sudo.c:
	Cache passwd db entries in 2 reb-black trees; one indexed by uid,
	the other by user name. The data returned from the cache should be
	considered read-only and is destroyed by sudo_endpwent().
	[ae2e26fd2]

	* match.c:
	add cast to uid_t
	[99158cc7e]

	* gram.y:
	missing free in alias_destroy
	[7ee6d6815]

	* redblack.c:
	Can't use rbapply() for rbdestroy since the destructor is passed a
	data pointer, not a node pointer.
	[ec431b4e3]

	* getspwuid.c, logging.c, sudo.c, sudo.h:
	Create and use private versions of setpwent() and endpwent() that
	set/end the shadow password file too.
	[0b34123a8]

	* gram.c, gram.h, gram.y, match.c, parse.h, testsudoers.c, visudo.c:
	Store aliases in a red-black tree.
	[e26e40df8]

	* Makefile.in, redblack.c, redblack.h:
	red-black tree implementation
	[72c6f3ba9]

	* visudo.c:
	Edit all sudoers file if there were unused or undefined aliases and
	we are in strict mode.
	[f3839f1bf]

2004-11-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, def_data.c, def_data.h, def_data.in, defaults.c, env.c,
	find_path.c, sudoers.cat, sudoers.man.in, sudoers.pod, visudo.c:
	Bring back the "secure_path" Defaults option now that Defaults take
	effect before the path is searched.
	[a768dbc34]

2004-11-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c, parse.c:
	A user can always list their own entries, even with -u. Better error
	message when failing to list another user's entries.
	[541908f1b]

	* parse.c, sudo.c, sudo.h:
	The syntax to list another user's entries is now "-u otheruser -l".
	Only root or users with sudo "ALL" may list other user's entries.
	[a239e60a6]

	* sudo.cat, sudo.man.in, sudo.pod:
	Update env variable info in SECURITY NOTES
	[85d1ca15a]

	* env.c:
	strip CDPATH too
	[74b4e439a]

	* env.c:
	strip exported bash functions from the environment.
	[482526bde]

2004-10-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Only reset sudo_user.pw based on SUDO_USER environment variables for
	real commands and sudoedit. This avoids a confusing message when a
	user tries "sudo -l" or "sudo -v" and is denied.
	[29fc2c947]

	* gram.c, gram.y, parse.h:
	Extend LIST_APPEND to deal with appending lists too
	[8ac791557]

2004-10-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	Convert some bitwise AND to ISSET
	[454998066]

	* toke.c:
	toke.c replaces lex.yy.c
	[7062fd28f]

	* CHANGES, TODO:
	sync
	[b1d7ccde4]

	* BUGS:
	new parser fixes most of the outstanding bugs
	[f3d8a1160]

	* configure:
	regen
	[5744a0bfd]

	* visudo.c:
	Rework for the new parser. Now checks for unused aliases in sudoers.
	[2c1da58a8]

	* testsudoers.c:
	Rewrite for the new parser. Now supports a -d flag (dump) and adds a
	-h flag (host). It now defaults to the local hostname unless
	otherwise specified.
	[987d5cf81]

	* sudo.h:
	Add new prototypes. Remove NOMATCH/UNSPEC (now in parse.h)
	[e392b4d11]

	* sudo.c:
	Update for new parse. We now call find_path() *after* we have
	updated the global defaults based on sudoers. Also adds support for
	listing other user's privs if you are root.
	[efbc9997a]

	* mon_systrace.c:
	Working LDAP support; also remove a now-unneeded rewind().
	[ce4b69f8b]

	* logging.c, logging.h:
	Add NO_STDERR flag.
	[899e22194]

	* ldap.c:
	Split sudo_ldap_check() into three pieces: sudo_ldap_open(),
	udo_ldap_update_defaults() and sudo_ldap_check(). This allows us to
	connecto to LDAP, apply the default options, find the command in the
	user's path, and then check whether the user is allowed to run it.
	The important thing here is that the default runas user may be
	specified as a default option and that needs to be set before we
	search for the command.
	[6c5550d13]

	* ldap.c:
	Add casts to unsigned char for isspace() to quiet a gcc warning.
	[0de1515d0]

	* defaults.h:
	Add prototype for update_defaults()
	[9c14a9998]

	* defaults.c:
	Don't warn about line numbers now that we operate on a set of data
	structures (or LDAP) and not a file.
	[50e00d2b0]

	* config.h.in:
	No long use lsearch()
	[ba12600db]

	* Makefile.in:
	Update for new and changed file names.
	[e777eb9dd]

	* LICENSE:
	no more BSD lsearch.c
	[306734c6b]

	* match.c:
	foo_matches() routines now live in match.c Added user_matches(),
	runas_matches(), host_matches(), cmnd_matches() and alias_matches()
	that operate on the parsed sudoers file.
	[56e8b2fcf]

	* toke.l:
	Move parse.lex -> toke.l Rename buffer_frob() -> switch_buffer()
	WORD no longer needs to exclude '@' kill yywrap()
	[2d1e360e8]

	* gram.c, gram.h, gram.y, parse.c, parse.h, parse.yacc, sudo.tab.c:
	Rewritten parser that converts sudoers into a set of data
	structures. This eliminates ordering issues and makes it possible to
	apply sudoers Defaults entries before searching for the command.
	[5becc0385]

	* configure.in, emul/search.h, lsearch.c:
	We won't be using lsearch() any longer.
	[6725bb2e5]

	* ldap.c:
	sudo should not send mail if someone who runs 'sudo -l' has no
	entry.
	[f7d7a3d5f]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in, visudo.cat,
	visudo.man.in:
	regen
	[8204723c8]

	* visudo.pod:
	Update warnings to match new visudo
	[ae0a788d9]

	* sudoers.pod:
	The new parser doesn't have the old ordering constraints.
	[b7479ce1e]

	* sudo.pod:
	Document that -l now takes an optional username argument
	[92d0954bc]

2004-10-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	AIX 5.2.0.0 works
	[17bb4b138]

	* ldap.c:
	If LDAP_OPT_SUCCESS is not defined, use LDAP_SUCCESS instead. Fixes
	a compilation problem with Solaris 9's native LDAP.

	Set FLAG_MONITOR when needed.
	[66992e10e]

2004-10-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mon_systrace.c:
	Call sudo_goodpath() *after* changing the cwd to match the traced
	process. Fixes relative paths.
	[2c91a5814]

2004-10-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* testsudoers.c:
	Kill set_perms() stub--it is no longer needed.
	[d9e4426cb]

2004-10-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.man.in, sudoers.pod:
	stay_setuid now requires set_reuid() or setresuid()
	[e455f848a]

	* INSTALL, PORTING, TROUBLESHOOTING, config.h.in, configure,
	configure.in, set_perms.c, sudo.c, sudo.h:
	Kill use of POSIX saved uids; they aren't worth bothering with.
	[48cdd1dec]

2004-10-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* glob.c:
	remove call to issetugid()
	[55e1b220e]

	* sudoers.cat, sudoers.man.in, sudoers.pod:
	Remove warning about wildcards. Now that we use glob() the bug is
	fixed.
	[d56b543a1]

	* parse.c:
	Use glob(3) instead of fnmatch(3) for matching pathnames and stat
	each result that matches the basename of the user's command. This
	makes "cd /usr/bin ; sudo ./blah" work when sudoers allows
	/usr/bin/blah. Fixes bug #143.
	[1b06f3e81]

	* config.h.in, configure, configure.in:
	Define HAVE_EXTENDED_GLOB for extended glob (GLOB_TILDE and
	GLOB_BRACE)
	[082b0f8b3]

	* config.h.in, configure, configure.in:
	Check for a glob() that supports GLOB_BRACE and GLOB_TILDE
	[e05c8441e]

	* LICENSE:
	reference glob
	[b19c6c4e9]

	* glob.c:
	4.4BSD glob(3) with fixes from OpenBSD and some unneeded extensions
	removed.
	[50ed391d1]

	* emul/glob.h:
	4.4BSD glob(3) with fixes from OpenBSD and some unneeded extensions
	removed.
	[1ef398856]

2004-10-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mon_systrace.c:
	Just return if STRIOCINJECT or STRIOCREPLACE fail. It probably means
	we are out of space in the stack gap...
	[163994c11]

	* CHANGES:
	sync
	[a3367a715]

	* mon_systrace.c:
	Take a stab at ldap sudoers support here.
	[a7d63df1f]

	* mon_systrace.c, mon_systrace.h:
	Detach from tracee on SIGHUP, SIGINT and SIGTERM. Now "sudo reboot"
	doesn't cause reboot to inadvertanly kill itself.
	[385dfb269]

	* mon_systrace.c:
	put "monitor" in the proctitle, not "systrace"
	[6e2fb232a]

	* mon_systrace.c:
	When modifying the environment, don't replace envp when we can get
	away with just rewriting pointers in the traced process.
	[f01c983f1]

	* mon_systrace.c, mon_systrace.h:
	Add environment updating via STRIOCINJECT (if available).
	[dc368b59f]

	* sudoers.cat, sudoers.man.in:
	regen
	[5c259f8b4]

2004-10-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lex.yy.c:
	regen
	[30f4a9c13]

	* parse.lex:
	Fix bug introduced in unput() removal; want yyless(0) not yyless(1)
	[7e36fc441]

	* mon_systrace.c:
	Include file is now mon_systrace.h
	[d7e43093e]

	* Makefile.in, configure, configure.in, def_data.c, def_data.h,
	def_data.in, lex.yy.c, parse.c, parse.h, parse.lex, parse.yacc,
	sudo.c, sudo.h, sudo.tab.c, sudo.tab.h, sudoers.pod:
	No longer call it tracing, it is now "monitoring" which should be
	more a obvious name to non-hackers.
	[3c8145a92]

2004-10-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mon_systrace.c, mon_systrace.h:
	Fix some XXX
	[5eb4895b5]

	* mon_systrace.c, mon_systrace.h:
	No need to include syscall.h, use 1024 as the max # of entries (the
	max that systrace(4) allows).

	Only need to use SYSTR_POLICY_ASSIGN once

	Change check_syscall() -> find_handler() and have it return the
	handler instead of just running it. We need this since handler now
	have two parts: one part that generates and answer and another that
	gets called after the answer is accepted (to do logging).

	Add some missing check_exec for emul execv
	[e173a07c8]

	* sample.pam, sample.sudoers, sample.syslog.conf, sudoers:
	Add $Sudo$ tags.
	[ebf22ee97]

	* config.h.in:
	Add missing HAVE_LINUX_SYSTRACE_H
	[0035b30f9]

	* Makefile.in:
	add trace_systrace.o dependency
	[d94975937]

2004-09-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Also look for systrace.h in /usr/include/linux
	[6f338fd77]

	* mon_systrace.c, mon_systrace.h:
	Move all struct defs and prototypes into trace_systrace.h and mark
	all but systace_attach() static.
	[7edec1990]

	* mon_systrace.c, mon_systrace.h:
	Add support for tracing emulations. At the moment, all emulations
	are compiled in. It might make sense to #ifdef them in the future,
	though this impeeds readability.
	[33badbaea]

	* Makefile.in, configure, configure.in:
	rename systrace.c -> trace_systrace.c
	[2cfa16a77]

	* parse.yacc, sudo.tab.c:
	Allow this to build with a K&R compiler again
	[6fa20c570]

	* TODO:
	sync
	[9c15884b2]

	* compat.h, sudo.c, visudo.c:
	Use __attribute__((__noreturn__))
	[8a3302598]

	* visudo.c:
	Exit() takes a negative value to indicate it was not called via
	signal.
	[1e65afba3]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in, visudo.cat,
	visudo.man.in:
	regen
	[abc7ac8ee]

	* Makefile.in, visudo.c:
	Define Err() and Errx() that are like err() and errx() but call
	Exit() instead of exit(). Build private copy of alloc.o for visudo
	that calls Err() and Errx().
	[2b020f999]

2004-09-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lex.yy.c, sudo.tab.c:
	regen
	[b5d2fbb77]

	* CHANGES:
	sync
	[bfaf67451]

	* visudo.c:
	Overhaul visudo for editing multiple files: o visudo has been broken
	out into functions (more work needed here) o each file is now edited
	before sudoers is re-parsed o if a #include line is added that file
	will be edited too

	TODO: o cleanup temp files when exiting via err() or errx() o
	continue breaking things out into separate functions
	[f2ae53323]

	* parse.lex, sudo.c, sudo.h, testsudoers.c, visudo.c:
	Add keepopen arg to open_sudoers that open_sudoers can use to
	indicate to the caller that the fd should not be closed when it is
	done with it. To be used by visudo to keep locked fds from being
	closed prematurely (and thus losing the lock).
	[cbcb60b18]

	* parse.yacc, sudo.c:
	Add errorfile global that contains the name of the file that caused
	the error.
	[e9b23cdee]

	* parse.lex:
	return COMMENT to yacc grammar for a #include line
	[f8f41d69a]

	* parse.lex:
	Remove us of unput() in favor of yyless() which is cheaper.
	[72894e693]

	* parse.yacc:
	Allow an empty sudoers file.
	[9e975fafe]

2004-09-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mon_systrace.c:
	Rewind sudoers_fp now that sudoers_lookup() doesn't do it for us.
	[27e83bacb]

	* lex.yy.c, sudo.tab.c:
	regen
	[f4b1891e0]

	* visudo.c:
	Do signal setup before calling edit_sudoers(). Don't shadow the
	"quiet" global.
	[34269049b]

	* visudo.c:
	If a sudoers file includes other files, edit those too. Does not yes
	deal with creating the new includes files itself.
	[97d800c91]

	* testsudoers.c:
	init_parser now takes a path
	[01212e4eb]

	* parse.c, parse.h, parse.lex, parse.yacc:
	More scaffolding for dealing with multiple sudoers files: o
	init_parser() now takes a path used to populate the sudoers global o
	the sudoers global is used to print the correct file in yyerror() o
	when switching to a new sudoers file, perserve old file name and
	line number
	[db2a97fd0]

	* Makefile.in, pathnames.h.in:
	Kill _PATH_SUDOERS_TMP; it is not meaningful now that we can have
	multiple sudoers files.
	[b99ad3ee2]

	* parse.c, sudo.c:
	Rewind sudoers_fp in open_sudoers() instead of sudoers_lookup() so
	we start at the right file position when reading include files.
	[4b75a0334]

	* sudoers.pod:
	document #include
	[fbb62c680]

	* lex.yy.c:
	regen
	[4aa29b5f2]

	* parse.lex:
	Add max depth of 128 for the include stack to avoid loops.

	Since yyerror() doesn't stop parsing, pass return values back to
	yylex and call yyterminate() on error.
	[8c039eac9]

2004-09-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	document tracing
	[d1f1af2bc]

	* sudo.pod:
	Mention PREVENTING SHELL ESCAPES section of sudoers man page
	[a79c3af48]

	* lex.yy.c, sudo.tab.c:
	regen
	[741177ad1]

	* parse.lex:
	Add support for #include in sudoers (visudo support TBD)
	[5691c513d]

	* parse.yacc:
	make yyerror()'s argument const
	[7f7358159]

	* testsudoers.c, visudo.c:
	Add open_sudoers() stubs.
	[ec0ef3fcf]

	* sudo.c, sudo.h:
	Rename check_sudoers() open_sudoers() and make it return a FILE *
	[7cf26298a]

2004-09-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, INSTALL, INSTALL.binary, Makefile.in, README, configure.in,
	version.h:
	Crank version
	[22ad3cbc9]

	* Makefile.in, sudo.psf:
	Better HP-UX depot construction
	[8b8ff2e45]

2004-09-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mon_systrace.c:
	o Made children global so check_exec() can lookup a child. o
	Replaced uid in struct childinfo with struct passwd * (for runas) o
	new_child() now takes a parent pid so the runas info can be
	inherited o Added find_child() to lookup a child by its pid o
	update_child() now fills in a struct passwd o Converted the big
	if/else mess in set_policy to a switch o Syscalls that change uid
	are now "ask" so we get SYSTR_MSG_UGID events
	[e4d64ce1d]

	* getspwuid.c:
	Add flag to sudo_pwdup that indicates whether or not to lookup the
	shadow password. Will be used to a struct passwd that has the shadow
	password already filled in.
	[ea5307a43]

	* mon_systrace.c:
	add missing increment of addr in read_string()
	[28736eb55]

	* mon_systrace.c:
	Remove bogus call to update_child() and some cosmetic fixes
	[649e2dac1]

	* mon_systrace.c:
	Don't leak /dev/systrace fd to tracee Make initialized global for
	simplicity If STRIOCATTACH returns EBUSY we are already being traced
	Check for user_args == NULL in setproctitle() call Add missing calls
	to STRIOCANSWER
	[4e5c53e13]

	* sudo.c:
	g/c sudo_pwdup proto
	[d4e3f175c]

	* Makefile.in, sudo.psf:
	Add target for building a depot file
	[007aff2b6]

	* mon_systrace.c:
	trim includes
	[1131db069]

2004-09-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lex.yy.c, sudo.tab.c, sudo.tab.h:
	regen
	[2bb847298]

	* INSTALL:
	document --with-systrace
	[78ac046db]

	* config.h.in, configure, configure.in:
	Add check for setproctitle
	[35203ffe5]

	* mon_systrace.c:
	pass struct str_msg_ask in to syscall checker so it can set the
	error code
	[11edf288b]

	* mon_systrace.c:
	systrace(4) support for sudo. On systems with the systrace(4) kernel
	facility (OpenBSD, NetBSD, Linux w/ patches) sudo can intercept exec
	calls and check the exec args against the sudoers file. In other
	words, sudo can now control subcommands and shell escapes.
	[d492138ff]

	* sudo.c, sudo.h:
	Call systrace_attach() if FLAG_TRACE is set.
	[aa8d212e3]

	* parse.c, parse.h, parse.lex, parse.yacc, sudo.h:
	Add trace Defaults option and TRACE/NOTRACE tags and set FLAG_TRACE
	[e3391d597]

	* parse.c, sudo.c:
	Don't close sudoers_fp, keep it open and set close on exec flag
	instead.
	[0c2be0808]

	* def_data.c, def_data.h, def_data.in:
	Add trace option
	[ef874440a]

	* Makefile.in:
	Add systrace
	[84a3d101e]

	* INSTALL:
	SunOS /bin/sh blows up with configure
	[7db351d7a]

	* configure, configure.in:
	Include sys/param.h before systrace.h
	[ce559899e]

	* configure:
	regen
	[ec57f115f]

	* pathnames.h.in:
	_PATH_DEV_SYSTRACE
	[5431e1451]

	* configure.in:
	line up options in --help
	[35b33cc1b]

	* config.h.in, configure.in:
	Add --with-systrace
	[2af113f24]

2004-09-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[fdaaeda58]

	* aclocal.m4, configure.in:
	make this work with autoconf-2.59
	[2306b4eb5]

2004-09-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_edit.c:
	Simplify logic around open & stat of files and do sanity on edited
	file even if we lack fstat (still racable but worth doing).
	[5ac82331b]

2004-09-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* HISTORY:
	Add support url
	[4bf59231e]

	* Makefile.in:
	versino 1.6.8p1
	[075af35f9]

	* CHANGES:
	more changes for 1.6.8p1
	[98e8b1a15]

	* version.h:
	1.6.8p1
	[55be146f0]

	* CHANGES, sudo_edit.c:
	Add sanity check so we don't try to edit something other than a
	regular file.
	[12c78c0f6]

2004-09-15  Aaron Spangler  <aaron777@gmail.com>

	* CHANGES:
	sync
	[bbfe3c0a6]

	* INSTALL:
	document --with-ldap-conf-file
	[beb677357]

2004-09-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, ins_csops.h:
	political correctness strikes again
	[ec404a074]

	* RUNSON:
	sync
	[e3161b7a9]

2004-09-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.binary.in, Makefile.in:
	Install sudoedit man link
	[13a265e0e]

	* INSTALL:
	Update PAM note and mention where HP-UX users can download gcc
	binaries.
	[e4dcb7919]

	* Makefile.in:
	libtool wants to install stuff from .libs so fake one up for binary
	installations.
	[4aa5447ab]

	* Makefile.binary.in:
	rm -f old sudoedit link instead of using ln -f set LIBTOOL correctly
	[3dcceccfc]

	* Makefile.in:
	Deal with "uname -m" having slashes in it rm -f old sudoedit link
	instead of using ln -f
	[75866326a]

	* Makefile.binary.in:
	Makefile.binary -> Makefile.binary.in for config.status substitution
	Add support for installing noexec bits
	[5f8b2d646]

	* Makefile.in:
	Copy noexec bits into binary dists too No longer use my old arch
	script for making binary dists
	[b503734d0]

	* Makefile.binary:
	Install sudoedit link.
	[35e0ade7a]

2004-09-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* emul/utime.h:
	avoid __P so there is no need for compat.h to be included
	[9cc4d46d1]

	* utimes.c:
	Don't use HAVE_UTIME_H before including config.h.
	[6efac29fb]

2004-09-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h:
	Fix Solatis futimes macro
	[dc3bbe24c]

2004-09-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_edit.c:
	Rename ots -> omtim for improved readability.
	[c93248273]

2004-09-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_edit.c:
	Redo changes in revision 1.7. Don't really need to keep the temp
	file open; re-opening it with the invoking user's euid is
	sufficient.
	[611b0ca14]

	* CHANGES:
	sync
	[4cde080f9]

	* sudo.cat, sudo.man.in:
	regen
	[5e12b105f]

	* sudo.pod:
	back out revision 1.70; it is no long applicable
	[a5e0ff864]

	* env.c:
	Let the loader initialize nep
	[01dbe19ba]

	* config.h.in, configure, configure.in:
	Removed unneed check for fchown Add check for gettimeofday Move
	autoheader template stuff into separate AH_TEMPLATE lines
	[70d8f7832]

	* check.c, compat.h, fileops.c, sudo.h, sudo_edit.c, visudo.c:
	Use timespec throughout.
	[0f056c0d5]

	* Makefile.in:
	gettime.[co]
	[574866457]

	* gettime.c:
	function to return the current time in a struct timespec
	[8eb8badcc]

	* utimes.c:
	Not a darpa-sponsored file.
	[a8972c696]

2004-09-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h, config.h.in, configure, configure.in:
	Add a check for struct timespec and provide it for those without.
	[54789c8fb]

	* config.h.in, configure, configure.in, sudo_edit.c:
	Add checks for st_mtim and st_mtimespec and add macros for pulling
	the mtime sec and nsec out of struct stat. These are used in
	sudo_edit() to better tell whether or not the file has changed.
	[c0bfcc95c]

	* check.c, fileops.c, sudo.h, sudo_edit.c, visudo.c:
	Add an extra param to touch() for nsec
	[7f772c822]

	* sudo_edit.c:
	Call mkstemp() as the in invoking user so we don't have to chown the
	file later. Only touch() the temp file if we can do it via the file
	descriptor. Don't check for modification of the temp file if we lack
	fstat(). Catch errors read()ing the temp file.
	[707c3c2cb]

	* fileops.c:
	If path is NULL and fd == -1 return -1.
	[b243b0ad3]

	* sudo_edit.c:
	closefrom() is overkill, the only extra fds are the ones we opened
	so just close those in the child.
	[47d25da64]

	* Makefile.in, aclocal.m4, check.c, compat.h, config.h.in,
	configure, configure.in, fileops.c, sudo.h, sudo_edit.c, utimes.c,
	visudo.c:
	Use utimes() and futimes() instead of utime() in touch(), emulating
	as needed. Not all systems are able to support setting the times of
	an fd so touch() takes both an fd and a file name as arguments.
	[1c20ff1a6]

2004-09-07  Aaron Spangler  <aaron777@gmail.com>

	* env.c:
	Rare SEGV
	[03b53b691]

2004-09-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in, visudo.cat,
	visudo.man.in:
	regen
	[1e0f96b91]

	* sudo.pod, sudoers.pod, visudo.pod:
	Add SUPPORT section and re-order some of the sections to match the
	order we use in OpenBSD.
	[eb49afe6c]

2004-09-06  Aaron Spangler  <aaron777@gmail.com>

	* env.c:
	Openldap ~/.ldaprc fix
	[2102b561b]

2004-09-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod:
	Talk about how the editor must write its changes to the original
	file and not just use rename(2).
	[c6d8ea8af]

	* CHANGES:
	sync
	[ac3893910]

	* sudo_edit.c:
	Keep the temp file open instead of re-opening after the editor has
	exited.
	[b701107b4]

	* sample.pam:
	Update for current redhat/fedora core.
	[e410bbb58]

2004-09-03  Aaron Spangler  <aaron777@gmail.com>

	* README.LDAP:
	tls_ examples
	[fe020eca3]

2004-09-02  Aaron Spangler  <aaron777@gmail.com>

	* ldap.c:
	config tls_* options
	[646d43cf5]

2004-08-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	No need for -lcrypt when using pam.
	[2f153f222]

2004-08-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[11fe0b0bf]

2004-08-27  Aaron Spangler  <aaron777@gmail.com>

	* configure.in, ldap.c, pathnames.h.in:
	Allow --with-ldap-conf-file option to override LDAP_CONF
	[2ceb87bc5]

	* ldap.c:
	cleanup debug message
	[b7ea12521]

2004-08-26  Aaron Spangler  <aaron777@gmail.com>

	* README.LDAP:
	more config info
	[2d3b307b9]

2004-08-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO, find_path.c, goodpath.c, parse.c, sudo.c, sudo.h, visudo.c:
	Add cmnd_base to struct sudo_user and set it in init_vars(). Add
	cmnd_stat to struct sudo_user and set it in sudo_goodpath(). No
	longer use gross statics in command_matches(). Also rename some
	variables for improved clarity.
	[f30ab72c4]

2004-08-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	document HP's crippled compiler deficiency.
	[badd06688]

	* INSTALL:
	Fix some thinkos in --with-editor and --with-env-editor
	descriptions. Noticed by Norihiko Murase.
	[1e46c4d26]

	* configure, configure.in:
	--with-noexec takes an optional PATH argument.
	[a6ea92617]

	* INSTALL:
	document --with-noexec
	[65d6b278b]

2004-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON, TODO:
	sync
	[0c0dcf2e3]

	* sudo_edit.c:
	Better warning message when sudoedit is unable to write to the
	destination file.
	[6acae1b3b]

	* sudo.cat, sudo.man.in:
	regen
	[2218f7827]

	* sudo.pod:
	Don't italicize the string "sudoedit"
	[ecc1efce9]

2004-08-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* HISTORY:
	Mention GratiSoft.
	[ad4b66e0e]

2004-08-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.tab.c:
	regen
	[4bc46dc93]

	* parse.yacc:
	Reset used_runas to FALSE when re-intializing the parser.
	[4f03e9180]

2004-08-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.guess:
	Correct OpenBSD mips support
	[45805aa2b]

	* config.guess:
	Add OpenBSD/mips
	[ef12124c9]

2004-08-07  Aaron Spangler  <aaron777@gmail.com>

	* README.LDAP:
	More behavior notes
	[f62576942]

	* README.LDAP:
	Updates on current behavior
	[aafff3c21]

2004-08-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	=back does not take an indentlevel (makes no difference to formatted
	files).
	[0ad6600cc]

	* sudo.pod:
	=back does not take an indentlevel (makes no difference to formatted
	files).
	[6f44518f3]

	* CHANGES:
	new
	[23c0e4ea1]

	* sudo.c:
	Consistency. Use same error for bad -u #uid when targetpw is set as
	we do when a bad -u username is specified.
	[3c6bb6c79]

	* TODO:
	Add checksum idea from Steve Mancini
	[8013ece9b]

	* sudoers.cat, sudoers.man.in:
	regen
	[1e9dcd837]

	* sudo.cat, sudo.man.in:
	regen
	[95ef97652]

	* sudo.pod, sudoers.pod:
	Document the restriction on uids specified via -u when targetpw is
	set.
	[bc1b9cb80]

	* sudo.c:
	Error out when targetpw is enabled and sudo is run with -u #uid but
	#uid does not exist in the passwd database. We can't do target
	authentication when the target is not in passwd!
	[252093fa6]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in:
	regen
	[e41a38e38]

	* TODO:
	Some more todo for the next release.
	[e2bc02a1d]

	* INSTALL:
	Make it clear that PAM should be used for DCE support when possible.
	[15222dbc1]

	* sudoers.pod:
	o Document problems with wildcards and relative paths. o Make the
	order requirements more prominent. o Change a "set" to "reset" for
	clarity.
	[14be1c37d]

2004-08-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod:
	Mention --with-secure-path, not SECURE_PATH.
	[0adaed9c9]

2004-08-03  Aaron Spangler  <aaron777@gmail.com>

	* ldap.c:
	reflect changes to parse.c
	[02381e4c2]

2004-08-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.tab.c:
	regen
	[bf4f5913d]

	* parse.c, parse.h, testsudoers.c, visudo.c:
	Don't pass user_cmnd and user_args to command_matches(), just use
	the globals there. Since we keep state with statics anyway it is
	misleading to pretend that passing in different cmnd and cmnd_args
	will work.
	[1a46dd74f]

	* parse.yacc:
	Don't pass user_cmnd and user_args to command_matches(), just use
	the globals there. Since we keep state with statics anyway it is
	misleading to pretend that passing in different cmnd and cmnd_args
	will work.
	[600e9e394]

	* parse.c:
	Fix a bug introduced in rev. 1.149. When checking for
	pseudo-commands check for a '/' anywhere in cmnd, not just the first
	character.
	[98fb55387]

2004-07-31  Aaron Spangler  <aaron777@gmail.com>

	* sudo.man.in, sudo.pod:
	Clarification thanks to Olivier Blin <oblin@mandrakesoft.com>
	[5f3d569e3]

	* sudoers.man.in, sudoers.pod:
	Add ignore_local_sudoers
	[ed8a3eeed]

	* README.LDAP:
	Sun One schema definition by Andreas.Bussjaeger@t-systems.com and
	janth@moldung.no
	[d634a4e46]

2004-07-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	typo
	[44b6e87c9]

2004-07-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	sync
	[e8aa17107]

	* parse.c:
	Parse sudoers file as PERM_RUNAS not PERM_ROOT and remove a useless
	PERM_SUDOERS. Restore to PERM_ROOT upon exit of the parse.
	[8ce996770]

2004-07-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	PAM change
	[8573f78c9]

2004-07-08  Aaron Spangler  <aaron777@gmail.com>

	* ldap.c:
	Better debugging of ALL command
	[921f74613]

2004-07-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	When matching for "sudoedit" in sudoers check both the command the
	user typed *and* the command that is listed in the sudoers entry.
	[a6fe34784]

2004-07-04  Aaron Spangler  <aaron777@gmail.com>

	* ldap.c:
	Added !command feature
	[5e8d3f8f2]

2004-06-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	Use pam_acct_mgmt() to check for disabled accounts; Brian Farrell
	[529d2d200]

2004-06-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE:
	License is ISC-style, not BSD-style
	[15fc7f686]

	* CHANGES:
	sync
	[3e4144b0a]

2004-06-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in:
	regen
	[5f7943db5]

	* sudo.pod:
	o Update some out of date bits to reality o Change the shell promt
	in examples to bourne-shell style o Clarify some details o Add a
	CAVEAT about "sudo cd /foo"
	[18dae902b]

	* check.c:
	Don't ask for a password if invoking user == target user.
	[31f98d84d]

	* sudo.c:
	typo in comment
	[20815542a]

2004-06-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.man.in:
	regen
	[ceb351fd9]

	* sudoers.pod:
	Expand on NOEXEC a little.
	[fc1dea2ed]

	* TODO:
	sync
	[bf8eb4bca]

	* visudo.cat, visudo.man.in:
	regen
	[88828092c]

	* sudo.tab.c:
	regen
	[208736746]

	* visudo.pod:
	Add a check in visudo for runas_default being set after it has
	already been used.
	[906c12c75]

	* CHANGES, parse.yacc, visudo.c:
	Add a check in visudo for runas_default being set after it has
	already been used.
	[ce1b21d42]

	* sudo.tab.c:
	regen
	[517d8af5e]

	* parse.yacc:
	Add a MATCHED macro for testing whether foo_matches has been set to
	TRUE or FALSE. This is more readable than checking for >=0 or < 0.
	Doesn't change the actual code generated.
	[13b0c693d]

2004-06-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat:
	regen
	[34288539a]

	* sudoers.man.in:
	regen
	[62732558c]

	* sudoers.pod:
	Correct description of where Defaults specs should go.
	[213a92e2f]

	* sudoers:
	Correct description of where Defaults specs should go.
	[f5b70b6b2]

	* testsudoers.c, visudo.c:
	update (c) year
	[c01dbab98]

	* logging.h:
	update (c) year
	[f9b934d8a]

	* ldap.c:
	update (c) year
	[ed7aee0e2]

	* find_path.c:
	update (c) year
	[1273bf257]

	* auth/pam.c:
	update (c) year
	[ecdfa6373]

	* auth/bsdauth.c, auth/kerb5.c:
	update (c) year
	[8268535cc]

2004-06-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.tab.c:
	regen
	[0543ced78]

	* auth/bsdauth.c, auth/kerb5.c, auth/pam.c, visudo.c:
	Remove trailing spaces, no actual code changes.
	[77791e7ab]

	* tgetpass.c:
	Remove trailing spaces, no actual code changes.
	[806fac889]

	* ldap.c, logging.h, parse.c, parse.yacc, sudo.c, testsudoers.c:
	Remove trailing spaces, no actual code changes.
	[713e419fe]

	* getcwd.c:
	Remove trailing spaces, no actual code changes.
	[2154e5f09]

	* find_path.c:
	Remove trailing spaces, no actual code changes.
	[7ed41967a]

	* compat.h, defaults.c, env.c:
	Remove trailing spaces, no actual code changes.
	[362d6f4eb]

	* check.c:
	Remove trailing spaces, no actual code changes.
	[ba803b6e1]

	* sudo.tab.c:
	regen
	[983bdcb22]

	* parse.yacc:
	Fix a >=0 that should be <0 that was improperly converted when
	UNSPEC was added.
	[318cd646f]

	* parse.yacc:
	Add do {} while(0) around pop macro Set cmnd_matches to UNSPEC, not
	NOMATCH when resetting it.
	[4e73e5c38]

	* parse.yacc:
	Fix pastos introduced in SETNMATCH addition.
	[a5c99554d]

2004-06-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README.LDAP:
	Update for configure changes
	[2aa69afaa]

	* sudo.tab.c:
	regen
	[f8e2108d4]

	* sudo.h:
	Add NOMATCH and UNSPEC defines (-1 and -2 respectively) and use
	these in parse.yacc. Also in parse.yacc initialize the *_matches
	vars to UNSPEC and add two macros, SETMATCH and SETNMATCH for use
	when setting *_matches to a value that may be
	NOMATCH/UNSPEC/TRUE/FALSE.
	[a99f53e2f]

	* parse.yacc:
	Add NOMATCH and UNSPEC defines (-1 and -2 respectively) and use
	these in parse.yacc. Also in parse.yacc initialize the *_matches
	vars to UNSPEC and add two macros, SETMATCH and SETNMATCH for use
	when setting *_matches to a value that may be
	NOMATCH/UNSPEC/TRUE/FALSE.
	[46e37d41a]

	* parse.yacc:
	Initialize runas to -2, not -1 since we need to be able to
	distinguish between the initialized value and the value of a
	non-match when passing along the runas value to multiple commands.

	The result of this is that an unmatched runas is now set to -1, not
	0. This is required now that parse.c treats a FALSE value for runas
	as being explicitly denied.
	[385372b4d]

2004-06-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c, visudo.c:
	Error out if argc < 1.
	[3e1e279d2]

	* getprogname.c:
	Error out if argc < 1.
	[46fa00164]

	* configure, configure.in:
	Add tests for what libs we need to link with for ldap and for
	whether or not lber.h needs to be explicitly included.
	[24dd77986]

2004-06-03  Aaron Spangler  <aaron777@gmail.com>

	* ldap.c:
	Solaris native LDAP build fix
	[115869110]

2004-06-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ldap.c:
	Set edn to NULL is ldap_get_dn() fails to avoid potential use of an
	unset variable.
	[23da57f9f]

	* sudo.h:
	Add prototype for sudo_ldap_list_matches
	[03d1a9ed4]

	* configure, configure.in:
	Better check for dirfd macro--we now set HAVE_DIRFD for the macro
	version too. Added check for dd_fd in `DIR' if no dirfd is found;
	this is now used to confitionally define the dirfd macro in
	compat.h.
	[e009af0c9]

	* config.h.in:
	Better check for dirfd macro--we now set HAVE_DIRFD for the macro
	version too. Added check for dd_fd in `DIR' if no dirfd is found;
	this is now used to confitionally define the dirfd macro in
	compat.h.
	[610da19a8]

	* compat.h:
	Better check for dirfd macro--we now set HAVE_DIRFD for the macro
	version too. Added check for dd_fd in `DIR' if no dirfd is found;
	this is now used to confitionally define the dirfd macro in
	compat.h.
	[330d2ff42]

	* closefrom.c:
	Only check /proc/$$/fd if we have the dirfd function/macro.
	[cebfa4c03]

	* compat.h, config.h.in, configure, configure.in:
	Add a check for a dirfd() function (like Linux) and add a dirfd
	macro in compat.h if there is no dirfd() function or macro.
	[54cb0921d]

	* closefrom.c, getcwd.c:
	dirfd() is now defined in compat.h as needed.
	[a79bb7268]

	* CHANGES:
	Clarify closefrom() note.
	[d55466c02]

	* parse.c:
	When checking for a command in the directory, only copy the base dir
	once.
	[b954f0bc9]

	* closefrom.c:
	If there is a /proc/$$/fd directory, behave like the Solaris
	closefrom() and only close the descriptors listed therein.
	[e2a573d6c]

	* alloc.c:
	compat.h guarantees INT_MAX is defined.
	[5cb8b8349]

	* compat.h:
	Add definitions of OPEN_MAX and INT_MAX for those without it and
	remove definition of RLIM_INFINITY (now unused).
	[397019519]

	* CHANGES, alloc.c, check.c, compat.h, find_path.c, getcwd.c,
	parse.c, sudo.c, sudo.h, visudo.c:
	Use PATH_MAX, not MAXPATHLEN since the former is standardized.
	[d33ad9520]

2004-05-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	sync
	[3bce9860f]

	* RUNSON:
	Add some entries that were mailed in a while ago
	[13b900c84]

	* closefrom.c:
	o sysconf returns a long, not an int. o check for negative return
	value from sysconf/getdtablesize and use OPEN_MAX in this case. o
	define OPEN_MAX to 256 for those without it (a fair guess...)
	[2f323ada7]

2004-05-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* UPGRADE:
	Mention change in parse order for RunAs entries.
	[8d8bc778d]

	* configure:
	regen
	[2d8fab307]

2004-05-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, README.LDAP, config.h.in, configure.in:
	o --with-ldap now takes an optional dir as a parameter o added check
	for ldap_initialize() and start_tls_s()
	[f64a92347]

	* README.LDAP:
	Fix some typos, word choice and formatting issues.
	[286f74780]

2004-05-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	Use SA_INTERRUPT so SunOS works correctly, avoid stdio and just use
	read/write as it is simpler.
	[f8176ceda]

	* configure, configure.in:
	Remove hack overriding cross-compiler check. It should no longer be
	needed.
	[1a76be42f]

	* compat.h:
	Remove select() compat bits since we no longer use select().
	[c0ee2095b]

	* CHANGES, tgetpass.c:
	Use alarm() instead of select() for the timeout for systems that
	don't fully/properly implement select().
	[47b833d4c]

2004-05-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	synbc
	[97f43c49f]

	* RUNSON:
	update
	[051826c8c]

	* set_perms.c:
	Deal with systems that have no way of setting the effective uid such
	as nsr-tandem-nsk.
	[b5376f8d2]

	* configure, configure.in:
	Define NO_SAVED_IDS if we don't find seteuid()
	[e4506e81a]

	* config.h.in, configure, configure.in:
	Add back check for setreuid() since NSK doesn't have it.
	[224f05ad1]

	* sudoers.cat, sudoers.man.in:
	regen
	[d94c6f36b]

	* CHANGES:
	sync
	[4ffe050bc]

	* BUGS:
	sync
	[76fa9ce50]

	* parse.c:
	In sudoers_lookup() return VALIDATE_NOT_OK if the runas user was
	explicitly denied and the command matched. This fixes a
	long-standing bug and makes: foo machine = (ALL) /usr/bin/blah foo
	machine = (!bar) /usr/bin/blah

	equivalent to: foo machine = (ALL, !bar) /usr/bin/blah
	[5150db1db]

	* sudoers.pod:
	Clarify mail_noperm
	[406db89f1]

2004-05-20  Aaron Spangler  <aaron777@gmail.com>

	* Makefile.in:
	Missing DESTDIR in make install for sudo_noexec.la
	[12411c9c0]

2004-05-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in, visudo.cat,
	visudo.man.in:
	regen
	[1a998e47d]

	* TODO:
	sync
	[034ae50b8]

	* sudoers.pod:
	Remove fastboot/fasthalt (who still remembers these?) and add a
	minimal sudoedit example.
	[d0f638db7]

	* sample.sudoers:
	Remove fastboot/fasthalt (who still remembers these?) and add a
	minimal sudoedit example.
	[46e6dcf79]

	* UPGRADE, sudo.c, visudo.c:
	filesystem -> file system
	[e6f074282]

	* TROUBLESHOOTING:
	filesystem -> file system
	[2778555f3]

	* CHANGES, INSTALL:
	filesystem -> file system
	[1ba185ee6]

	* sudo.pod, sudoers.pod:
	Fix some minor typos and formatting goofs
	[c7d5a998d]

	* lex.yy.c:
	regen
	[b96c5e559]

	* visudo.pod:
	remove my email addr
	[e4e12a8fe]

	* sudo.pod, sudoers.pod, visudo.pod:
	Use @mansectform@ and @mansectsu@ everywhere Make man page
	references links with L<>
	[d5e0c4d82]

	* parse.lex:
	Accept quoted globbing characters and pass them verbatim for
	fnmatch()
	[53d91bcce]

	* UPGRADE:
	Document that /tmp/.odus is gone.
	[f6f6c0b79]

	* pathnames.h.in:
	No longer use /tmp/.odus as a possible timestamp dir unless
	specifically configured to do so. Instead, if no /var/run exists,
	use /var/adm/sudo or /usr/adm/sudo.
	[4467a95f4]

	* configure:
	No longer use /tmp/.odus as a possible timestamp dir unless
	specifically configured to do so. Instead, if no /var/run exists,
	use /var/adm/sudo or /usr/adm/sudo.
	[ed9475a8c]

	* aclocal.m4:
	No longer use /tmp/.odus as a possible timestamp dir unless
	specifically configured to do so. Instead, if no /var/run exists,
	use /var/adm/sudo or /usr/adm/sudo.
	[233fdc787]

	* CHANGES:
	No longer use /tmp/.odus as a possible timestamp dir unless
	specifically configured to do so. Instead, if no /var/run exists,
	use /var/adm/sudo or /usr/adm/sudo.
	[13050dc4d]

	* set_perms.c, sudo.c, tgetpass.c, visudo.c:
	Preliminary changes to support nsr-tandem-nsk. Based on patches from
	Tom Bates.
	[a6849607c]

	* logging.c:
	Preliminary changes to support nsr-tandem-nsk. Based on patches from
	Tom Bates.
	[b0a49825e]

	* check.c, compat.h:
	Preliminary changes to support nsr-tandem-nsk. Based on patches from
	Tom Bates.
	[51c9ed319]

2004-05-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	There was no 1.6.7p6.
	[1e7afec7f]

	* BUGS, CHANGES:
	sync
	[1862f550f]

	* Makefile.in:
	add missing files to DISTFILES
	[59de2968f]

	* sudo.cat, sudoers.cat, visudo.cat:
	regen
	[f4d073b89]

	* sudoers.man.in:
	regen
	[7366ce4da]

	* Makefile.in:
	Fix some line wrap and update (c) year
	[52d63d6d7]

2004-04-28  Aaron Spangler  <aaron777@gmail.com>

	* README.LDAP:
	Build Note
	[93bf2196c]

2004-04-07  Aaron Spangler  <aaron777@gmail.com>

	* Makefile.in:
	Fix install-dirs
	[fe449ba2b]

2004-04-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.tab.c:
	regen
	[a30d516f6]

	* visudo.c:
	In Exit() when used as a signal handler, emsg is a pointer so
	sizeof() is wrong so make it a #define instead. Also avoid using a
	negative exit value. Found by Aaron Campbell
	[2e121633d]

2004-03-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Remove bogus sentence about uids in a User_List. Document usernames
	vs. uid parsing in a Runas_List.
	[3b8dbaf49]

	* parse.c, parse.h, parse.yacc, sudo.c, testsudoers.c, visudo.c:
	If the user specified a uid with the -u flag and the uid exists in
	the passwd file, set runas_user to the name, not the uid.

	When comparing usernames in sudoers, if a name is really a uid
	(starts with '#') compare it numerically to pw_uid.
	[6190f376c]

2004-03-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/kerb5.c:
	krb5_mcc_ops should be const; Johnny C. Lam
	[631cbc285]

2004-02-28  Aaron Spangler  <aaron777@gmail.com>

	* CHANGES, config.h.in, ldap.c:
	Added start_tls support
	[42cfd5612]

2004-02-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Clean up libtool stuff for 'make distclean' and add def_data.c,
	def_data.h to PARSESRCS.
	[88b2dd450]

2004-02-14  Aaron Spangler  <aaron777@gmail.com>

	* strlcat.c, strlcpy.c:
	Un-Fix last license munge
	[cbfbde616]

2004-02-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[dee266e4d]

	* CHANGES, RUNSON, TODO:
	checkpoint
	[e938290a2]

	* lex.yy.c, sudo.tab.c:
	regen
	[a872ff046]

	* auth/passwd.c, auth/rfc1938.c, auth/secureware.c, auth/securid.c,
	auth/securid5.c, auth/sia.c, auth/sudo_auth.c, auth/sudo_auth.h,
	emul/search.h, emul/utime.h:
	More to a less restrictive, ISC-style license.
	[d2fa9af02]

	* auth/kerb5.c, auth/pam.c:
	More to a less restrictive, ISC-style license.
	[56b5cbc89]

	* auth/dce.c, auth/fwtk.c, auth/kerb4.c:
	More to a less restrictive, ISC-style license.
	[1a1009c06]

	* auth/bsdauth.c:
	More to a less restrictive, ISC-style license.
	[d58c9f6f9]

	* auth/afs.c, auth/aix_auth.c, zero_bytes.c:
	More to a less restrictive, ISC-style license.
	[a1fa5aec5]

	* sudoers.man.in, sudoers.pod, testsudoers.c, tgetpass.c, visudo.c,
	visudo.man.in, visudo.pod:
	More to a less restrictive, ISC-style license.
	[5befe6ddf]

	* sudo_noexec.c:
	More to a less restrictive, ISC-style license.
	[78fd7d420]

	* strlcat.c, strlcpy.c, sudo.c, sudo.h, sudo.man.in, sudo.pod,
	sudo_edit.c:
	More to a less restrictive, ISC-style license.
	[21e3ca9cf]

	* sigaction.c, strerror.c:
	More to a less restrictive, ISC-style license.
	[476c05aca]

	* ldap.c, logging.c, logging.h, parse.c, parse.h, pathnames.h.in,
	set_perms.c:
	More to a less restrictive, ISC-style license.
	[3a2282c92]

	* getspwuid.c, goodpath.c, ins_2001.h, ins_classic.h, ins_csops.h,
	ins_goons.h, insults.h, interfaces.c, interfaces.h:
	More to a less restrictive, ISC-style license.
	[fa96e1c86]

	* find_path.c, getprogname.c:
	More to a less restrictive, ISC-style license.
	[b8ae391a9]

	* fileops.c:
	More to a less restrictive, ISC-style license.
	[3e996375b]

	* env.c:
	More to a less restrictive, ISC-style license.
	[5a2e5144d]

	* defaults.h:
	More to a less restrictive, ISC-style license.
	[3be828f78]

	* LICENSE, Makefile.in, alloc.c, check.c, closefrom.c, compat.h,
	defaults.c:
	More to a less restrictive, ISC-style license.
	[5b217d36a]

	* utime.c, version.h:
	More to a less restrictive, ISC-style license.
	[8dccf8fcc]

	* parse.lex, parse.yacc:
	More to a less restrictive, ISC-style license.
	[5bc294b71]

	* Makefile.binary:
	More to a less restrictive, ISC-style license.
	[dda192f90]

2004-02-13  Aaron Spangler  <aaron777@gmail.com>

	* sudoers2ldif:
	Merged in LDAP Support
	[9f0dda088]

	* ldap.c, sudo.c, sudo.h:
	Merged in LDAP Support
	[b0226e939]

	* def_data.c, def_data.h, def_data.in:
	Merged in LDAP Support
	[240f4e031]

	* CHANGES, Makefile.in, README.LDAP, config.h.in, configure.in:
	Merged in LDAP Support
	[bd9be2cf0]

2004-02-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h, sudo_noexec.c:
	Only do "extern int errno" if errno is not a macro.
	[d80d2e29a]

2004-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* set_perms.c:
	setreuid(0, 0) fails on QNX if the euid is not already 0 so set the
	euid first, then just call setuid(0) to set the real uid too.
	[a622cb279]

	* set_perms.c:
	Use setresuid() and setreuid() for PERM_RUNAS when appropriate
	instead of seteuid() which may not exist.
	[7bc6df024]

2004-02-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE:
	2004
	[c7f9bb024]

	* INSTALL, config.h.in, configure, configure.in, ins_classic.h:
	Add --with-pc-insults configure option
	[3a4d28310]

	* visudo.man.in:
	Prefer VISUAL over EDITOR like old vipw did.
	[ff092a1a1]

2004-02-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.man.in, sudoers.man.in:
	regen
	[cb467e2a5]

	* sudoers.pod:
	Add a note that noexec is not a cure-all.
	[3a31bf974]

	* sudoers.pod:
	Mention that disabling "root_sudo" is pretty pointless.
	[c892061f0]

	* configure, configure.in:
	Substitute for root_sudo in sudoers.pod
	[a7039ea7b]

	* sudo.pod:
	Add sudoedit to the NAME section
	[be4bcc99c]

	* sudoers.pod:
	Document that fact that setting ignore_dot in sudoers has no effect
	due to the fact that find_path() is called *before* sudoers is read.
	[3802623a0]

2004-01-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_edit.c:
	Do not require _PATH_USRTMP to be set.
	[4716ea988]

	* BUGS, CHANGES, TODO:
	sync
	[926d3f5b5]

	* sudo.man.in:
	regen
	[9763592ef]

	* sudo.pod:
	Clarify that when sudo is run by root with the SUDO_USER variable
	set, the sudoers lookup happens for root and not the SUDO_USER user.
	[f452989c9]

2004-01-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c, auth/sudo_auth.c, interfaces.c, logging.c, parse.c,
	set_perms.c, sigaction.c, sudo.c, tgetpass.c:
	Use the SET, CLR and ISSET macros.
	[c4a8ab8b9]

	* fnmatch.c:
	Use the SET, CLR and ISSET macros.
	[fb5a1aa3a]

	* defaults.c, env.c:
	Use the SET, CLR and ISSET macros.
	[262bb5e87]

	* interfaces.h:
	MAIN was replaced with _SUDO_MAIN some time ago.
	[22c30e08d]

	* sudo.c:
	Don't look at prev_user until after we've parsed sudoers and done
	the password check. That way, if sudo/sudoedit is run from a root
	process that was invoked by sudo, we check sudoers for root, not the
	previous user. This makes sudoedit much more useful and means that
	for the sudo case, we get correct logging on who actually ran the
	command.
	[7a07ad864]

2004-01-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_edit.c:
	Add a comment describing why we need to be notified about our child
	stopping.
	[2af994ada]

2004-01-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* def_data.c, def_data.in:
	Update the noexec variable descriptions
	[04b8f60ca]

	* sudoers.man.in, sudoers.pod:
	noexec now replaces more than just execve()
	[5a972df0b]

	* sudo_noexec.c:
	Alas, all the world does not go through execve(2). Many systems
	still have an execv(2) system call, Linux 2.6 provides fexecve(2)
	and it is not uncommon for libc to have underscore ('_') versions of
	the functions to be used internally by the library. Instead of
	stubbing all these out by hand, define a macro and let it do the
	work. Extra exec functions pointed out by Reznic Valery.
	[4ad4ba174]

	* sudo.c, sudo_edit.c:
	Fix suspending the editor in -e mode. Because we do a fork() first
	we need to be notified when the child has been stopped and then send
	that same signal to ourself so the shell can do its job control
	thing.
	[5ccddf817]

	* visudo.c:
	Use WIFEXITED and WEXITSTATUS macros. If there are systems out there
	that want to run sudo that still don't support these we can try to
	deal with that later.
	[24155a405]

	* lex.yy.c:
	regen
	[6f2cfc2bc]

	* sudo.man.in, sudo.pod, sudoers.man.in, sudoers.pod:
	Document sudo -e / sudoedit
	[be8c6acf6]

	* configure, configure.in:
	fix typo
	[63e1f3dd9]

	* config.h.in, configure.in:
	Add SET/CLR/ISSET
	[2d21140a3]

2004-01-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Allow non-exclusive flags when invoked as sudoedit. Pretty print the
	long usage() line to not wrap (assumes 80 char display)
	[d1798a06b]

	* Makefile.in, sudo.c:
	If sudo is invoked as "sudoedit" the -e flag is implied and no other
	flags are permitted.
	[2be964efe]

	* sudo.h:
	Add a new flag, -e, that makes it possible to give users the ability
	to edit files with the editor of their choice as the invoking user,
	not the runas user. Temporary files are used for the actual edit and
	the temp file is copied over the original after the editor is done.
	[c7d74402f]

	* Makefile.in, parse.c, parse.lex, sudo.c, sudo_edit.c:
	Add a new flag, -e, that makes it possible to give users the ability
	to edit files with the editor of their choice as the invoking user,
	not the runas user. Temporary files are used for the actual edit and
	the temp file is copied over the original after the editor is done.
	[4dc5700a6]

	* env.c, sudo.c:
	If real uid == 0 and the SUDO_USER environment variables is set, use
	that to determine the invoking user's true identity. That way the
	proper info gets logged by someone who has done "sudo su" but still
	uses sudo to as root. We can't do this for non-root users since that
	would open up a security hole, though perhaps it would be acceptable
	to use getlogin(2) on OSes where this a system call (and doesn't
	just look in the utmp file).
	[8ab5b8c59]

	* pathnames.h.in:
	Add _PATH_TMP, _PATH_VARTMP and _PATH_USRTMP
	[cc7cfa707]

	* config.h.in, configure, configure.in:
	Add check for fchown(2)
	[f4a4d4c66]

2004-01-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Back out portions of the -i commit that set NewArgv[0] in
	set_runaspw. It is far to late to set NewArgv[0] there and will have
	no effect anyway as cmnd and safe_cmnd have already been set.
	[063c2812e]

	* visudo.c, visudo.pod:
	Prefer VISUAL over EDITOR like old vipw did.
	[f068ee01c]

2004-01-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c, sudo.c:
	In -i mode always set new environment based on the runas user's
	passwd entry.
	[3001e7f29]

2004-01-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.man.in, sudo.pod:
	Document the new -i flag and sync SYNOPSIS section with usage() in
	sudo.c. Also sort the flags in the OPTIONS section.
	[1b7cf30c7]

	* sudo.c, sudo.h:
	o Add -i that acts similar to "su -", based on patches from David J.
	MacKenzie o Sort the flags in the usage message
	[1ca6264df]

	* sudoers.man.in, sudoers.pod:
	Add a missing @runas_default@ substitution.
	[7471253e6]

2004-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Change euid to runas user before calling find_path(). Unfortunately,
	though runas_user can be modified in sudoers we haven't parsed
	sudoers yet.
	[c82381727]

	* sudoers.man.in, sudoers.pod:
	Add missing defintion of Parameter_List and use single pipes in the
	Defaults EBNF definition.
	[6def750d0]

	* sudo.c:
	Fix a bug when set_runaspw() is used as a callback. We don't want to
	reset the contents of runas_pw if the user specified a user via the
	-u flag.

	Avoid unnecessary passwd lookups in set_authpw(). In most cases we
	already have the info in runas_pw.
	[03f5f4087]

2004-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	Add Stan Lee / Uncle Ben quote to the lecture from RedHat
	[e404f54c2]

	* sudo.h:
	Update sudo_getepw() proto and add one for set_runaspw()
	[18027fa58]

	* parse.c:
	If we can't stat the command as root, try as the runas user instead.
	[69d47fe75]

	* testsudoers.c, visudo.c:
	Add stub set_runaspw() function
	[327729a7e]

	* sudo.c:
	Add set_runaspw() function to fill in runas_pw. This will be used as
	a callback to update runas_pw when the runas user changes.
	[febc09e14]

	* env.c, sudo.c:
	PERM_RUNAS -> PERM_FULL_RUNAS
	[ecfc81375]

	* set_perms.c, sudo.h:
	Rename PERM_RUNAS -> PERM_FULL_RUNAS and add a PERM_RUNAS that just
	changes the euid.
	[ceb3653d7]

	* getspwuid.c:
	Make sudo_pwdup() act like OpenBSD pw_dup() and allocate memory in
	one chunk for easy free()ing. Also change it from static to extern.
	[de6ff287e]

	* defaults.c, defaults.h:
	Add callback support
	[fb65156a7]

	* mkdefaults:
	Add a callback field and use it for runas_default
	[175e9e472]

	* def_data.c, def_data.in:
	Add a callback field and use it for runas_default
	[487cd96e0]

2004-01-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/fwtk.c:
	Add support for chalnecho and display server responses used by fwtk
	>= 2.0
	[ae1a984af]

2004-01-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.man.in, sudoers.pod:
	ld.so is ld.so.1 on solaris
	[db1196a91]

	* Makefile.in, config.h.in, configure, configure.in, sudo.c, sudo.h:
	Use closefrom() instead of doing the equivalent inline.
	[d55c3f63c]

	* closefrom.c:
	closefrom(3) for systems w/o it
	[a34078ac3]

2004-01-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.man.in:
	Update from .pod file.
	[c493bb6b6]

	* configure, configure.in:
	Substitute noexec_file for the sudoers man page
	[5c16da4f2]

	* sudo.man.in, sudo.pod:
	Mention noexec
	[051943b68]

	* sudoers.man.in, sudoers.pod:
	Document noexec
	[67ba09fcc]

	* auth/pam.c, config.h.in, configure.in:
	Move PAM_CONST macro definition from config.h to pam.c where it
	belongs. We can't have this in config.h since that gets included too
	early.
	[149862cd9]

	* auth/pam.c, config.h.in, configure, configure.in:
	Some PAM implementations put their headers in /usr/include/pam
	instead of /usr/include/security.
	[aa4eb97ed]

	* configure.in:
	I missed changing the EXEC macro -> EXECV here when I changed this
	in config.h.in and sudo.c a while ago.
	[5459af61d]

	* acsite.m4:
	OpenBSD vax/m88k/hppa don't do shared libs
	[fce2b7491]

	* configure, configure.in:
	o merge the hpux case entries into a single entry w/ its own
	sub-case statement. o HP-UX >= 11 support getspnam(), use it in
	preference to getprpwuid()
	[cd2bd25a8]

	* configure, configure.in:
	eval $shrext so that it expands nicely on MacOS X
	[0aaea9826]

	* Makefile.in:
	Don't lie about making a module, it does the wrong thing on mach
	[c18a2a32e]

	* ltmain.sh:
	Remove requirement that libs must begin with "lib". They don't when
	we point directly at the lib using LD_PRELOAD or its equivalent.
	[5206defd6]

	* acsite.m4:
	Disable support for c++, f77 and java. We don't need it, it takes a
	lot of time, and it hosed our check for shared lib support.
	[7e6fe46e9]

	* configure:
	regen
	[a71e4f169]

	* configure.in:
	Call AC_ENABLE_SHARED and check the status of enable_shared to know
	when shared libs are available.
	[f64956333]

	* acsite.m4:
	Duh, OpenBSD suports shared libs too
	[bede9b7b5]

	* config.h.in, configure.in:
	Only OpenPAM and Linux PAM use const qualifiers.
	[b106eabb4]

	* configure, configure.in:
	o No need to check for sed, libtool config does that for us o move
	check for --with-noexec until after libtool magic is run so we can
	use $can_build_shared and $shrext
	[9f8f030c5]

	* ltmain.sh:
	Don't print a bunch of crap about library installs since we are not
	really installing a library.
	[ad13250c2]

	* env.c:
	Make format_env() varargs Add noexec support for Darwin, MacOS X,
	Irix, and Tru64
	[230a54ebb]

	* acsite.m4, ltconfig, ltmain.sh:
	Update to libtool 1.5 with local changes: o no ldconfig in the
	finish step o assume no libprefix or version is needed
	[f192682f6]

	* sudo_noexec.c:
	Fix compilation under K&R
	[dd4acb880]

2004-01-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	checkpoint
	[63e8d52f5]

	* sudo_noexec.c:
	stub execve() that just returns EACCES; used for noexec
	functionality
	[e17ee88eb]

	* sudo.tab.h:
	Regen w/ updated byacc from OpenBSD; fixes a gcc 3.2 issue with
	generated code.
	[bac45090a]

	* sudo.tab.c:
	Regen w/ updated byacc from OpenBSD; fixes a gcc 3.2 issue with
	generated code.
	[a39a63f4f]

2004-01-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* def_data.c, def_data.h, def_data.in:
	Move the environment defaults to the end and shorten a few of the
	descriptions.
	[0f6749fa2]

	* configure, configure.in:
	no shared libs on ultris or convexos
	[8e796b909]

	* Makefile.in, configure, configure.in:
	Build sudo_noexec shared object using libtool; could use some
	cleanup.
	[d9b9d94c3]

	* acsite.m4, ltconfig, ltmain.sh:
	libtool scaffolding
	[9019ee7b4]

	* parse.yacc, sudo.tab.c:
	Merge the NOPASSWD/PASSWD and NOEXEC/EXEC rules so that order is not
	important.
	[db230cc52]

	* defaults.c, env.c, lex.yy.c, parse.c, parse.h, parse.lex,
	parse.yacc, pathnames.h.in, sudo.c, sudo.h, sudo.tab.c:
	update copyright year
	[8e421c95b]

	* configure, configure.in, defaults.c, env.c, pathnames.h.in:
	Add _PATH_SUDO_NOEXEC and corresponding --with-noexec configure
	option. The default value of noexec_file is set to this.
	[626e2cd20]

	* def_data.c, def_data.h, def_data.in, env.c, lex.yy.c, parse.c,
	parse.h, parse.lex, parse.yacc, sudo.c, sudo.h, sudo.tab.c,
	sudo.tab.h:
	Add support for preloading a shared object containing a dummy
	execve() function that just sets error and returns -1. This adds a
	"noexec_file" option to load the filename as well as a "noexec" flag
	to enable it unconditionally. There is also a NOEXEC tag that can be
	attached to specific commands and an EXEC tag to disable it.
	[7536a781f]

	* mkdefaults:
	add missing newline to usage statement
	[4d5ce6761]

	* config.h.in, sudo.c:
	Rename EXEC macro -> EXECV
	[caf389c2f]

	* logging.c:
	Don't truncate usernames to 8 characters in the log message.
	[e987e1152]

	* check.c, sudoers.man.in, sudoers.pod:
	Update copyright year
	[9eba370a0]

	* check.c, def_data.c, def_data.h, def_data.in, sudoers.man.in,
	sudoers.pod:
	Add a new option, lecture_file, that can be used to point to a
	custom sudo lecture.
	[b289f7387]

2003-12-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/aix_auth.c, auth/bsdauth.c, auth/fwtk.c, auth/pam.c,
	auth/sudo_auth.c:
	Add a zero_bytes() function to do the equivalent of bzero in such a
	way that will heopfully not be optimized away by sneaky compilers.
	[394423748]

	* zero_bytes.c:
	Add a zero_bytes() function to do the equivalent of bzero in such a
	way that will heopfully not be optimized away by sneaky compilers.
	[de5e16b22]

	* Makefile.in, sudo.h:
	Add a zero_bytes() function to do the equivalent of bzero in such a
	way that will heopfully not be optimized away by sneaky compilers.
	[b2550741c]

	* err.c:
	Use #ifdef __STDC__, not #if __STDC__.
	[617ac8a3c]

2003-12-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkdefaults:
	Always put at least one space between the def_* macro name and its
	definition.
	[1cb570327]

	* configure, configure.in:
	Adjust code for --without-lecture to match new values.
	[ffbc43afb]

	* visudo.man.in:
	regen after pasto fix
	[e34adcc2c]

	* sudoers.man.in, sudoers.pod:
	Document that "lecture" has changed from a flag to a tuple.
	[3062ac665]

	* check.c, def_data.c, def_data.h, def_data.in, defaults.c,
	defaults.h, logging.c, mkdefaults, parse.c, sudo.c, sudo.h:
	Add support for tuples in def_data.in; these are implemented as an
	enum type. Currently there is only a single tuple enum but in the
	future we may have one tuple enum per T_TUPLE entry in def_data.in.
	Currently listpw, verifypw and lecture are tuples. This avoids the
	need to have two entries (one ival, one str) for pwflags and syslog
	values.

	lecture is now a tuple with the following values: never, once,
	always

	We no longer use both an int and string entry for syslog facilities
	and priorities. Instead, there are logfac2str() and logpri2str()
	functions that get used when we need to print the string values.
	[02f37dc2d]

	* auth/aix_auth.c, auth/bsdauth.c, auth/fwtk.c, auth/pam.c,
	auth/rfc1938.c, auth/securid5.c, auth/sia.c, auth/sudo_auth.c,
	check.c, def_data.h, defaults.c, defaults.h, env.c, find_path.c,
	logging.c, mkdefaults, parse.c, parse.yacc, set_perms.c, sudo.c,
	sudo.tab.c, visudo.c:
	Create def_* macros for each defaults value so we no longer need the
	def_{flag,ival,str,list,mode} macros (which have been removed). This
	is a step toward more flexible data types in def_data.in.
	[6ad252765]

	* TODO:
	checkpoint
	[45fe0a6cc]

2003-12-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	If we are in -k/-K mode, just spew to stderr. It is not unusual for
	users to place "sudo -k" in a .logout file which can cause sudo to
	be run during reboot after the YP/NIS/NIS+/LDAP/etc daemon has died.
	Previously, this would result in useless mail and logging.
	[7f773be1f]

2003-12-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.pod:
	fix pasto in VISUAL description
	[ccef4e334]

2003-12-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[0ce9403a4]

	* CHANGES:
	checkpoint
	[cb081ff5e]

	* TROUBLESHOOTING:
	Some OSes (like Solaris) allow export w/ nosuid too
	[53a38fc56]

2003-08-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h:
	We don't use FD_ZERO anymore so just define FD_SET (if not already
	there).
	[769b205c0]

2003-06-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	Fix a core dump on Solaris by preserving the pam_handle_t we used
	during authentication for pam_prep_user(). If we didn't authenticate
	(ie: ticket still valid), we call pam_init() from pam_prep_user().
	This is something of a hack; it may be better to change the auth API
	and add an auth_final() function that acts like pam_prep_user().
	[d619fd43a]

2003-06-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* set_perms.c:
	Add explicit declaration of printerr variable in function header
	(was defaulting to int which is OK but oh so K&R :-). From Theo.
	[8cd9f4f1e]

2003-06-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure.in:
	s/HAVE_STOW/USE_STOW/
	[e52feabd4]

	* logging.c:
	Also exit waitpid() loop when pid == 0. Fixes a problem where the
	sudo process would spin eating up CPU until sendmail finished when
	it has to send mail.
	[27ad285a0]

2003-05-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* fnmatch.c:
	Remove advertising clause, UCB has disavowed it
	[7e53863e5]

	* fnmatch.3:
	Remove advertising clause, UCB has disavowed it
	[bdb69602e]

2003-05-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	Don't assume that getgrnam() calls don't modify contents of struct
	passwd returned by getpwnam(). On FreeBSD w/ NIS this can happen.
	Based on a patch from Kirk Webb.
	[40b63be2f]

2003-05-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	missing ;;
	[61e7453f8]

	* configure.in:
	darwin has a broken setreuid() in at least some versions
	[8dc823861]

	* env.c:
	Fix an off by one error when reallocating the environment; Kevin Pye
	[684f62dd0]

2003-04-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Fix User_Spec definition; SEKINE Tatsuo
	[c917da1cc]

2003-04-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* HISTORY:
	More info on the early days from Coggs.
	[04b402662]

2003-04-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/kerb5.c:
	remove errant semicolon that prevented compilation under heimdal
	[c03ffb197]

2003-04-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* testsudoers.c, tgetpass.c, visudo.c, visudo.man.in, visudo.pod:
	add DARPA credit on affected files
	[4e74e8c53]

	* sudoers.pod:
	add DARPA credit on affected files
	[58db01577]

	* sigaction.c, strerror.c, sudo.c, sudo.h, sudo.man.in, sudo.pod,
	sudoers.man.in:
	add DARPA credit on affected files
	[f13528b0b]

	* set_perms.c:
	add DARPA credit on affected files
	[69ac0e56c]

	* pathnames.h.in:
	add DARPA credit on affected files
	[58596112c]

	* logging.c, parse.c:
	add DARPA credit on affected files
	[a76a79f6d]

	* auth/passwd.c, auth/rfc1938.c, auth/secureware.c, auth/securid.c,
	auth/securid5.c, auth/sia.c, auth/sudo_auth.c, fileops.c,
	find_path.c, getprogname.c, getspwuid.c, goodpath.c, interfaces.c,
	interfaces.h:
	add DARPA credit on affected files
	[505b424a5]

	* auth/kerb5.c, auth/pam.c:
	add DARPA credit on affected files
	[8b45d6459]

	* auth/afs.c, auth/aix_auth.c, auth/bsdauth.c, auth/dce.c,
	auth/fwtk.c, auth/kerb4.c, parse.lex, parse.yacc, utime.c,
	version.h:
	add DARPA credit on affected files
	[94567681a]

	* env.c:
	add DARPA credit on affected files
	[c6c8c9951]

	* defaults.c, defaults.h:
	add DARPA credit on affected files
	[34479303a]

	* compat.h:
	add DARPA credit on affected files
	[492367bd6]

	* Makefile.in, alloc.c, check.c:
	add DARPA credit on affected files
	[6c51ebd37]

	* LICENSE:
	slightly different wording for the darpa credit
	[f9b6bdba4]

2003-04-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE:
	Add DARPA credit
	[2b7ed974d]

2003-04-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/kerb5.c:
	Use krb5_princ_component() instead of krb5_princ_realm() for MIT
	Kerberos like we did before I messed things up ;-)

	Use krb5_principal_get_comp_string() to do the same thing w/
	Heimdal. I'm not sure if the component should be 0 or 1 in this
	case.

	#define ENCTYPE_DES_CBC_MD5 ETYPE_DES_CBC_MD5 for Heimdal since
	older versions lack ENCTYPE_DES_CBC_MD5. This is gross and there
	should be a configure check for this I guess.
	[4a2da4c96]

2003-04-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sample.sudoers:
	builtin -> built-in; Jason McIntyre
	[86febe03a]

	* TROUBLESHOOTING, config.h.in, configure, configure.in:
	builtin -> built-in; Jason McIntyre
	[e6ec7f337]

	* sudoers.pod:
	built in -> built-in; Jason McIntyre
	[8d146fae7]

2003-04-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	checkpoint for 1.6.7p3
	[28eca61dd]

	* HISTORY:
	Update info on the early years @ SUNY-Buffalo from Cliff Spencer.
	Amazingly, sudo source from 1985 is available via groups.google.com
	[6b941870e]

	* sudo.c:
	Don't change rl.rlim_max for RLIMIT_CORE. We need only set
	rl.rlim_cur to 0 to turn off core dumps. This may be needed for the
	RLIMIT_CORE restoration on some OSes.
	[e15de8443]

2003-04-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/kerb5.c:
	Make this compile on Heimdal and MIT Kerberos 5
	[cfeec138e]

	* config.h.in, configure, configure.in:
	Check for heimdal even if we found krb5-config and define
	HAVE_HEIMDAL.
	[fab224f42]

	* auth/kerb5.c:
	Replace ETYPE_DES_CBC_MD5 with ENCTYPE_DES_CBC_MD5. The former is no
	longer defined by MIT kerb5 (though it used to be and indeed remains
	so in Heimdal).
	[d22075714]

2003-04-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkinstalldirs:
	Remove newer stuff that passes multiple (possibly duplicate)
	directories to "mkdir -p" since that seems to break on Tru64 Unix at
	least. This basically brings back what shipped with sudo 1.6.6.
	[941162deb]

2003-04-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/kerb5.c:
	Correct number of args to krb5_principal_get_realm() and fix an
	unclosed comment that hid the bug.
	[58887b76b]

	* configure:
	regen
	[ce070cdc6]

	* configure.in:
	++version
	[c18486069]

	* README:
	++version
	[2a37e9d95]

	* Makefile.in:
	++version
	[12694ed15]

	* INSTALL.binary:
	++version
	[c8459f7d1]

	* INSTALL:
	++version
	[50b48929c]

	* CHANGES, version.h:
	++version
	[6cb95ca0b]

	* BUGS:
	++version
	[539a65cde]

	* configure.in:
	use krb5-config to determine Kerberos V details if it exists
	[7a15e5079]

	* alloc.c, auth/fwtk.c, auth/rfc1938.c, auth/securid.c,
	auth/securid5.c, auth/sia.c, check.c, compat.h, defaults.c, env.c,
	find_path.c, interfaces.c, logging.c, parse.c, sudo.c, sudo.h,
	testsudoers.c, visudo.c:
	Use warn/err and getprogname() throughout. The main exception is
	openlog(). Since the admin may be filtering logs based on the
	program name in the log files, hard code this to "sudo".
	[dcf1a5acc]

	* Makefile.in:
	Add getprogname.c and err.c
	[4afe01580]

	* configure:
	regen
	[fd5d6e943]

	* config.h.in, configure.in:
	Add checks for getprognam(), __progname and err.h
	[d64a83b41]

	* emul/err.h:
	For systems withour err/warn functions.
	[b51c12411]

	* err.c:
	For systems withour err/warn functions.
	[0eaddf3e8]

	* getprogname.c:
	For systems neither getprogname() nor __progname; uses Argv[0].
	[c5aa05992]

2003-04-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	checkpoint for 1.6.7p1
	[ad200188f]

	* sudo.c, testsudoers.c:
	fix strlcpy() rval check (innocuous)
	[632dbebef]

	* check.c:
	oflow detection in expand_prompt() was faulty (false positives). The
	count was based on strlcat() return value which includes the length
	of the entire string.
	[f761cef5c]

2003-03-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON, TODO:
	checkpoint for the sudo 1.6.7 release
	[d529fea7b]

	* CHANGES:
	checkpoint for the sudo 1.6.7 release
	[ea6c2c1cc]

2003-03-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	g/c unused variable
	[fff31a8a5]

	* configure:
	regen
	[b16eb4722]

	* configure.in:
	use man sections 8 and 5 for csops
	[aa698f905]

2003-03-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[c827a73ae]

	* configure.in:
	Add -lskey or -lopie directly to SUDO_LIBS instead of having
	AC_CHECK_LIB() add them to LIBS. Fixes visudo linkage.
	[8cc257b59]

	* configure:
	regen
	[cf8618c7a]

	* configure.in:
	Add --with-blibpath for AIX. An alternate libpath may be specified
	or -blibpath support can be disabled. Also change conifgure such
	that -blibpath is not specified if no -L libpaths were added to
	SUDO_LDFLAGS.
	[ed7cfdc1c]

	* aclocal.m4:
	Add --with-blibpath for AIX. An alternate libpath may be specified
	or -blibpath support can be disabled. Also change conifgure such
	that -blibpath is not specified if no -L libpaths were added to
	SUDO_LDFLAGS.
	[02b4fa769]

	* INSTALL:
	Add --with-blibpath for AIX. An alternate libpath may be specified
	or -blibpath support can be disabled. Also change conifgure such
	that -blibpath is not specified if no -L libpaths were added to
	SUDO_LDFLAGS.
	[936e8b501]

	* configure.in:
	add AIX blibpath support
	[0a2de952a]

	* INSTALL, configure.in:
	--with-skey and --with-opie now take an option directory argument
	This obsoletes a --with-csops hack (/tools/cs/skey)

	Also remove the remaining direct uses of "echo"
	[e7759a8b0]

2003-03-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	Detect KTH Kerberos IV and deal with it. Also make -lroken optional
	for KTH Kerberos IV and V.
	[67837e50c]

	* aclocal.m4:
	Add SUDO_APPEND_LIBPATH function that add -L/path/to/dir (and
	-R/path/to/dir if $with_rpath) to the specified variable.
	[4b1013f82]

	* INSTALL, configure.in:
	Add -R/path/to/libs for Solaris and SVR4. There is a new configure
	option, --with-rpath to control this behavior.
	[9e6f38062]

	* configure.in:
	for kerb4 put libdes after libkrb on the link line
	[a41cbc597]

	* auth/kerb4.c:
	typo
	[c4dd20ab7]

	* configure.in:
	fix kerberos lib check when a path is specified
	[0343559c5]

	* logging.c:
	Fix boolean thinko in SIGCHLD reaper and call reapchild after
	sending mail instead of doing a conditional sudo_waitpid.
	[a7d746af2]

2003-03-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[2897c23e9]

	* configure.in:
	replace =DIR with [=DIR] where sensible
	[a23a3d77b]

	* configure.in:
	o Use AC_MSG_* instead of "echo" o New Kerberos include/lib
	detection based on openssh's configure.in
	[02cde4645]

	* INSTALL:
	--with-kerb4 and --with-kerb5 now take an optional argument.
	[6aac4105f]

2003-03-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/securid.c:
	Kill remaining strcpy(), the programmer's guide says username is 32
	bytes.
	[ecee62038]

	* auth/kerb4.c:
	trat uid_t as unsigned long for printf and use snprintf, not sprintf
	[d2ced184e]

	* auth/rfc1938.c:
	use snprintf
	[dc39c5650]

2003-03-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/afs.c, auth/aix_auth.c, auth/bsdauth.c, auth/dce.c,
	auth/fwtk.c, auth/kerb4.c, auth/kerb5.c, auth/pam.c, auth/passwd.c,
	auth/rfc1938.c, auth/sudo_auth.c:
	update copyright year
	[d6a9e16d9]

	* sudo.man.in, sudoers.man.in, visudo.man.in:
	update copyright year
	[150aec798]

	* LICENSE, Makefile.in, aclocal.m4, alloc.c, check.c, compat.h,
	configure.in, env.c, find_path.c, interfaces.c, logging.c, parse.c,
	parse.lex, parse.yacc, set_perms.c, sudo.c, sudo.h, sudo.pod,
	sudoers.pod, testsudoers.c, version.h, visudo.c, visudo.pod:
	update copyright year
	[48229cbac]

	* check.c, env.c, sudo.c:
	Cast [ug]ids to unsigned long and printf with %lu
	[b18a141ae]

	* configure:
	regen
	[eafc58b26]

	* configure.in:
	correct error messages for --with-sudoers-{mode,uid,gid}
	[bc400ffbf]

	* alloc.c:
	make the malloc(0) error specific to each function to aid tracking
	down bugs.
	[bb2c3323d]

	* alloc.c:
	deal with platforms where size_t is signed and there is no SIZE_MAX
	or SIZE_T_MAX
	[8d8b59796]

	* auth/kerb5.c:
	Make this compile w/ Heimdal and fix some gcc warnings.
	[80013dd91]

	* sudo.c:
	Use stat_sudoers macro so --with-stow can work
	[4b7b3c7f5]

	* INSTALL, config.h.in, configure, configure.in:
	Add support for --with-stow based on patches from Robert Uhl
	[7b124c5de]

	* env.c:
	fix indentation
	[7e05ae7a3]

	* configure.in:
	back out rev 1.352
	[18f3cfdf6]

	* lex.yy.c:
	regen
	[37a1bfccd]

	* parse.lex:
	use strlcpy, not strncpy
	[cc5cc0765]

	* set_perms.c:
	Fix typo; check pw_uid, not pw_gid after setusercontext() failure.
	[2aec2bd72]

	* logging.c:
	use pid_t
	[f4b5af8da]

2003-03-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* strlcat.c, strlcpy.c:
	Make gcc shutup about unused rcsid
	[4e1b157c5]

	* interfaces.c:
	Move the n == 0 check for the non-getifaddrs cas
	[0932bf305]

	* auth/rfc1938.c:
	skeychallenge() on NetBSD take a size parameter
	[27ffee8ac]

	* configure:
	regen
	[9cafae7a6]

	* configure.in:
	put -ldl after -lpam, not before; fixes static linking on Linux
	[50b049dcc]

	* interfaces.c:
	Avoid malloc(0) and fix the loop invariant for the getifaddrs()
	case.
	[debf9f09c]

	* sudo.cat, sudoers.cat, visudo.cat:
	regen
	[af7c4632f]

	* sudo.man.in, sudoers.man.in, visudo.man.in:
	regen
	[7aa90a9bb]

	* Makefile.in:
	Preserve copyright notice from .pod file in .man.in file
	[fc65ea65c]

	* visudo.pod:
	Add sudoers(5) to SEE ALSO
	[e0037d9ad]

2003-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lex.yy.c:
	regen
	[8656452ca]

	* parse.lex:
	Don't assume libc can realloc() a NULL string. If malloc/realloc
	fails, make sure we just return; yyerror() is not terminal.
	[a01f25b5f]

	* lex.yy.c:
	regen
	[1725de877]

	* parse.lex:
	simplify fill_args a little and use strlcpy for paranoia
	[9ae8aadee]

	* sudo.tab.c:
	regen
	[a822179f5]

	* check.c, env.c, find_path.c, parse.c, parse.yacc, sudo.c,
	testsudoers.c:
	Use strlc{at,py} for paranoia's sake and exit on overflow. In all
	cases the strings were either pre-allocated to the correct size of
	length checks were done before the copy but a little paranoia can go
	a long way.
	[eebc763bd]

	* sudo.h:
	Add strlc{at,py} protos
	[a54c8e66f]

	* env.c, interfaces.c:
	Use erealloc3()
	[7ce95c61c]

	* configure:
	regen
	[006e64f61]

	* alloc.c:
	Oflow test of nmemb > SIZE_MAX / size is fine (don't need >=). Use
	memcpy() instead of strcpy() in estrdup() so this is strcpy()-free.
	[5b40c964d]

	* sudo.c:
	snprintf() a uid as %lu, not %ld to match the MAX_UID_T_LEN test in
	configure.
	[96376b6d4]

	* aclocal.m4:
	In MAX_UID_T_LEN test cast uid_t to unsigned long, just unsigned.
	[4df44eea5]

2003-03-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Use snprintf() for paranoia
	[804caf395]

	* parse.yacc:
	Use emalloc2 and erealloc3
	[35b2800a8]

	* Makefile.in:
	strlc{at,py} for those w/o it
	[6cb46fd4e]

	* strlcat.c, strlcpy.c:
	stlc{at,py} for those w/o it.
	[cfa77cede]

	* config.h.in, configure, configure.in:
	Add stlc{at,py} for those w/o it.
	[285791c42]

	* alloc.c, sudo.h:
	Add erealloc3(), a realloc() version of emalloc2().
	[838ec0a2c]

	* interfaces.c, sudo.c:
	Use emalloc2() to allocate N things of a certain size.
	[c96a62e26]

	* alloc.c, sudo.h:
	Add emalloc2() -- like calloc() but w/o the bzero and with
	error/oflow checking.
	[8b4248529]

	* alloc.c:
	Error out on malloc(0); suggested by theo
	[8e041c3f3]

2003-03-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	fix a typo; David Krause
	[450a56193]

2003-03-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod:
	fix typo
	[fc387e982]

2003-03-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Remove DYLD_ from the environment for MacOS X; from bbraun
	[466216fe8]

2003-03-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure.in:
	not not; Anil Madhavapeddy
	[7a7a5fe2e]

2003-01-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod, sudoers.pod, visudo.pod:
	typos; jmc@openbsd.org
	[4a48a0f67]

2003-01-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	Add some missing ';' rule terminators that bison warns about.
	[b34e37390]

	* config.sub:
	fix typo I introduced in last merge
	[5478ef4e2]

	* configure:
	regenerate with autoconf 2.57
	[f1b032925]

	* config.h.in:
	Add missing "$HOME"
	[dfd0d2829]

	* configure.in:
	Add some more square backets to make autoconf 2.57 happy
	[cf76450ae]

	* config.sub, mkinstalldirs:
	Updates from autoconf-2.57
	[fe79cba0b]

	* config.guess:
	Updates from autoconf-2.57
	[e73dd504b]

2003-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.tab.h:
	regen
	[270e6cab7]

	* lex.yy.c, sudo.tab.c:
	regen
	[26d9f4856]

	* parse.lex, parse.yacc, sudoers.pod:
	Add support for Defaults>RunasUser
	[a8153f4d5]

2003-01-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	fclose() yyin after each yyparse() is done and use fopen() instead
	of using freopen().
	[6e118c64b]

	* parse.lex:
	Better fix for sudoers files w/o a newline before EOF. It looks like
	the issue is that yyrestart() does not reset the start condition to
	INITIAL which is an issue since we parse sudoers multiple times.
	[8b3c38d20]

2003-01-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.lex:
	Work around what appears to be a flex bug when dealing with files
	that lack a final newline before EOF. This adds a rule to match EOF
	in the non-initial states which resets the state to INITIAL and
	throws an error.
	[cce84a181]

	* visudo.c:
	o The parser needs sudoers to end with a newline but some editors
	(emacs) may not add one. Check for a missing newline at EOF and add
	one if needed. o Set quiet flag during initial sudoers parse (to get
	options) o Move yyrestart() call and always use freopen() to open
	yyin after initial sudoers parse.
	[35cf881d7]

2002-12-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* set_perms.c:
	Fix pasto/thinko in setresgid()/setregid() usage. Want to set
	effective gid, not real gid, when reading sudoers.
	[e27e963f2]

	* set_perms.c:
	don't compile set_perms_posix if we have setreuid or setresuid
	[1996179bf]

2002-12-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod, sudoers.pod:
	document new prompt escapes
	[3bfbd4b1e]

	* check.c:
	Add %U and %H escapes and redo prompt rewriting. "%%" now gets
	collapsed to "%" as was originally intended. This also gets rid of
	lastchar (does lookahead instead of lookback) which should simplify
	the logic slightly.
	[0b0f8d6d3]

2002-12-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	Write the prompt *after* turning off echo to avoid some password
	characters being echoed on heavily-loaded machines with fast
	typists.
	[4f9ed308f]

	* config.sub:
	Add support for mipseb; wiz@danbala.tuwien.ac.at
	[412151ce7]

	* configure.in:
	Fix IRIX fallout from name changes in man dir/sect Makefile
	variables. Patch from erici AT motown DOT cc DOT utexas DOT edu
	[c8fa23112]

	* auth/pam.c:
	Keep a local copy of tgetpass_flags so we don't add in TGP_ECHO to
	the global copy. Problem noted by Peter Pentchev.
	[b49046433]

2002-11-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.tab.c:
	regen
	[d26b60827]

	* parse.yacc:
	Add missing yyerror() calls; YYERROR does not seem to call this for
	us.
	[5bf742d28]

2002-11-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	fix typo in comment; Pedro Bastos
	[897b55137]

2002-11-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	document --disable-setresuid
	[f7e953201]

	* auth/aix_auth.c, auth/bsdauth.c, auth/fwtk.c, auth/pam.c,
	auth/sudo_auth.c:
	Sprinkle some volatile qualifiers to prevent over-enthusiastic
	optimizers from removing memset() calls.
	[abb4e1ad3]

	* logging.c, parse.yacc:
	minor sign fixes pointed out by gcc -Wsign-compare
	[fd140ff5d]

	* set_perms.c, sudo.c, sudo.h:
	Revamp set_perms. We now use a version based on setresuid() or
	setreuid() when possible since that allows us to support the
	stay_setuid option and we always know exactly what the semantics
	will be (various Linux kernels have broken POSIX saved uid support).
	[b152da4cd]

	* config.h.in, configure:
	regen from configure.in
	[2de61320b]

	* configure.in:
	Add checks for setresuid() and a way to disable using it
	[736660571]

	* compat.h:
	No long need to emulate set*[ug]id() via setres[ug]id() or
	setre[ug]id(). The new set_perms stuff only uses things it knows are
	there.
	[351fcc138]

	* sudo.c:
	Before exec, restore state of signal handlers to be the same as when
	we were initialy invoked instead of just reseting to SIG_DFL. Fixes
	a problem when using sudo with nohup. Based on a patch from Paul
	Markham.
	[faabf3bac]

	* sudo.c:
	o timestamp_uid should be uid_t, not int o clarify error message
	when sudo is run by root and no_root_sudo is set
	[4f2d87e28]

2002-09-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README:
	update ftp link for bison
	[06cd79be8]

2002-07-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* set_perms.c:
	Error out if setusercontext() fails and the runas user is not root.
	[d497949e6]

2002-05-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/securid5.c:
	Fix rcsid
	[3437e96a3]

	* configure.in:
	Fix SecurID API test
	[9c2e0aeda]

2002-05-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	typo in comment
	[f3ddf66e0]

	* configure.in:
	securid5 stuff needs pthreads. Just adding -lpthread is suboptimal
	but I don't see a better way at the moment.
	[ef8c99a5f]

	* Makefile.in, auth/securid5.c:
	SecurID API version 5 support from Michael Stroucken
	[16547b2ef]

	* configure.in:
	Add check for SecurID 5.0 API
	[1039ff788]

2002-05-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* strerror.c:
	We actually do still need config.h to get the 'const' definition for
	K&R C.
	[09f5d0a46]

2002-05-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen with autoconf 2.5.3
	[109155726]

	* configure.in:
	Don't set sysconfdir to '/etc' if the user has specified a --prefix.
	[80f50dbc4]

	* configure.in:
	Some fixes for autoconf 2.53 from Robert Uhl o don't AC_SUBST
	LIBOBJS o force a 4th arg for AC_CHECK_HEADER() to workaround a bug
	[ac8ca82f0]

	* env.c, sudo.c, sudo.h:
	No need for dump_badenv() now that dump_defaults() knows how to dump
	lists.
	[0f60107a1]

	* BUGS, INSTALL, INSTALL.binary, Makefile.in, README, configure.in,
	version.h:
	++version
	[ed4f749c7]

	* sudoers.pod:
	document timestampowner
	[cd4ec1d2b]

	* check.c:
	Don't call set_perms() when doing timestamp stuff unless
	timestamp_uid != 0.
	[982218c34]

	* auth/sudo_auth.c, check.c, logging.c, parse.c, set_perms.c,
	sudo.c, sudo.h, testsudoers.c:
	g/c second arg to set_perms--it is no longer used
	[c28915995]

2002-05-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c, set_perms.c, sudo.c, sudo.h:
	Add support for non-root timestamp dirs. This allows the timestamp
	dir to be shared via NFS (though this is not recommended).
	[a30951d34]

	* def_data.c, def_data.h, def_data.in:
	Add timestampowner, "Owner of the authentication timestamp dir"
	[15965c2ce]

2002-05-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Don't try to pre-compute the size of the new envp, just allocate
	space up front and realloc as needed. Changes to the new env pointer
	must all be made through insert_env() which now keeps track of
	spaced used and allocates as needed.
	[3f7d80188]

2002-04-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[4160f7eb7]

	* configure.in:
	Fix two typo/pastos; from jrj@purdue.edu
	[e0a5ce978]

2002-04-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL.binary, README:
	++version
	[cc8a177c9]

	* configure, sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in,
	visudo.cat, visudo.man.in:
	regen
	[da7384a0e]

	* CHANGES, RUNSON, TODO:
	Sync with 1.6.6
	[853669984]

	* check.c:
	The the loop used to expand %h and %u, the lastchar variable was not
	being initialized. This means that if the last char in the prompt is
	'%' and the first char is 'h' or 'u' a extra copy of the host or
	user name would be copied, for which space had not been allocated.
	[db63aefb2]

2002-04-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, INSTALL, Makefile.in, configure.in, version.h:
	crank version to 1.6.6
	[d9bb746df]

	* auth/afs.c:
	#undef VOID to get rid of an AFS warning
	[763db0e63]

	* env.c:
	Use easprintf instead of emalloc + sprintf for some things.
	[a57620762]

2002-03-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lex.yy.c, sudo.tab.c:
	regen
	[08ee411a6]

	* parse.c, parse.lex, parse.yacc, testsudoers.c:
	Remove Chris Jepeway's email address so people don't bug him ;-)
	[7cc2f3b3e]

2002-03-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Move endpwent() to be after set_perms(PERM_RUNAS, ...) and also call
	endgrent() at the same time.
	[99cc62452]

2002-02-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	Make it clear which configure options take arguments.
	[1c23b1b68]

2002-01-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h:
	HP-UX 9.x has RLIMIT_* but no RLIM_INFINITY. If there is no
	RLIM_INFINITY, just pretend it is -1. This works because we only
	check for RLIM_INFINITY and do not set anything to that value.
	[d1bb1bc09]

2002-01-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	Zero and free allocated memory when there is a conversation error.
	[ef1f01874]

	* auth/bsdauth.c:
	Use sigaction() not signal()
	[33efe1270]

	* INSTALL:
	Mention that some linux kernels have broken POSIX saved ID support
	[da6aa6157]

	* CHANGES:
	checkpoint for 1.6.5p2
	[1ec9784be]

	* configure:
	regen
	[7748f4b4e]

	* configure.in:
	Add --disable-setreuid flag
	[5a186c346]

	* INSTALL:
	Document new --disable-setreuid option and change description for
	--disable-saved-ids to match new error message.
	[2292a1d2f]

	* set_perms.c:
	fatal() now takes an argument that determines whether or not to call
	perror().
	[bf0aa0ae7]

	* TROUBLESHOOTING:
	Update for new error messages from set_perms()
	[86a50f8ca]

	* PORTING:
	Update for new error messages from set_perms()
	[6dea05aa2]

2002-01-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	Make this compile w/o warnings
	[d195bd7f1]

	* auth/pam.c:
	Mention that we can't use pam_acct_mgmt()
	[a61088a43]

	* auth/aix_auth.c, auth/bsdauth.c, auth/fwtk.c, auth/pam.c:
	The user's password was not zeroed after use when AIX
	authentication, BSD authentication, FWTK or PAM was in use.
	[0ebe32423]

2002-01-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	Avoid giving PAM a NULL password response, use the empty string
	instead. This avoids a log warning when the user hits ^C at the
	password prompt when PAM is in use.
	[73979f1a2]

	* auth/pam.c:
	Don't check the return value of pam_setcred(). In Linux-PAM 0.75
	pam_setcred() returns the last saved return code, not the return
	code for the setcred module. Because we haven't called
	pam_authenticate(), this is not set and so pam_setcred() returns
	PAM_PERM_DENIED.
	[3a6c0ea2e]

	* Makefile.in:
	Don't need a '/' between $(DESTDIR) and a directory.
	[3646887d5]

	* Makefile.binary:
	Don't need a '/' between $(DESTDIR) and a directory.
	[839cd24a8]

2002-01-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[c0eb8bfd9]

	* configure.in:
	o BSDi also has a bogus setreuid() o Old FreeBSD has a bogus
	setreuid() o new NetBSD has a real setreuid() o add check for
	freeifaddrs() if getifaddrs() exists.
	[1c9139457]

	* config.h.in, interfaces.c:
	Older BSDi releases lack freeifaddrs() so add a test for that and if
	it is not present just use free().
	[35014b44b]

2002-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, RUNSON:
	Checkpoint for 1.6.5p1
	[10a86c771]

	* auth/passwd.c:
	Return AUTH_FAILURE in passwd_init() if skeyaccess() denies access
	to normal passwords, not AUTH_FATAL (which just causes an exit).
	[05d1f0290]

	* visudo.c:
	Don't use memory after it has been freed.
	[1b6bfbf45]

	* auth/passwd.c:
	skeyaccess() wants a struct passwd * not a char *; Patch from
	Phillip E. Lobbes
	[437464847]

	* BUGS:
	++version
	[aba0e43da]

	* CHANGES, RUNSON, TODO:
	checkpoint for sudo 1.6.5
	[ea2bfc5fd]

2002-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[a7a5dc39f]

	* INSTALL, INSTALL.binary, Makefile.in, README, configure.in:
	version 1.6.5
	[b72dadcb9]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in, visudo.cat,
	visudo.man.in:
	sudo version 1.6.5
	[16472afa0]

	* logging.c:
	o when invoking the mailer as root use a hard-coded environment that
	doesn't include any info from the user's environment. Basically
	paranoia.

	o Add support for the NO_ROOT_MAILER compile-time option and run the
	mailer as the user and not root if NO_ROOT_MAILER is defined.
	[261f81907]

	* set_perms.c, sudo.h:
	Bring back PERM_FULL_USER
	[fec1b63ca]

	* configure:
	regen
	[7b2219c08]

	* version.h:
	version 1.6.5
	[4d48d93a7]

	* INSTALL, config.h.in, configure.in:
	Add --disable-root-mailer option to run the mailer as the user and
	not root.
	[0aac4f03b]

	* CHANGES:
	checkpoint for 1.6.4p2
	[5694aa532]

	* PORTING:
	Mention the "seteuid(0): Operation not permitted" problem here too
	just for good measure.
	[c12bb733b]

2002-01-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c, getspwuid.c, sudo.c:
	The SHELL environment variable was preserved from the user's
	environment instead of being reset based on the passwd database when
	the "env_reset" option was used. Now it is reset as it should be.
	[ea24bef19]

	* configure:
	regen
	[5236ceedf]

	* INSTALL, TROUBLESHOOTING, config.h.in, configure.in, set_perms.c,
	sudo.c:
	Add a configure option to turn off use of POSIX saved IDs
	[f03942725]

	* configure:
	regen
	[62233923e]

	* configure.in:
	add --with-efence option
	[495dc9248]

	* sudo.c:
	Only OR in MODE_RESET_HOME if MODE_RUN is set. Fixes a problem where
	"sudo -l" would not work if always_set_home was set.
	[eb97ce45e]

	* lex.yy.c:
	regen
	[8b7187483]

	* parse.lex:
	Quoted commas were not being treated correctly in command line
	arguments.
	[08b394dc3]

	* sudo.c:
	o Move the call to rebuild_env() until after MODE_RESET_HOME is set.
	Otherwise, the set_home option has no effect.

	o Fix use of freed memory when the "fqdn" flag is set. This was
	introduced by the fix for the "segv when gethostbynam() fails" bug.
	Also, we no longer call set_fqdn() if the "fqdn" flag is not set so
	there is no need to check the "fqdn" flag in set_fqdn() itself.
	[26e835b09]

	* env.c:
	Add 'continue' statements to optimize the switch statement. From
	Solar.
	[1b6d4ad87]

2002-01-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.man.in:
	Regen from new sudoers.pod
	[e869e0eb5]

	* sudoers.pod:
	Add caveat about stay_setuid flag
	[017366ce4]

	* sudo.c:
	If set_perms == set_perms_posix and the stay_setuid flag is not set,
	set all uids to 0 and use set_perms_fallback().
	[9eac6eeaa]

	* set_perms.c, sudo.h:
	Remove PERM_FULL_USER (which is no longer used) and add
	PERM_FULL_ROOT (used when exec'ing the mailer).
	[26f2a9655]

	* logging.c:
	Use set_perms(PERM_FULL_ROOT, 0) before exec'ing the mailer since we
	never want to run the mailer setuid.
	[ddf96f301]

2002-01-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in, sudo.pod, visudo.cat, visudo.man.in,
	visudo.pod:
	Use sudo.ws instead of courtesan.com in URLs
	[2abe7d8e1]

	* Makefile.binary, Makefile.in:
	Fix mansect substitution
	[96fc0545c]

	* Makefile.in:
	Substitute man sections in Makefile.binary
	[43a65bb5c]

	* Makefile.binary:
	Sync install targets with Makefile.in and substitute in man
	sections.
	[a6be68c67]

	* INSTALL, INSTALL.binary:
	version is 1.6.4
	[e1b65f1e6]

	* Makefile.in:
	Repair bindist target
	[33336389e]

	* CHANGES:
	sync for 1.6.4
	[81b534b29]

2002-01-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* install-sh:
	Fix case where neither whoami nor id are found
	[2fe1bcd3d]

2002-01-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* install-sh:
	If neither whoami nor id exists, just assume we are root.
	[0244c4ee6]

	* alloc.c:
	Add explicit cast to (VOID *) on malloc/realloc. Seems to be needed
	on AIX which for some reason isn't pulling in the malloc prototype.
	[b7da5ec51]

2002-01-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, aclocal.m4, compat.h, parse.c, sudo.c:
	(c) 2002
	[a82e7a8ef]

	* CHANGES:
	checkpoint
	[d0847eb01]

	* sudo.c:
	Defer assigning new environment until right before the exec.
	[53299b78a]

	* parse.c:
	kill extra blank line
	[bd74bbdfb]

2002-01-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[5849db069]

	* configure.in:
	Use -O not -O2 for m88k-motorola-sysv* since motorola gcc-derived
	compiler doesn't recognise -O2.
	[de7c18845]

	* HISTORY:
	Clarify origins of Root Group sudo a bit based on info from
	billp@rootgroup.com
	[0910f8203]

2002-01-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE:
	2002
	[1ac8e6f38]

	* CHANGES:
	checkpoint for 1.6.4rc1
	[45a28b58a]

2002-01-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	now generated via autoheader
	[ce95eb80b]

	* configure:
	regen
	[b05c753da]

	* compat.h:
	Move in some stuff that was previously in config.h.
	[a3e429aed]

	* aclocal.m4, configure.in:
	Add info for autoheader.
	[5baef4dad]

2002-01-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	o Add DESTDIR support o Use -M, -O, and -G instead of -m, -o, and -g
	to facilitate non-root installs
	[edbdf215f]

	* install-sh:
	Add -M option (like -m but only for root) If we can't find "whoami",
	use "id" w/ some sed.
	[76b2f1a32]

	* configure:
	regen
	[ed6b129d8]

	* configure.in:
	allow user to always override mansectsu and mansectform
	[513605df4]

2001-12-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkinstalldirs:
	update from autoconf 2.52
	[eecc076ef]

	* config.guess, config.sub:
	Update from autoconf 2.52
	[360f4d01f]

	* configure:
	regen with autoconf 2.52
	[c0b31d588]

	* configure.in:
	o Call AC_PROG_CC_STDC to find out how to run the compiler in ANSI
	mode o Remove compiler-specific checks for HP-UX now that we use
	AC_PROG_CC_STDC
	[1ae422826]

	* RUNSON:
	Checkpoint
	[24995ea37]

	* auth/pam.c:
	o Add pam_prep_user function to call pam_setcred() for the target
	user; on Linux this often sets resource limits. o When calling
	pam_end(), try to convert the auth->result to a PAM_FOO value. This
	is a hack--we really need to stash the last PAM_FOO value received
	and use that instead.
	[9a78f6e75]

	* set_perms.c, sudo.h:
	o Add pam_prep_user function to call pam_setcred() for the target
	user; on Linux this often sets resource limits.
	[a55e6898e]

	* env.c:
	Fix off by one error in number of bytes allocated via malloc (does
	not affected any released version of sudo).
	[705c4c751]

2001-12-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lex.yy.c:
	regen
	[8aa5f6850]

	* parse.lex:
	Allow '@', '(', ')', ':' in arguments to a defaults variable w/o
	requiring that they be quoted.
	[5d5c6783d]

	* sudoers.cat, sudoers.man.in, sudoers.pod:
	Mention that no double quotes are needed when
	adding/deleting/assigning a single value to a list.
	[412819b40]

	* Makefile.in:
	Don't rely on mkdefaults being executable, call perl explicitly.
	[e69a33b47]

	* sudo.tab.c:
	regen
	[e86de6496]

	* parse.yacc:
	Remove some XXX that are no longer relevant.
	[cf2952dd8]

	* defaults.c:
	o Roll our own loop instead of using strpbrk() for better
	grokability o When adding to a list we must malloc() and use
	memcpy(), not strdup() since we must only copy len bytes from str.
	[8dc87eeb2]

2001-12-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.tab.c:
	regen
	[53320cadd]

	* parse.yacc:
	typo in comment
	[ac4aa8115]

2001-12-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	checkpoint
	[b961b88af]

	* configure:
	regen
	[7ceda8c9b]

	* configure.in:
	avoid the -g flag unless --with-devel was specified
	[83c2e51ba]

	* Makefile.in:
	mkdefaults, def_data.in and sigaction.c were missing from the
	tarball
	[e69dc38fd]

	* Makefile.in:
	def_data.c was missing
	[21de57f54]

2001-12-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	Fix setting of $USER and $LOGNAME in the non-reset_env case. Also
	allow HOME, SHELL, LOGNAME, and USER to be specified in keep_env
	[087f5a7d5]

	* TODO:
	Another TODO item
	[fdae7ed9d]

	* sudoers:
	Add comment for Default section so folks know where it should go.
	[2403f24a2]

2001-12-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	Use TCSETAF, not TCSETA to set terminal in termio case
	[0cc2362d4]

	* sudoers.cat, sudoers.man.in:
	regen from sudoers.pod
	[a459e6a31]

	* sudoers.pod:
	o Typo, Runas_User_List should be Runas_List o a User_List can not
	contain a uid o mention that the Defaults section should come after
	Alias definitions but before the user specifications
	[9a3300763]

2001-12-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.man.in:
	regen
	[b42400d77]

	* sudoers.pod:
	Fix listpw and verifypw sections, they were not being formatted
	properly.
	[16912179e]

	* sudoers.cat, sudoers.man.in:
	regen
	[df7144394]

	* sudoers.pod:
	fix typos
	[d24eac7fd]

	* configure:
	regen
	[b4b65750e]

	* config.h.in, configure.in:
	use AC_SYS_POSIX_TERMIOS instead of rolling our own
	[313bbae1d]

	* README:
	Reference sudo.ws not courtesan.com
	[f3970677c]

	* PORTING:
	Add notes on shadow passwords
	[8dd7527bd]

	* BUGS:
	In list mode (sudo -l), characters escaped with a backslash are
	shown verbatim with the backslash.
	[81a4d81f8]

	* sudoers:
	Add simple examples from OpenBSD (Marc Espie)
	[c953644f6]

	* tgetpass.c:
	Catch SIGTTIN and SIGTTOU too and treat them like SIGTSTP.
	[540ba4287]

	* CHANGES:
	minor prettyification
	[a4e9f7cff]

	* CHANGES:
	Updated change log
	[4c587ba66]

	* testsudoers.c:
	Fix CIDR handling here too.
	[b083b9f92]

	* auth/pam.c:
	Apparently a NULL response is OK
	[79df2fa42]

	* TODO:
	Checkpoint for upcoming beta release
	[1e1e65807]

	* TROUBLESHOOTING:
	Many people believe that adding a runas spec should obviate the need
	for the -u flag. It does not.
	[4450b82c8]

	* RUNSON:
	checkpoint update for upcoming 1.6.4 beta
	[a138852ea]

	* config.h.in:
	o Add HAVE_STDLIB_H and HAVE_MEMORY_H o Define HAVE_STRINGS_H even
	if HAVE_STRING_H is defined -- this is safe now
	[7be0cd14a]

	* PORTING:
	Add signals section
	[22d04a60b]

	* configure:
	regen
	[ab70cc89b]

	* configure.in:
	Fix check for sigaction_t
	[947573dbe]

	* sudo.c:
	XXX - should call find_path() as runas user, not root. Can't do that
	until the parser changes though.
	[afe8333fc]

	* sudo.c:
	If find_path() fails as root, try again as the invoking user (useful
	for NFS). Idea from Chip Capelik.
	[cfadcb173]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in:
	Regenerate after pod file changes
	[3dc5439c2]

	* def_data.c, def_data.h, def_data.in, set_perms.c, sudo.c, sudo.h,
	sudo.pod, sudoers.pod:
	Add new sudoers option "preserve_groups". Previously sudo would not
	call initgroups() if the target user was root. Now it always calls
	initgroups() unless the -P command line option or the
	"preserve_groups" sudoers option is set. Idea from TJ Saunders.
	[761b119e2]

2001-12-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h, config.h.in:
	Use new HAVE_SIGACTION_T define
	[66d801055]

	* logging.c:
	Fix compilation on K&C
	[3d723eda8]

	* configure:
	regen
	[82a1cba52]

	* configure.in:
	Add check for sigaction_t -- IRIX already defines this so don't
	redefine it.
	[1f20e80b9]

	* snprintf.c:
	fix typo
	[b3a5ef5b7]

	* interfaces.c:
	need stdlib.h here too
	[3b925f81a]

	* configure:
	regen
	[df5df978d]

	* configure.in:
	Remove redundant checks for string.h, strings.h and unistd.h
	[06461973d]

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in, visudo.cat,
	visudo.man.in:
	Regen from pod files
	[5d0b523ae]

	* BUGS:
	Update for 1.6.4
	[ba0635bf5]

	* configure, lex.yy.c, sudo.tab.c:
	regen
	[722cebb5c]

	* strerror.c:
	Return EINVAL if errnum > sys_nerr
	[e0315c59e]

	* auth/sudo_auth.h:
	o Update copyright year
	[152e745d7]

	* LICENSE, Makefile.binary, Makefile.in, aclocal.m4, compat.h,
	config.h.in, defaults.h, interfaces.h, pathnames.h.in, sudo.h,
	sudo.pod:
	o Update copyright year
	[47dff3718]

	* configure.in:
	o Don't define STDC_HEADERS unconditionally for IRIX o Update
	copyright year
	[c2b2b6c3d]

	* README:
	update version
	[ea17e9fd6]

	* auth/afs.c, auth/aix_auth.c, auth/bsdauth.c, auth/dce.c,
	auth/fwtk.c, auth/kerb4.c, auth/kerb5.c, auth/pam.c, auth/passwd.c,
	auth/rfc1938.c, auth/secureware.c, auth/securid.c, auth/sia.c,
	auth/sudo_auth.c, logging.c, parse.c, parse.lex, parse.yacc,
	set_perms.c, snprintf.c, sudo.c, testsudoers.c, tgetpass.c, utime.c,
	visudo.c:
	o Reorder some headers and use STDC_HEADERS define properly o Update
	copyright year
	[65fad4df3]

	* lsearch.c:
	o Reorder some headers and use STDC_HEADERS define properly o Update
	copyright year
	[31053cfac]

	* getspwuid.c, goodpath.c, interfaces.c:
	o Reorder some headers and use STDC_HEADERS define properly o Update
	copyright year
	[f61723c47]

	* getcwd.c:
	o Reorder some headers and use STDC_HEADERS define properly o Update
	copyright year
	[ca12a5bef]

	* alloc.c, check.c, defaults.c, env.c, fileops.c, find_path.c,
	fnmatch.c:
	o Reorder some headers and use STDC_HEADERS define properly o Update
	copyright year
	[46dd419cd]

	* configure:
	regen
	[38a890097]

	* tgetpass.c:
	flags set in signal handlers should be volatile sig_atomic_t
	[b1dd45403]

	* config.h.in, configure.in:
	Add checks for volatile and sig_atomic_t
	[86743d987]

	* configure, lex.yy.c:
	regen
	[b0095c2f9]

	* def_data.c, def_data.h, def_data.in, defaults.c, env.c,
	find_path.c, sudo.c, sudoers.pod:
	Remove "secure_path" Defaults option since it cannot work with the
	existing parser.
	[2e677e102]

	* find_path.c, sudo.c:
	Unset "secure_path" if user_is_exempt()
	[f590093e4]

	* env.c, pathnames.h.in:
	o Remove assumption that PATH and TERM are not listed in env_keep o
	If no PATH is in the environment use a default value o If TERM is
	not set in the non-reset case also give it a default value.
	[2cbd965d6]

	* aclocal.m4, configure.in, defaults.c, pathnames.h.in:
	_PATH_SENDMAIL -> _PATH_SUDO_SENDMAIL so --without-sendmail works on
	systems that define in paths.h
	[be8422eed]

	* auth/passwd.c, auth/sudo_auth.c, auth/sudo_auth.h:
	Add support for skeyaccess(3) if it is present in libskey.
	[e299dee34]

2001-12-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Only need to do 'lc = login_getclass(NULL)' if lc == NULL
	[cf92836ec]

	* parse.lex:
	'\\' is a perfectly legal character to have in a command line
	argument.
	[3f97a5e44]

	* sudo.c:
	o Defer call to set_fqdn() until it is safe to use log_error() o
	Don't print errno string value if gethostbyname fails, it is not
	relevant
	[678f56e2e]

	* parse.c:
	Fix CIDR -> in_addr_t conversion.
	[4572e8046]

2001-12-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Remove an extra "User_List" in the User_Spec definition From
	ybertrand AT snoopymail.com
	[bcdcc32a7]

	* parse.c:
	Make 'listpw=never' work for users who are not explicitly mentioned
	in sudoers.
	[afff0d56b]

	* sudoers.pod:
	Remove gratuitous '=' in EBNF grammar; era AT iki.fi
	[3d1344a71]

	* sudoers.pod:
	Document new list Defaults type and convert env_keep and env_delete
	to lists. Document new env_check option.
	[b1687838f]

	* lex.yy.c, sudo.tab.c, sudo.tab.h:
	regen parser
	[d684d37a9]

	* parse.lex:
	Don't let '#' appear in a {WORD} and restrict #foo in a Runas spec
	to #[0-9-]+.
	[4447e04fa]

	* configure:
	regen
	[40840e10c]

	* aclocal.m4:
	Simpler SUDO_FUNC_ISBLANK that uses AC_TRY_LINK
	[170eef964]

	* config.h.in, configure.in:
	Add check for skeyaccess(3)
	[f66fcb464]

	* visudo.pod:
	Document new -c, -f, and -q options
	[4632986cd]

	* visudo.c:
	o Add -f option (alternate sudoers file) o Convert to use getopt(3)
	[3c4691a1d]

	* configure:
	regen
	[4073b477f]

	* aclocal.m4, config.h.in, configure.in:
	Add check for isblank and a replacement macro if it doesn't exist.
	[46be666b3]

2001-12-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	In check-only mode, don't create sudoers if it does not already
	exist.
	[8f896ec2e]

	* parse.yacc:
	o Add a new token, DEFVAR, to indicate a Defaults variable name o
	Add support for "+=" and "-=" list operators o replace some 1 and 0
	with TRUE and FALSE for greater legibility.
	[548639078]

	* parse.lex:
	o Use exclusive start conditions to remove some ambiguity in the
	lexer. Also reorder some things for clarity. o Add support for "+="
	and "-=" list operators. o Use the new DEFVAR token to denote a
	Defaults variable name.
	[cf2db3682]

	* sudo.h:
	Prototype init_envtables()
	[e63182a25]

	* env.c:
	o Convert environment handling to use lists instead of strings. This
	greatly simplifies routines that need to do "foreach" type
	operations. o Add new init_envtables() function to set env_check and
	env_delete defaults based on initial_badenv_table and
	initial_checkenv_table (formerly sudo_badenv_table).
	[199a17436]

	* defaults.c, defaults.h:
	o Add a new LIST type and functions to manipulate it. o This is for
	use with environment handling variables. o Call new init_envtables()
	routine inside init_defaults() to initialize the environment lists.
	[2f818e2c3]

	* def_data.c, def_data.h, def_data.in:
	Convert environment options to use the new LIST type and add a new
	one, env_check that only deletes if the sanity check fails.
	[93971de65]

	* testsudoers.c:
	Add dummy version of init_envtables()
	[7b93f51d5]

	* parse.yacc:
	honor quiet mode
	[f0e806a12]

	* visudo.c:
	Add check-only mode
	[f7f91aff5]

	* mkdefaults:
	Fix generation of entries with NULL descriptions.
	[76ff0218c]

2001-12-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	Use sigaction_t and quiet a gcc warning.
	[d38e57ef4]

	* sudo.c:
	Must reset signal handlers before we exec
	[4cad1daa7]

	* auth/aix_auth.c, auth/bsdauth.c, auth/fwtk.c, auth/pam.c,
	auth/sudo_auth.c:
	Be carefule now that tgetpass() can return NULL (user hit ^C). PAM
	version needs testing. Set SIGTSTP to SIG_DFL during password entry
	so user can suspend us.
	[88951a3b9]

	* tgetpass.c:
	Add support for interrupting/suspending tgetpass via keyboard input.
	If you suspend sudo from the password prompt and resume it will
	re-prompt you.
	[6d6d4628f]

	* sudo.c:
	Don't block keyboard interrupt signals, just set them to SIG_IGN.
	[60bbfa42d]

2001-12-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	add back HAVE_SIGACTION
	[e6545c86f]

	* configure:
	regen
	[c570580e4]

	* config.h.in, configure.in, logging.c, sudo.c, visudo.c:
	Kill POSIX_SIGNALS define and old signal support now that we emulate
	POSIX ones Also be sure to correctly initialize struct sigaction.
	[241cb64cc]

	* strerror.c:
	Don't need config.h or "#ifndef HAVE_STRERROR" wrapper.
	[028a55fb2]

	* compat.h:
	Add scaffolding for POSIX signal emulation
	[fb66a3315]

	* sigaction.c:
	o Add missing ';' so this compiles o Can't use NULL since we don't
	include stdio.h
	[0cee8304a]

	* sigaction.c:
	Emulate sigaction() using sigvec()
	[9af30ba66]

2001-11-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Document new behavior of negative values of timestamp_timeout Fix a
	typo
	[78d67cfb5]

	* sudo.pod:
	Add security note about command not being logged after 'sudo su' and
	friends.
	[eac21ad7b]

	* sudo.pod:
	Mention that -V prints default values when run as root, including
	the list of environment variables to clear.
	[031b00921]

	* Makefile.in:
	Run pod2man with --quotes=none to avoid stupid quoting of C<>
	entries.
	[fc5272531]

2001-11-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/sudo_auth.c, def_data.c, def_data.h, def_data.in,
	sudoers.pod:
	Add mail_badpass option Also modify mail_always behavior to also
	send mail when the password is wrong
	[de9d655ea]

	* env.c, sudo.c, sudo.h:
	Dump default bad env table when 'sudo -V' is run by root.
	[63ae9ec2a]

	* sudoers.pod:
	document env_delete
	[c4c0f0046]

	* env.c:
	Add support for '*' in env_keep when not resetting the environment
	(ie: the normal case).
	[65302649f]

	* env.c:
	Add env_delete variable that lets the user replace/add to the
	bad_env_table. Allow '*' wildcard in env_keep entries.
	[ab020c056]

2001-11-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkinstalldirs:
	Force umask to 022 to guarantee sane directory permissions.
	[07f5d7ae7]

2001-11-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	add sudo.tab.h and sudo.tab.c to sudo.tab.o dependency
	[5133d4a34]

	* mkdefaults:
	fix breakage in last commit
	[2d5486db9]

	* Makefile.in:
	acsite.m4 -> aclocal.m4
	[1d232a6aa]

	* check.c:
	fix I_TS_TIMEOUT vs. I_TIMESTAMP_TIMEOUT pasto in previous commit
	[dea43637e]

	* def_data.c:
	regenerated from def_data.in
	[d50e2bb38]

	* check.c, defaults.c, defaults.h:
	Add new T_UINT type that most things use instead of T_INT If
	timestamp_timeout is < 0 then treat the ticket as never expiring (to
	be expired manually by the user).
	[3550d52a9]

	* def_data.in:
	change most T_INT -> T_UINT
	[0906516df]

	* mkdefaults:
	fix warning when no args
	[27a4c619b]

	* visudo.c:
	Change 2 Exit() -> exit() Avoid stdio in Exit() and call _exit() if
	we are a signal handler. We no longer print the signal number but
	the user can just check the exit value for that.
	[717eb3fdf]

2001-10-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	when setting up pipes in child process check for case where stdin ==
	pipe fd 0
	[1fbc786d6]

2001-10-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	Ignore editor exit value since XPG4 says vi's exit value is the
	count of editing errors made (failed searches, etc).
	[d6e0c7049]

2001-10-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[d17da315a]

	* configure.in:
	sco now is identified by config.guess as *-sco-*
	[8fb718e7f]

	* configure.in:
	Check for getspnam() in -lgen if not in -lc for UnixWare.
	[89f2ab84d]

2001-09-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod, visudo.pod:
	"upper case" -> "uppercase"
	[ace935f8a]

	* sudoers.pod:
	fix typos and grammar; pjanzen@foatdi.harvard.edu
	[51dd80bd7]

2001-08-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Missing word (specify); krapht@secureops.com
	[12a978331]

2001-08-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	If we fail to lookup a login class, apply the default one.
	[29871e442]

	* logging.c:
	In log_error() free message, not logline unconditionally, then free
	logline if it is not the same as message. No function change but
	this mirrors how they are allocated.
	[b31b73f07]

2001-07-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regenerate
	[944044e30]

	* configure.in:
	remove some backslash quotes that are unneeded
	[7f8d2fb3e]

	* configure.in:
	o Tweaks to make this work with autoconf-2.50 o Use AC_LIBOBJ
	instead of changing LIBOBJS directly o Use AC_REPLACE_FUNCS where we
	can o Use AC_CHECK_FUNCS instead of AC_CHECK_FUNC so we don't have
	to AC_DEFINE things manually.
	[4969fa536]

	* config.guess, config.sub:
	Updated from autoconf-2.50
	[cb79789ac]

2001-05-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README:
	Update mailing list section. We use mailman now, not majordomo.
	[0c3273aaf]

2001-05-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* getspwuid.c, logging.c, sudo.c:
	Use setpwent()/endpwent() + all the shadow variants to make sure we
	don't inadvertantly leak an fd to the child. Apparently Linux's
	shadow routines leave the fd open even if you don't call setspent().
	Reported by mike@gistnet.com; different patch used.
	[11127e346]

2001-04-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	s/eg./e.g./
	[993409b90]

	* tgetpass.c:
	select() may return EAGAIN. If so, continue like we do for EINTR.
	[2d9fb0a5a]

	* logging.c:
	Fix a non-exploitable buffer overflow in the word splitting code.
	This should really be rewritten.
	[9dd02e2fb]

	* Makefile.in:
	FAQ link goes away
	[c70104020]

	* INSTALL:
	Tell people to look in sample.syslog.conf for examples, not FAQ
	[224c77f5a]

	* TROUBLESHOOTING:
	Update list of env vars that are cleared
	[af93a4422]

	* sudo.c:
	remove struct env_table decl since that stuff has all moved to env.c
	[646bd7034]

2001-04-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* fileops.c:
	Fix a pasto in flock-style unlocking and include <sys/file.h> for
	flock on older systems; twetzel@gwdg.de
	[a6b005f25]

	* configure:
	regen to get NeXT lockf/flock fix
	[6fcf09f56]

	* configure.in:
	force NeXT to use flock since lockf is broken
	[a788475e5]

2001-03-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	Use stashed user_gid when checking against exempt gid since sudo
	sets its gid to a a value that makes sudoers readable. Previously if
	you used gid 0 as the exempt group everyone would be exempt. From
	Paul Kranenburg <pk@cs.few.eur.nl>
	[4f6906953]

2001-03-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[4f1ff9a1e]

	* aclocal.m4:
	#include stdio.h in SUDO_CHECK_TYPE since IRIX 6 aparently defines
	some types (such as ssize_t) therein.
	[e2282d3e4]

2001-03-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.c:
	Fix negation of paths in a boolean context. Problem found by
	apt@UH.EDU
	[a64a6abd3]

2001-02-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	pasto
	[132f59534]

2001-02-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	SA_RESETHAND means the opposite of what I was thinking--oops To
	block all signals in old-style signals use ~0, not 0xffffffff
	[394ececcb]

2001-02-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.c:
	coerce difference of pointers to int when used in a string length
	printf format; deraadt@openbsd.org
	[422021aeb]

2001-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	Block all signals in Exit() to avoid a signal race. There is still a
	tiny window but I'm not going to worry about it.
	[af80178b8]

2001-01-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* env.c:
	glibc uses the LANGUAGE env var so clear that too; Solar Designer
	[aeb8cefc4]

	* lex.yy.c:
	Regenerate with a fix to flex.skl that preserves errno from
	clobbering by isatty().
	[f0a75258b]

2000-12-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/aix_auth.c, auth/bsdauth.c, auth/fwtk.c, auth/pam.c,
	auth/sia.c, auth/sudo_auth.c:
	Some defaults I_ defines got renamed.
	[16e6a3b84]

	* Makefile.in, check.c, def_data.c, def_data.h, def_data.in,
	defaults.c, defaults.h, env.c, logging.c, mkdefaults, parse.yacc,
	set_perms.c, sudo.c, sudo.tab.c:
	Move defaults info into its own files from which we generate .h and
	.c files. This makes adding or rearranging variables much simpler.
	[d956d7752]

2000-12-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	fix typo in last commit
	[4ca4d6515]

	* compat.h, config.h.in, configure, configure.in:
	Add check + emulation for setegid (like seteuid).
	[5481e2289]

	* env.c:
	Make env_keep override badenv_table as documented Fix traversal of
	badenv_table (broken in last commit)
	[1875e4747]

	* set_perms.c, sudo.c, sudo.h:
	Don't try and build saved uid version of set_perms on systems w/o
	them. Rename set_perms_saved_uid() -> set_perms_posix() Make
	set_perms_setreuid simply be set_perms_fallback() and simply include
	the appropriate function at compile time (setreuid() vs. setuid()).
	[572b4cf39]

	* sudoers.cat, sudoers.man.in, sudoers.pod:
	PATH is also preserved when env_reset is in effect
	[9318379d8]

	* CHANGES, Makefile.in, check.c, compat.h, config.h.in, configure,
	configure.in, defaults.c, defaults.h, env.c, find_path.c,
	getspwuid.c, set_perms.c, sudo.c, sudo.cat, sudo.h, sudo.man.in,
	sudo.pod, sudoers.cat, sudoers.man.in, sudoers.pod, testsudoers.c,
	visudo.c, visudo.cat, visudo.man.in:
	New Defaults options: o stay_setuid - sudo will remain setuid if
	system has saved uids or setreuid(2) o env_reset - reset the
	environment to a sane default o env_keep - preserve environment
	variables that would otherwise be cleared

	No longer use getenv/putenv/setenv functions--do environment munging
	by hand. Potentially dangerous environment variables can be cleared
	only if they contain '/' pr '%' characters to protect buggy
	programs. Moved environment routines into env.c (new file)
	[998631b73]

	* INSTALL:
	Clear up --without-passwd description
	[f88c0c930]

	* putenv.c, sudo_setenv.c:
	We now build up a new environment from scratch and assign it to
	"environ".
	[679fee0f5]

2000-12-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod, visudo.pod:
	Grammatical fixes from Paul Janzen
	[211d8c7de]

2000-12-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	If there was a syntax error and the user just wants to quit, unlink
	sudoers if it is zero length.
	[6448c3523]

	* visudo.c:
	'Q' means ignore parse error, not 'q'
	[f14cf7973]

	* visudo.c:
	Open sudoers for writing with mode SUDOERS_MODE From Dimitry Andric
	<dim@xs4all.nl>
	[02559d344]

2000-12-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* set_perms.c:
	Add missing #ifdef HAVE_LOGIN_CAP_H; ayamura@ayamura.org
	[744917ed6]

2000-12-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.guess, config.sub:
	Darwin / Mac OS X support from Wilfredo Sanchez <wsanchez@apple.com>
	[21cdac6b0]

2000-11-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c, visudo.c:
	Use exit(127), not exit(-1)
	[7ce284a13]

	* Makefile.in, defaults.c, defaults.h, set_perms.c, sudo.c:
	Move set_perms() to its own file and use POSIX saved uid or
	setreuid() if available.

	Added stay_setuid option for systems that have libraries that
	perform extra paranoia checks in system libraries for setuid
	programs (ie: anything with issetugid(2)).
	[7ea65e54b]

	* sudo.c:
	strip more bits from the environment and add a facility for
	stripping things only if they contain '/' or '%' to address printf
	format string vulnerabilities in other programs.
	[70f16a284]

2000-11-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[c3233194c]

	* configure.in:
	For NCR, add -lc89 to LIBS, not SUDO_LIBS and cache the existence of
	strcasecmp().
	[8eb484858]

	* configure:
	regen
	[9ea228b39]

	* configure.in:
	Check for strcasecmp(3) in -lc89 for NCR Unix
	[7e7efac42]

2000-11-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	Define HAVE_INNETGR #ifdef HAVE__INNETGR
	[43905f4d7]

	* configure:
	regen
	[ff9bbf0bd]

	* compat.h, config.h.in, configure.in:
	Add check for _innetgr(3) since NCR systems have that instead of
	innetgr(3).
	[4fdb825a0]

2000-10-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/securid.c:
	check return value of creadcfg() call sd_close() after sd_auth()
	store username in sd->username so we don't rely on the USER env
	variable
	[92f5fad80]

2000-10-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	document --with-bsdauth
	[7e4985821]

	* configure:
	regen
	[60c1253c8]

	* configure.in:
	--with-bsdauth assumes --with-logincap
	[e9d00a88b]

	* auth/bsdauth.c, auth/fwtk.c:
	When prompting for a response to a challenge, if the user just hits
	return then reprompt with echo turned on.
	[2ec9c6a45]

2000-10-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Remove debugging code that should not have been committed, oops.
	[f31d6ce25]

	* auth/bsdauth.c:
	Use lower-level routines and get the password ourselves. Checks for
	a challenge and if there is one echo is not turned off.
	[84baa9127]

	* auth/pam.c, auth/sudo_auth.h:
	minor housekeeping, no real code changes
	[7a93a4aa7]

2000-10-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Fix a coredump in the logging functions if gethostname(2) fails by
	deferring the call to log_error() until things are better setup.

	Fix return value of set_loginclass() in non-BSD-auth case.

	Hard-code 'sudo' in the usage message so we can fit more options on
	a line
	[e23d30b91]

	* logging.c:
	Fix errant ';' (typo) that broken MSG_ONLY
	[2ad0d64a1]

2000-10-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in:
	regen
	[dea1ce4d3]

	* sudo.pod:
	Document -a flag
	[975a58f6c]

	* Makefile.in, auth/bsdauth.c, auth/sudo_auth.h, config.h.in,
	configure, configure.in, getspwuid.c, sudo.c:
	Add support for BSD authentication.
	[0208b2268]

2000-10-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Fix typo; from sato@complex.eng.hokudai.ac.jp
	[e7ee4f988]

2000-10-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	Mention negating umask
	[2365c52b2]

	* defaults.c:
	Allow user to specify umask of 0777 (same as !umask)
	[04777172c]

2000-10-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod, visudo.pod:
	Fix a typo and give a URL for the sudo history.
	[44b9e4d4b]

2000-10-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.c, sudo.pod:
	fix typos; pepper@reppep.com
	[ded7261fa]

2000-09-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c, sudo.h, sudo_setenv.c:
	sudo_setenv() now exits on memory alloc failure instead of returning
	-1.
	[9745a3194]

2000-09-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Strip out NLSPATH and PATH_LOCALE from the environment for FreeBSD
	and possibly others.
	[deb5b07f4]

	* logging.c:
	Don't use vsyslog(3) since HP-UX (and others?) lack it. This means
	that "%m" won't be expanded but we don't use that anyway since the
	logging routines may splat to stderr as well.
	[2ff3a2315]

	* defaults.c, defaults.h, sudo.c, sudoers.cat, sudoers.man.in,
	sudoers.pod:
	Add always_set_home variable
	[ed7827dec]

	* configure, configure.in:
	Have to hard code default values in help since the defaults are set
	_after_ the help stuff.
	[4f743f06b]

2000-08-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lex.yy.c, parse.lex:
	Allow special characters (including '#') to be embedded in pathnames
	if quoted by a '\\'. The quoted chars will be dealt with by
	fnmatch(). Unfortunately, 'sudo -l' still prints the '\\'.
	[d64ad7751]

2000-08-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* install-sh:
	Better path searching for programs we need.
	[641e30612]

	* TROUBLESHOOTING:
	Add section on "C compiler cannot create executables" errors.
	[81cf72ec6]

	* Makefile.binary, Makefile.in, version.h:
	Crank version
	[87ccf62b7]

	* aclocal.m4, configure, configure.in, sudo.cat, sudo.man.in,
	sudo.pod, sudoers.cat, sudoers.man.in, sudoers.pod, visudo.cat,
	visudo.man.in, visudo.pod:
	Substitute values from configure into man pages.
	[fafefc1df]

2000-08-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c, sudo.c:
	The listpw and verifypw sudoers options would not take effect
	because the value of the default was checked *before* sudoers was
	parsed. Instead of passing in the value of PWCHECK_* to
	sudoers_lookup(), pass in the arg for def_ival() so the check can be
	deferred until after sudoers is parsed.
	[6525e882a]

2000-08-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	When writing prompt, no need to write the NUL as well;
	hag@linnaean.org
	[d76537718]

2000-06-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* install-sh:
	When looking for chown, check in /sbin too
	[8f9dfff26]

2000-06-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	Remove extraneous call to init_defaults() and set runas_user to NULL
	betweem parses so init_defaults will reset it each time, thus
	avoiding a reference to free()d data.
	[d9a645879]

2000-06-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, interfaces.c, interfaces.h, sudo.c:
	Add support for using getifaddrs() to get the list of ip addr /
	netmask pairs. Currently IPv4-only.
	[d7050d561]

	* visudo.c:
	Add a missing check for UserEditor == NULL Add missing '+' before
	line number when invoking editor to fix a syntax error
	[61048797f]

2000-05-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Call clean_env very early in main() for paranoia's sake. Idea from
	Marc Esipovich.
	[7a2dfb77f]

2000-05-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	Update proto for evasprintf and easprintf
	[fc15c3dbd]

	* alloc.c:
	Make easprintf() and evasprintf() return an int.
	[b00e117e3]

	* check.c:
	If the targetpw flag is set, use target username as part of the
	timestamp path. If tty tickets are in effect cat the tty and the
	target username with a ':' as the separator.
	[192b2ae6c]

2000-05-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	Backout part of last change; setting PAM_USER to the invoking user
	breaks things like targetpw.
	[7dce46e8c]

	* auth/pam.c:
	set tty and username via pam_set_item
	[b6becc577]

	* auth/sudo_auth.c, check.c, getspwuid.c, sudo.c, sudo.h:
	Fix root, runas, and target authentication for non-passwd file auth
	methods.
	[165bd7faf]

2000-04-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in, sudo.pod, sudoers.cat, sudoers.man.in,
	sudoers.pod, visudo.cat, visudo.man.in, visudo.pod:
	Use B<-Z> not C<-Z> for command line flags in all places. This is
	more consistent and works around a bug in Pod::Man.
	[30daa8325]

	* sudoers.cat, sudoers.man.in, sudoers.pod:
	Fix an occurence of 'semicolon' that should be 'colon'
	[2d50daad2]

2000-04-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Fix --with-badpri help line
	[576ea0ed1]

2000-04-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.c, logging.c, sudo.c:
	Bracket calls to syslog with an openlog() and closelog() since some
	authentication methods (like PAM) may do their own logging via
	syslog. Since we don't use syslog much (usually just once per
	session) this doesn't really incur a performance penalty. It also
	Fixes a SEGV with pam_kafs.
	[455f27816]

2000-04-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Fix -H flag. runas_homedir is only valid after set_perms(PERM_RUNAS,
	mode)
	[978e3f8bc]

2000-04-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	Clarify the fact that insults are not enabled just by including them
	in the binary.
	[aef6d6ddb]

2000-04-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man.in, sudoers.cat, sudoers.man.in, visudo.cat,
	visudo.man.in:
	Regenerated with perl 5.6.0 pod2man
	[dffa5b014]

	* Makefile.in:
	Give date string to pod2man since its default is ugly and it ain't
	got no alibi.
	[7e00f9c37]

	* Makefile.in:
	Do section substitution on the output of pod2man and remove hack
	needed for old pod2man.
	[0755c34a8]

	* sudo.pod, sudoers.pod, visudo.pod:
	Put back real man sections, we will do the substitution later.
	[d4be49c5f]

2000-04-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Don't bother checking for the path to vi if user specified
	--with-editor
	[fc6fe43af]

2000-04-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, visudo.c:
	Visudo now does its own fork/exec instead of calling system(3).
	[0c061c037]

	* CHANGES, INSTALL, Makefile.in, sudoers.cat, sudoers.man.in,
	sudoers.pod, visudo.c:
	Visudo now checks for the existence of an editor and gives a
	sensible error if it does not exist.

	The path to the editor for visudo is now a colon-separated list of
	allowable editors. If the user has $EDITOR set and it matches one of
	the allowed editors that editor will be used. If not, the first
	editor in the list that actually exists is used.
	[6dd2d9592]

	* sudo.cat, sudo.man.in, sudo.pod:
	Clear up confusion wrt sudo's return value.
	[2588aeaa5]

2000-03-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Strip sudo and visudo for bindist target
	[aaa68a2b4]

	* sudo.cat, sudo.man.in, sudo.pod, sudoers.cat, sudoers.man.in,
	sudoers.pod, visudo.cat, visudo.man.in, visudo.pod:
	Use @mansectsu@ and @mansectform@ in the man page bodies as well.
	[6c94d8d23]

	* visudo.cat, visudo.man.in, visudo.pod:
	Typo: @sysconf@ -> @sysconfdir@
	[92132436b]

	* Makefile.in:
	'make dist' should not cause any files to be modified so remove its
	dependencies.
	[a9a9e6601]

	* CHANGES:
	Whoops, forgot to add release marker
	[b2a1d4ee7]

2000-03-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	Final change for 1.6.3 (or so I hope)
	[b7fdfdab4]

	* sudo.cat, sudoers.cat, visudo.cat:
	Use SYSV man sections since BSD systems will have nroff...
	[6627448f5]

2000-03-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc, sudo.tab.c:
	When checking to see if the host/user matches in a defaults spec,
	check against TRUE, not just non-zero since it might be -1.
	[1eeb9cb96]

	* configure, configure.in:
	OSF/1 puts file formats in section 4, not 5.
	[e736ad4a5]

	* CHANGES, INSTALL, sudo.c:
	Make login class support work on BSD/OS
	[f32e054fe]

	* RUNSON:
	Update for 1.6.3
	[5b84f2948]

	* configure, configure.in:
	If there is no inet_addr but there *is* an __inet_addr that's ok
	since inet_addr is probably just a macro then. The better thing to
	do would be to look for the macro, but this is fine for now.
	[1f343c7a0]

	* configure, configure.in:
	Don't use shlicc for BSD/OS 4.x
	[6814458ab]

	* Makefile.in, configure, configure.in:
	*.man lives in cwd, *.cat lives in $(srcdir), add a @mansrcdir@
	configure variable so we can deal with this. Also, only remove *.man
	for 'distclean' not 'clean'.
	[b0bbcfc18]

	* sudo.c:
	set_loginclass() should be static like the proto says
	[fed49d49e]

2000-03-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* fnmatch.c:
	Add #ifdef __STDC__ around the rangematch function header to avoid
	promotion of test to int, thus violating the prototype. Gcc handles
	this gracefully but more std ANSI compilers will complain.
	[7ffc5a9fa]

	* emul/fnmatch.h:
	Pull in newer fnmatch(3) that supports FNM_CASEFOLD
	[9a41ebe72]

	* aclocal.m4, configure, fnmatch.3, fnmatch.c:
	Pull in newer fnmatch(3) that supports FNM_CASEFOLD Check for
	FNM_CASEFOLD in configure
	[4fc832c6c]

	* CHANGES, TODO:
	update for 1.6.3
	[e5bd3d968]

	* sudo.tab.c, sudo.tab.h, testsudoers.c, visudo.c:
	Fully qualified hosts w/ wildcards were not matching the FQHOST
	token type. There's really no need for a separate token for
	fully-qualified vs. unqualified anymore so FQHOST is now history and
	hostname_matches now decides which hostname (short or long) to check
	based on whether or not the pattern contains a '.'.
	[ffca544b6]

	* parse.h:
	Fully qualified hosts w/ wildcards were not matching the FQHOST
	token type. There's really no need for a separate token for
	fully-qualified vs. unqualified anymore so FQHOST is now history and
	hostname_matches now decides which hostname (short or long) to check
	based on whether or not the pattern contains a '.'.
	[d72d7ec3f]

	* lex.yy.c, parse.c, parse.lex, parse.yacc:
	Fully qualified hosts w/ wildcards were not matching the FQHOST
	token type. There's really no need for a separate token for
	fully-qualified vs. unqualified anymore so FQHOST is now history and
	hostname_matches now decides which hostname (short or long) to check
	based on whether or not the pattern contains a '.'.
	[9aeabf1b0]

	* parse.c, parse.h, parse.yacc, sudo.tab.c, sudoers.cat,
	sudoers.man.in, sudoers.pod, testsudoers.c, visudo.c:
	Add support for wildcards in the hostname.
	[5ce1fa96f]

	* Makefile.in:
	Add targets for *.man.in, using config.status to generate *.man from
	*.man.in
	[c232acbfc]

	* sudoers.cat, sudoers.man.in, sudoers.pod:
	Document set_logname option and enbolden refs to sudo and visudo.
	[4c8b4fad5]

	* INSTALL, Makefile.in, aclocal.m4, configure, configure.in,
	sudo.cat, sudo.man.in, sudo.pod, sudoers.cat, sudoers.man.in,
	sudoers.pod, visudo.cat, visudo.man.in, visudo.pod:
	Add FreeBSD login.conf support (untested on BSD/OS) based on a patch
	from Michael D. Marchionna. configure now does substitution on the
	man pages, allowing us to fix up the paths and set the section
	correctly. Based on an idea from Michael D. Marchionna.
	[d168a21ce]

	* auth/passwd.c:
	Better fix for handling HP-UX aging info.
	[4d4ed8c16]

	* sudo.c:
	Add support for set_logname run-time default
	[78b6514e5]

	* sudo.man.in, sudoers.man.in, visudo.man.in:
	configure does substitution on these to produce *.man
	[7cd18cf36]

	* sudo.man, sudoers.man, visudo.man:
	These files now get generated from *.man.in at configure time.
	[2a154e4ff]

2000-03-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.c, defaults.h:
	Add set_logname option so users can turn off setting of LOGNAME/USER
	environment variables.
	[f7ed0b0df]

	* lsearch.c, parse.c, testsudoers.c:
	kill register
	[db2c55545]

2000-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/passwd.c:
	HP-UX adds extra info at the end for password aging so when
	comparing the result of crypt to pw_passwd we only compare the first
	len(epass) bytes *unless* the user entered an empty string for a
	password.
	[cbd889868]

	* logging.c:
	Get rid of grandchild hack, it was causing problems and there is
	really no need for it. This fixes a bug where we spin eating up CPU
	when the user runs a long-running process like a shell.
	[a6ad7f071]

2000-03-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	User can always specify a login class if he/she is already root.
	[568483159]

	* config.h.in, configure, configure.in, defaults.c, defaults.h,
	sudo.c, sudo.h:
	FreeBSD login class (login.conf) support.
	[935a51e76]

2000-03-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/sudo_auth.c:
	HAVE_SECUREWARE -> HAVE_GETPRPWNAM; fixes secureware support
	[4ea67119e]

2000-03-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/passwd.c:
	Truncate unencrypted password to 8 chars if encrypted password is
	exactly 13 characters (indicateing standard a DES password). Many
	versions of crypt() do this for you, but not all (like HP-UX's).
	[8a7226ad7]

2000-03-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, RUNSON:
	Mention that gcc on dynix may have problems
	[02cbda999]

2000-02-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	Link visudo with NET_LIBS since we now call syslog via defaults.c
	[39e191bca]

	* defaults.c:
	Use Argv[0] as the first arg to openlog() since visudo uses this
	too.
	[f8b1e595a]

2000-02-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Stash coredumpsize resource limit and retsore it before the exec()
	Otherwise the child ends up with a coredumpsize of 0.
	[24f8ee880]

2000-02-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man, sudo.pod:
	document -S flag
	[f7fa52054]

	* sudo.c:
	fix usage string
	[f1c2ba6aa]

	* CHANGES, RUNSON, TODO, auth/aix_auth.c, auth/fwtk.c, auth/pam.c,
	auth/sudo_auth.c, sudo.c, sudo.h, tgetpass.c:
	Added -S flag (read passwd from stdin) and tgetpass_flags global
	that holds flags to be passed in to tgetpass(). Change echo_off
	param to tgetpass() into a flags field. There are currently 2
	possible flags for tgetpass(): TGP_ECHO and TGP_STDIN. In
	tgetpass(), abstract the echo set/clear via macros and if (flags &
	TGP_ECHO) but echo is not set on the terminal, but sure to set it.
	[54fbe0854]

	* tgetpass.c:
	Fixed a bug that caused an infinite loop when the password timeout
	was disabled.
	[de44c711b]

2000-02-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, defaults.c, defaults.h, getspwuid.c, sudo.c, sudo.h,
	sudoers.cat, sudoers.man, sudoers.pod, visudo.c:
	Add rootpw, runaspw, and targetpw options.
	[09b23e7b4]

	* CHANGES, defaults.c, sudoers.cat, sudoers.man, sudoers.pod,
	visudo.c:
	enveditor -> env_editor
	[44c5092fa]

2000-02-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, INSTALL, Makefile.in, README, configure, configure.in,
	sudo.cat, sudo.man, sudoers.cat, sudoers.man, version.h, visudo.cat,
	visudo.man:
	crank versino to 1.6.3
	[73946622b]

	* INSTALL, TODO, defaults.c, defaults.h, sudoers.cat, sudoers.man,
	sudoers.pod, visudo.c:
	Add 'editor' and 'enveditor' sudoers defaults and make visudo honor
	them. This means that visudo will now parse the sudoers file
	*before* it is edited so a bogus sudoers file will cause a warning
	to go to stderr. Also, visudo checks the variables once--it does not
	check them after each editor run since that could be confusing.
	[020125336]

2000-02-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	1.6.2 -> 1.6.2p1
	[43050cc49]

	* check.c, sudo.c, sudo.h:
	Move user_is_exempt prototype into sudo.h
	[fc08d7004]

2000-02-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	Fix thinko, some && should have been || in the last commit
	[82b60ddc2]

	* configure, configure.in:
	Don't initialized Makefile variables to be NULL since the user may
	want to import variables from their environment.
	[26b93e27f]

2000-02-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	typo
	[36a249399]

2000-01-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.tab.c:
	fix a yacc (skeleton.c) warning
	[30c5e442f]

2000-01-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, RUNSON, configure, configure.in:
	Make pam work on HP-UX 11.0;jaearick@colby.edu
	[a4f529eae]

	* CHANGES:
	recent changes; prepare for 1.6.2p1
	[364a4bef7]

	* find_path.c:
	Don't apply SECURE_PATH if user is example; jmknoble@pobox.com
	[bffb27280]

2000-01-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.tab.c:
	Regen with yacc that has a memory leak plugged.
	[9abb89750]

	* sudoers.cat, sudoers.man, sudoers.pod:
	Expanded docs on sudoers 'defaults' options based on INSTALL file
	info.
	[192d33832]

	* INSTALL:
	Fix some while lies
	[1db208b99]

2000-01-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	When making a bindist, link FAQ to TROUBLESHOOTING instead of
	copying.
	[5d05fbe95]

	* sudoers.cat, sudoers.man, sudoers.pod:
	Add netgroup caveat
	[592bae1d7]

	* RUNSON:
	Last minute updates
	[aa79e11f8]

	* TROUBLESHOOTING:
	PAM entry
	[2386a3f61]

	* auth/pam.c:
	correct a comment
	[0ced99391]

	* CHANGES, RUNSON:
	update for 1.6.2
	[af9bee905]

	* auth/pam.c:
	Better detection of PAM errors and fix custom prompts with PAM.
	Based on patches from "Cloyce D. Spradling" <cloyce@headgear.org>
	[15a1669d5]

2000-01-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* snprintf.c:
	Cast ULONG_MAX to unsigned long long when comparing to an unsigned
	long long value.
	[6e5f1c729]

2000-01-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, config.h.in, configure, configure.in, visudo.c:
	Fix sudoers locking in visudo. We now lock the sudoers file itself,
	not the temp file (since locking the temp file can foul up editors).
	The previous locking scheme didn't work because the fd was closed
	too early.
	[d9790399b]

	* config.h.in, configure, configure.in:
	Don't need test for ftruncate() any more.
	[90371b1c0]

	* configure, configure.in:
	Add a test for the -Aa flag w/ HP-UX's cc. Fixes compilation with
	the unbundled HP-UX cc.
	[f63b8d321]

2000-01-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.man, sudoers.pod:
	"a a" -> "a"; Aaron Campbell <aaron@cs.dal.ca>
	[e4f3853d7]

2000-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE, Makefile.in, defaults.c, defaults.h, parse.c, parse.h,
	parse.yacc, sudo.c, sudo.h, sudoers.pod, testsudoers.c, tgetpass.c,
	version.h, visudo.c:
	update copyright year on changed files
	[9e0bae9fc]

	* RUNSON:
	updates
	[d26184f30]

	* CHANGES:
	aix fix
	[20e44882b]

	* INSTALL:
	Crank version to 1.6.2
	[0ab8ad3c6]

	* configure:
	Crank version to 1.6.2
	[5d24e69ba]

	* sudo.c:
	When using rlimit check for RLIM_INFINITY When computing the value
	of maxfd, use min(getdtablesize(), RLIMIT_NOFILE)
	[217cae528]

	* CHANGES:
	recent changes
	[903bd6eca]

	* BUGS, Makefile.in, README, configure.in, sudo.cat, sudo.man,
	sudoers.cat, sudoers.man, version.h, visudo.cat, visudo.man:
	Crank version to 1.6.2
	[6d6c22b4b]

	* INSTALL, defaults.c, defaults.h, sudo.c, sudo.h, sudoers.pod:
	Add 'shell_noargs' runtime option back in. We have to defer checking
	until after the sudoers file has been parsed but since there are now
	other options that operate that way this one can too. Based on a
	patch from bguillory@email.com.
	[ccb808da3]

	* defaults.c, defaults.h, parse.c, sudo.c, sudo.h:
	Add "listpw" and "verifypw" options.
	[f68cc2f62]

	* sudoers.cat, sudoers.man, sudoers.pod:
	o Fix some typos/omissions o Add section on verifypw and listpw o
	Define how NOPASSWD interacts with the -v and -l flags
	[a597c4ad5]

2000-01-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	For HP-UX cc, add -Aa to CPPFLAGS. For HP-UX always add
	-D_HPUX_SOURCE to CPPFLAGS.
	[26f5aa6f2]

	* defaults.c, defaults.h:
	In struct sudo_defs_types, move the union to the end and don't
	initialize the union member since that only works with an ANSI
	compiler. We set the value of the union by hand in init_defaults()
	anyway. This allows sudo to compile on a K&R compiler again.
	[b1a9b1e67]

2000-01-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c, parse.h, parse.yacc, sudo.tab.c, testsudoers.c, visudo.c:
	netgr_matches needs to check shost as well as host since they may be
	different.
	[0b59a0974]

	* tgetpass.c:
	End on \r as well as \n
	[58fb4fc86]

2000-01-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Update statbuf.st_mode based on SUDOERS_MODE when we are chaning
	from 0400 to whatever SUDOERS_MODE is (converting from the old
	sudoers mode). Assumes that SUDOERS_MODE is less restrictive than
	0400 which should always be the case.
	[038dea2d3]

	* parse.c, parse.yacc, sudo.c, sudo.h, sudo.tab.c:
	Make treatment of -l and -v sane wrt NOPASSWD flags. Now allow -l
	w/o a passwd if there is *any* entry for the user on the host with a
	NOPASSWD flag. For -v, only allow w/o a passwd if *all* entries for
	the user on the host w/ the specified runas user have the NOPASSWD
	flag set.
	[625e3e46d]

	* Makefile.in:
	add check target
	[df297922c]

1999-12-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	Treat EOF at whatnow prompt like 'x' instead of looping.
	[a720dfa30]

1999-12-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	recent changes
	[7db5ff9f5]

1999-12-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure, configure.in, sudo.c:
	Add check for initgroups() since old SYSV lacks this.
	[ac67ced55]

	* CHANGES, RUNSON, aclocal.m4, config.h.in, configure, configure.in,
	parse.c, testsudoers.c:
	o Kill HAVE_FNMATCH_H o Only define HAVE_FNMATCH if <fnmatch.h>
	exists.
	[957fa7941]

1999-12-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/sudo_auth.c:
	Don't allow insults to be enabled if the insults[] array is empty.
	Otherwise there would be division by zero.
	[8446da40f]

	* insults.h:
	Don't allow insults to be enabled if the insults[] array is empty.
	Otherwise there would be division by zero.
	[423f6d5ab]

	* CHANGES, RUNSON:
	Don't allow insults to be enabled if the insults[] array is empty.
	Otherwise there would be division by zero.
	[baf50ee07]

	* insults.h:
	Don't care about USE_INSULTS #define since the insult stuff may be
	overridden at runtime.
	[06f517bac]

	* auth/sudo_auth.c:
	Honor insults flag.
	[c85a0b9bc]

	* CHANGES, parse.c:
	Don't ask the user for a password if the user is not allowed to run
	the command and the authenticate flag (in sudoers) is false.
	[b937889e8]

	* CHANGES, RUNSON, lex.yy.c, parse.lex:
	o Whenever we get a bare newline we change to the INITIAL state. o
	Enter GOTRUNAS when we see Runas_Alias

	This allows #uid to work in a RunasAlias.
	[2eb988233]

1999-12-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, parse.yacc, sudo.tab.c:
	fix parsing of runas lists: o oprunasuser and runaslist now return a
	value o in a runasspec, if a runaslist does not return TRUE, set
	runas_matches to FALSE. Normally, a runaslist only returns FALSE for
	explicitly denied users. o since runaslist does not modify the stack
	there is no need for a push/pop in runasalias.
	[34d793254]

	* check.c, sudo.c:
	Don't kill the user's tickets until after sudoers has been parsed
	since tty_tickets and ticket_dir could be set in sudoers.
	[12f521609]

	* BUGS, CHANGES, Makefile.binary, Makefile.in, README, RUNSON,
	configure, configure.in, sudo.cat, sudo.man, sudoers.cat,
	sudoers.man, tgetpass.c, version.h, visudo.cat, visudo.man:
	crank version to 1.6
	[c6136f976]

	* testsudoers.c:
	add set_fqdn() stub
	[a183816d2]

1999-12-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, defaults.c, defaults.h, sudo.c, sudo.h, sudoers.cat,
	sudoers.man, sudoers.pod, visudo.c:
	o Kill shell_noargs option, it cannot work since the command needs
	to be set before sudoers is parsed. o Fix the "set_home" sudoers
	option (only worked at compile time). o Fix "fqdn" sudoers option.
	We now set host/shost via set_fqdn which gets called when the "fqdn"
	option is set in sudoers. o Move the openlog() to store_syslogfac()
	so this gets overridden correctly from the sudoers file.
	[449f67f77]

	* auth/securid.c:
	SecurID support should compile now.
	[a6a2b564d]

1999-11-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.man, sudo.pod, sudoers.cat, sudoers.man,
	visudo.cat, visudo.man, visudo.pod:
	fix some syntactic goofs
	[df7c6e0bf]

1999-11-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, sudo.html, sudoers.html, visudo.html:
	No longer need the .html files as they are generated automatically
	on the web site.
	[96ffd91ec]

	* CHANGES, LICENSE:
	kill characters that made wml unhappy
	[da14eb97d]

	* HISTORY:
	typo
	[b47fea38a]

1999-11-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README:
	majordomo@cs.colorado.edu -> majordomo@courtesan.com
	[395e56a86]

	* Makefile.in, configure:
	Wrap script execution w/ /bin/sh for the benefit of ctm
	[22bb6197d]

1999-11-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Make the -s flag be exclusive too. Also reorder the flags in the
	exclusive usage message so they are alphabetical.
	[6713b85dc]

1999-11-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	make pam errors other than PAM_PERM_DENIED fatal
	[1c5e61db4]

	* auth/API:
	fix typo
	[4fd3e643b]

	* INSTALL:
	make it clear that /etc/pam.d/sudo is required on linux
	[1fe397ae5]

	* auth/pam.c:
	fix a warning on redhat and spew an error if pam_authenticate()
	returns an error other than AUTH_SUCCESS or PAM_PERM_DENIED
	[dab213c3e]

	* sudo.cat, sudo.html, sudo.man, sudo.pod:
	Be very clear that the password required is the user's not root's
	[1f0fa1814]

1999-11-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	add sample.syslog.conf to DISTFILES and BINFILES
	[c977b43ca]

1999-11-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	updates from Brian Jackson + some formatting
	[93cda3a23]

1999-11-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL.binary, Makefile.binary, README, RUNSON:
	o One RUNSon update o Changes for automating real binary releases
	[c7dc5c099]

	* Makefile.in:
	Add bindist target
	[5e742c68d]

1999-11-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TROUBLESHOOTING:
	talk about run-time options in addition to compile-time options
	[ee9af2974]

	* CHANGES:
	fix typos
	[3e6f6697c]

	* sudo.c:
	need sys/time.h if HAVE_SETRLIMIT
	[1976aec18]

	* PORTING, README, RUNSON, sudo.c, sudo.cat, sudo.html, sudo.man,
	sudo.pod, visudo.cat, visudo.html, visudo.man, visudo.pod:
	get rid of references to sudo-bugs. Now mention the web site or the
	sudo@ alias
	[d00a8de2f]

	* sudoers.html:
	repair pod2html damage
	[3299d72a5]

	* RUNSON, TODO:
	Update for 1.6 release
	[d6a034cf7]

	* sudoers.cat, sudoers.html, sudoers.man, sudoers.pod:
	Add warning about using ALL in a command context.
	[42f7c6f3f]

1999-11-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	Call yyrestart() on a parse error to reset the lexer state.
	[bbc51dac5]

	* lex.yy.c, parse.lex:
	Don't need YY_FLUSH_BUFFER after all Move yyrestart() into visudo.c
	since it might not get called in yywrap if we get a parse error (and
	we only reread the file on error anyway).
	[818bbacb5]

	* lex.yy.c, parse.lex:
	Call YY_FLUSH_BUFFER macro in yywrap() to clean up any buffers that
	might still exist. Call yyrestart() instead of using the deprecated
	YY_NEW_FILE macro.
	[95eb54d99]

	* lex.yy.c, parse.lex:
	flex doesn't need %N table size declarations
	[f03cac3b8]

	* sudoers.cat, sudoers.html, sudoers.man, sudoers.pod:
	Mention what characters need to be escaped in names.
	[afe809a31]

1999-11-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure:
	regen
	[701c55c08]

	* INSTALL:
	clarify Mac OS X entry
	[a5b437605]

	* RUNSON:
	update
	[c02b05acd]

	* configure.in:
	o Use AC_MSG_ERROR throughout o Check syslog configure options for
	danity
	[75ca0c512]

1999-11-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.c:
	Fix printing of type T_MODE in dump_defaults()
	[9e834851b]

	* strcasecmp.c:
	missing sys/types.h
	[d44b9e29f]

	* INSTALL:
	Break out options that may be overridden at run time into their own
	section. Add a not about Max OS X and correct some lies.
	[3781244a9]

1999-11-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, config.h.in, configure, configure.in, sudo.c:
	o Now use getrlimit to find the highest fd when closing all non-std
	fd's o Turn off core dumps via setrlimit for the sake of paranoia
	[59666aca7]

	* RUNSON:
	updates
	[aa41fbec5]

1999-11-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	updates
	[1b467e802]

	* tgetpass.c:
	When read()'ing, do a single character at a time to be sure we don't
	go oast the newline.
	[68fd7e74c]

	* sudo.c:
	For the sudo_root option, check against user_uid, not getuid() since
	at this point, ruid == euid == 0.
	[e08f3f393]

	* RUNSON:
	some updates
	[b20a6bb33]

	* logging.h:
	Fix compilation problem when --with-logging=file was specified. This
	means that syslog is now required to build sudo but that should not
	be a problem. If it is it can be fixed trivially with a configure
	check for syslog() or syslog.h.
	[a7cc50dab]

	* tgetpass.c:
	Make this work again for things like "sudo echo hi | more" where the
	tty gets put into character at a time mode. We read until we read
	end of line or we run out of space (similar to fgets(3)).
	[3f1581ae6]

1999-10-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.cat, sudoers.html, sudoers.man, sudoers.pod:
	change ital to bold
	[d0026e7d8]

	* RUNSON:
	update
	[76a97eb99]

1999-10-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.c:
	Error out if syslog parameters are given without a value. For Ultrix
	or 4.2BSD "syslog" is allowed without a value since there are no
	facilities in the 4.2BSD syslog.
	[be02f53ea]

1999-10-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.c:
	Ignore the syslog facility for systems w/ old syslog like Ultrix.
	[041188d02]

	* TROUBLESHOOTING:
	people with "." early in their path can have problems running sudo
	from the build dir ;-)
	[1cf9d84fb]

1999-10-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.html, sudo.man, sudo.pod:
	Remove -r realm option
	[ea90bc54b]

	* auth/kerb5.c, auth/sudo_auth.c, auth/sudo_auth.h, configure,
	configure.in, sudo.c:
	New krb5 code from Frank Cusack <fcusack@iconnet.net>.
	[3acdd5b02]

	* CHANGES:
	update to reality
	[e0a83ab41]

1999-10-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/fwtk.c:
	include <auth.h> to get function prototypes.
	[b8d230f46]

	* sudo.cat, sudo.html, sudo.man, sudo.pod:
	document -L flag
	[421aca163]

1999-10-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	in set_perms(), always call setuid(0) before changing the ruid/euid
	so we always know it will succeed.
	[7f5c24893]

	* defaults.h:
	#undef T_FOO to avoid conflicts with system defines (like on
	ULTRIX).
	[bd99c3545]

	* TODO, sample.sudoers, sudoers.cat, sudoers.html, sudoers.man,
	sudoers.pod:
	Docuement "Defaults" lines in /etc/sudoers. Still needs some
	fleshing out but this is a start.
	[8a33fc598]

1999-10-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* :
	use strtol, not strtoul since not everyone has not strtoul
	[278f6c85a]

	* defaults.c:
	use strtol, not strtoul since not everyone has not strtoul
	[d34020aef]

	* lex.yy.c, parse.lex:
	last {WORD} rule should only apply in the INITIAL state
	[315335247]

	* lex.yy.c, parse.lex:
	o Add support for escaped characters in the WORD macro o Modify
	fill() to squash escape chars
	[f963da316]

	* defaults.c, defaults.h:
	o Add T_PATH flag to allow simple sanity checks for default values
	that are supposed to be pathnames. o Fix a duplicate free when
	visudo finds an error.
	[deb02f9b3]

1999-10-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.c, defaults.h, logging.c:
	mail_if_foo -> mail_foo
	[deab20a57]

1999-10-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h, defaults.c, defaults.h, sudo.c, tgetpass.c:
	o Add requiretty option o Move O_NOCTTY to compat.h
	[2c4fefde5]

	* logging.c:
	The exit() in log_error() was mistakenly removed in a previous
	version. Put it back...
	[1296f2884]

1999-10-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, TODO, auth/aix_auth.c, auth/fwtk.c, auth/pam.c,
	auth/rfc1938.c, auth/sia.c, auth/sudo_auth.c, check.c, config.h.in,
	configure, configure.in, defaults.c, defaults.h, find_path.c,
	getspwuid.c, logging.c, parse.yacc, sudo.c, sudo.tab.c:
	o Change defaults stuff to put the value right in the struct. o
	Implement mailer_flags o Store syslog stuff both in int and string
	form. Setting the string form magically updates the int version. o
	Add boolean attribute to strings where it makes sense to say !foo
	[7769bf6a3]

	* tgetpass.c:
	add O_NOCTTY when opening /dev/tty just in case
	[cc82693f5]

1999-10-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/API:
	cleanup function no longer takes a status arg
	[c832accc1]

	* INSTALL:
	the the
	[97fc9e232]

1999-09-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO, config.h.in, configure, configure.in, logging.c:
	Use strftime() instead of ctime() if it is available.
	[f7e23611b]

1999-09-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* defaults.c:
	fix copyright date
	[7b5e21697]

	* RUNSON:
	update ReliantUNIX entry
	[0da16dc26]

	* defaults.c, defaults.h, logging.c:
	add log_year option
	[80ac47fb0]

	* configure, configure.in:
	add --without-sendmail to help output
	[c1f71dcd8]

	* configure, configure.in:
	enforce an otctal arg for --with-suoders-mode
	[bb635cab4]

1999-09-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, INSTALL, Makefile.in, TODO, aclocal.m4, auth/aix_auth.c,
	auth/fwtk.c, auth/kerb5.c, auth/pam.c, auth/rfc1938.c, auth/sia.c,
	auth/sudo_auth.c, check.c, config.h.in, configure, configure.in,
	defaults.c, defaults.h, find_path.c, lex.yy.c, logging.c, parse.h,
	parse.lex, parse.yacc, sudo.c, sudo.h, sudo.tab.c, sudo.tab.h,
	testsudoers.c, version.c, visudo.c:
	Add support for "Defaults" line in sudoers to make configuration
	variables changable at runtime (and on a global, per-host and
	per-user basis). Both the names and the internal representation are
	still subject to change. It was necessary to make sudo_user.runas
	but a char ** instead of a char * since this value can be changed by
	a Defaults line. There is a similar (but more complicated) issue
	with sudo_user.prompt but it is handled differently at the moment.

	Add a "-L" flag to list the name of options with their descriptions.
	This may only be temporary.

	Move some prototypes to parse.h

	Be much less restrictive on what is allowed for a username.
	[13bf42675]

	* sample.syslog.conf:
	Add more info
	[093fbe1e4]

1999-09-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE, fnmatch.3, fnmatch.c, getcwd.c, lsearch.c, snprintf.c,
	strcasecmp.c:
	UCB has dropped the advertising clause from their license.
	[4aa7852a4]

1999-08-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/sudo_auth.h:
	move dce_verofy proto to correct section
	[3197ab9de]

	* auth/dce.c:
	remove XXX
	[5b8c2b07b]

1999-08-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* emul/fnmatch.h:
	Add fnmatch() prototype
	[f74a9f987]

	* fnmatch.c, parse.c, testsudoers.c:
	Move inclusion of emul/fnmatch.h to be after sudo.h for __P
	[a067249e1]

	* sudo.h:
	add strcasecmp proto
	[607e54b5e]

	* auth/sudo_auth.c:
	add check for case where there are no auth methods
	[ba31293c2]

	* configure, configure.in:
	Define _XOPEN_EXTENDED_SOURCE on AIX and __USE_FIXED_PROTOTYPES__ on
	SunOS4 w/ gcc
	[92e5ebd9f]

	* getspwuid.c, lex.yy.c, parse.lex, parse.yacc, sudo.tab.c:
	include strings.h everywhere we include string.h
	[3a8c0ca96]

	* version.c:
	nicer output when showing auth methods
	[55e31d781]

	* version.c:
	Add support for SEND_MAIL_WHEN_NO_HOST
	[3de04bb48]

	* config.h.in, configure, configure.in:
	Add _GNU_SOURCE for Linux
	[fda4a9709]

	* lex.yy.c, parse.lex:
	fix definition of OCTECT
	[86c1328f6]

	* configure, configure.in:
	aix_auth.o not authenticate.o
	[df15b27a0]

1999-08-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Only block SIGINT, SIGQUIT, SIGTSTP (which can be generated from the
	keyboard). Since we run with ruid/euid == 0 the user can't really
	signal us in nasty ways.
	[61bd59c73]

	* visudo.c:
	Don't need to worry about catching too many signals since we do
	locking on the tmp file. If a lockfile is really stale, it will be
	detected and overwritten.
	[8fcdf8a30]

	* INSTALL, Makefile.in:
	include auth/API in tarball
	[24f317e17]

	* auth/sudo_auth.c:
	move memset() of plaintext pw outside of verify loop and only do the
	memset if we are *not* in standalone mode.
	[e026a2c24]

	* auth/sudo_auth.c, auth/sudo_auth.h:
	DCE is not a standalone method
	[017a9a0ad]

	* sudo.c:
	fix --enable-noargs-shell
	[79faf00e5]

	* snprintf.c:
	"#ifdef __STDC__" not "#if __STDC__" (I missed one)
	[54a43740e]

	* auth/fwtk.c, auth/sia.c:
	_cleanup() function returns an int.
	[c5fc92121]

	* auth/dce.c:
	there were still some return(0)'s hanging around, make them
	AUTH_FAILURE
	[e061ce62f]

	* parse.c:
	typo in comment
	[56f3bf61c]

	* version.c:
	add missing semicolon
	[cff5f9b39]

	* auth/sudo_auth.h:
	missing backslash
	[b5dca2ab0]

1999-08-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, config.h.in, configure, configure.in:
	Kill _XOPEN_EXTENDED_SOURCE -- causes problems on some OSes
	[359b5be92]

	* Makefile.in:
	add parse.h to HDRS
	[2e4dcff8f]

	* Makefile.in, configure, configure.in:
	Kill VISUDO_LIBS and VISUDO_LDFLAGS. Add LIBS, NET_LIBS, and
	LDFLAGS. Common libs go in LIBS, commong ld flags go in LDFLAGS and
	network libs like -lsocket, -lnsl go in NET_LIBS. This allows
	testsudoers to build on Solaris and is a bit cleaner in general.
	[3118b7f86]

	* UPGRADE:
	mention ptmp -> sudoers.tmp
	[a80f9e0fb]

	* config.h.in, configure, configure.in:
	Define _XOPEN_SOURCE_EXTENDED not _XOPEN_SOURCE
	[ff95bb1d7]

	* RUNSON:
	add 2 reports
	[82a59a898]

	* auth/kerb5.c:
	Minor changes, mostly cosmetic. verify_krb_v5_tgt() changed to
	return a value more like a system function
	[17f02dfb1]

	* auth/dce.c:
	Add an XXX
	[39c448c71]

	* TODO:
	more things todo!
	[21e6a9d16]

	* sample.sudoers:
	update based on what is in the man page
	[05a861df1]

	* parse.yacc, sudo.tab.c:
	minor change to first line printed in -l mode
	[2b28160a5]

	* sudo.cat, sudo.html, sudo.man, sudo.pod:
	rename "ENVIRONMENT VARIABLES" section to "ENVIRONMENT" to be more
	standard and add "EXAMPLES" section
	[e50798ff5]

	* visudo.cat, visudo.html, visudo.man, visudo.pod:
	rename "ENVIRONMENT VARIABLES" section to "ENVIRONMENT" to be more
	standard
	[575c28def]

	* logging.c, parse.c, sudo.h:
	add FLAG_NO_CHECK
	[a2b3e36e7]

	* lex.yy.c, parse.lex:
	make an OCTET really be limited to 0-255
	[ca1b945b3]

	* UPGRADE:
	mention timestamp changes
	[e89b9ff18]

	* PORTING:
	cosmetic cleanup
	[5d5133d4c]

	* sudoers.cat, sudoers.html, sudoers.man, sudoers.pod:
	new sudoers(8) man page
	[7a84959b4]

1999-08-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* version.c:
	Update comments about syslog name tables
	[d661d1d66]

	* CHANGES, LICENSE, Makefile.in, configure, configure.in,
	parse.yacc, strcasecmp.c, sudo.tab.c:
	include strcasecmp() for those without it
	[0d38bef9a]

	* sample.sudoers:
	Use the : operator some more and fix a typo
	[1a5da52c7]

	* HISTORY:
	update the history of sudo
	[f4f46ff02]

	* parse.c, parse.lex, testsudoers.c:
	CIDR-style netmask support
	[8723291d8]

	* CHANGES:
	recent changes
	[3781e9d41]

	* sudo.tab.c, sudo.tab.h:
	these should be generated with byacc, not bison
	[25d75cea6]

	* lex.yy.c:
	regen
	[7b0368f2f]

	* parse.h, parse.yacc, sudo.tab.c, sudo.tab.h:
	In "sudo -l" mode, the type of the stored (expanded) alias was not
	stored with the contents. This could lead to incorrect output if the
	sudoers file had different alias types with the same name. Normal
	parsing (ie: not in '-l' mode) is unaffected.
	[51350b2c7]

1999-08-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	define _XOPEN_SOURCE to get at crypt() proto on some systems
	[ba358d6d5]

1999-08-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* snprintf.c:
	fix comment
	[8b3c8d5c7]

	* tgetpass.c:
	don't need limits.h
	[db4cac174]

	* snprintf.c:
	kill bogus reference to vfprintf
	[9d5008bf3]

	* sample.sudoers, sudoers:
	better examples
	[c58303644]

	* snprintf.c:
	Add some const in the K&R defs. This is safe since we define const
	away if the compiler doesn't grok it.
	[5922bfb58]

	* aclocal.m4, configure:
	Better test for working long long support. Ultrix compiler supports
	basic long long but not all operations on them.
	[084b426b3]

	* aclocal.m4, auth/secureware.c, config.h.in, configure,
	getspwuid.c, snprintf.c, sudo.c:
	Add check for LONG_IS_QUAD #undef MAXINT before including
	hpsecurity.h to silence an HP-UX warning Check for U?LONG_LONG_MAX
	in snprintf.c and use LONG_IS_QUAD
	[b13e8006e]

1999-08-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* LICENSE, aclocal.m4, config.h.in, configure, configure.in,
	snprintf.c:
	UCB-derived snprintf + asprintf support. Supports quads if the
	compiler does. No floating point yet, perhaps later...
	[ab0c1eae1]

1999-08-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/API, auth/sudo_auth.c, auth/sudo_auth.h, check.c,
	find_path.c, goodpath.c, logging.c, parse.c, sudo.c:
	Run most of the code as root, not the invoking user. It doesn't
	really gain us anything to run as the user since an attacker can
	just have an setuid(0) in their egg. Running as root solves
	potential problems wrt signalling.
	[275c2fc98]

	* sudo.tab.c:
	regen
	[bc65b24ed]

1999-08-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c, sudo.c:
	Don't wait for child to finish in log_error(), let the signal
	handler get it if we are still running, else let init reap it for
	us. The extra time it takes to wait lets the user know that mail is
	being sent.

	Install SIGCHLD handler in main() and for POSIX signals, block
	everything *except* SIGCHLD.
	[b9746389c]

	* INSTALL, config.h.in, configure, configure.in, logging.c, parse.c,
	parse.yacc, sudo.c, sudo.h:
	sudoers_lookup() now returns a bitmap instead of an int. This makes
	it possible to express things like "failed to validate because user
	not listed for this host". Some thigns that were previously
	VALIDATE_FOO are now FLAG_FOO. This may change later on.

	Reorganized code in log_auth() and sudo.c to deal with above
	changes.

	Safer versions of push/pushcp with in the do { ... } while (0) style

	parse.yacc now saves info on the stack to allow parse.c to determine
	if a user was listed, but not for the host he/she tried to run on.

	Added --with-mail-if-no-host option
	[0598093e2]

1999-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc, sudo.h, sudo.tab.c, visudo.c, visudo.cat, visudo.html,
	visudo.man, visudo.pod:
	o NewArgv and NewArgc don't need to be externally visible. o If
	pedantic > 1, it is a parse error. o Add -s (strict) option to
	visudo which sets pedantic to 2.
	[804e168d9]

	* HISTORY, INSTALL:
	Just have sudo-bugs contact info in one place
	[1afa5be40]

	* sudo.cat, sudo.html, sudo.man, sudo.pod:
	Add BUGS section
	[b7a10e740]

	* Makefile.in, configure, configure.in:
	Add testsudoers to default build target if --with-devel Don't clean
	generated parser files unless "distclean".
	[3ad8fe164]

	* parse.yacc, sudo.tab.c:
	In pedantic mode we need to save *all* the aliases, not just those
	that match, or we get spurious warnings.
	[b28ac86ab]

	* TROUBLESHOOTING:
	reference samples.sylog.conf
	[0acdc98f1]

1999-08-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sample.syslog.conf:
	Sample entries for syslog.conf
	[1451404ba]

	* CHANGES:
	recent changes
	[2e8eaae77]

	* auth/API, auth/afs.c, auth/aix_auth.c, auth/dce.c, auth/fwtk.c,
	auth/kerb4.c, auth/kerb5.c, auth/pam.c, auth/passwd.c,
	auth/rfc1938.c, auth/secureware.c, auth/securid.c, auth/sia.c,
	auth/sudo_auth.c, auth/sudo_auth.h:
	In struct sudo_auth, turn need_root and configured into flags and
	add a flag to specify an auth method is running alone (the only
	one). Pass auth methods their sudo_auth pointer, not the data
	pointer. This allows us to get at the flags and tell if we are the
	only auth method. That, in turn, allows the method to be able to
	decide what should/should not be a fatal error. Currently only
	rfc1938 uses it this way, which allows us to kill the OTP_ONLY
	define and te hackery that went with it. With access to the
	sudo_auth struct, methods can also get at a string holding their
	cannonical name (useful in error messages).
	[d40947c0b]

	* INSTALL, Makefile.in, README, config.h.in, configure,
	configure.in, getspwuid.c, lex.yy.c, parse.lex, parse.yacc,
	sudo.tab.c, sudo.tab.h:
	o --with-otp deprecated, use --without-passwd instead o real
	dependencies in the Makefile o --with-devel option to enable yacc,
	lex, and -Wall o style -- "foo -> bar" becomes "foo->bar" o ALL goes
	back to being a token, not a string but don't leak memory o rename
	hsotspec -> host in parse.yacc
	[3a8b0be63]

1999-08-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, CHANGES:
	recent changes
	[c2d088ebe]

	* auth/sudo_auth.c, configure, configure.in, interfaces.c,
	snprintf.c, sudo.c, sudo.h:
	o Digital UNIX needs to check for *snprintf() before -ldb is added
	to LIBS since -ldb includes a bogus snprintf(). o Add forward refs
	for struct mbuf and struct rtentry for Digital UNIX. o Reorder some
	functions in snprintf.c to fix -Wall o Add missing includes to fix
	more -Wall
	[d7ebfe06d]

	* INSTALL, auth/sudo_auth.c, check.c, config.h.in, configure,
	configure.in, parse.yacc, sudo.tab.c, testsudoers.c, version.c,
	visudo.c:
	o Add a "pedentic" flag to the parser. This makes sudo warn in cases
	where an alias may be used before it is defined. Only turned on for
	visudo and testsudoers. o Add --disable-authentication option that
	makes sudo not require authentication by default. The PASSWD tag can
	be used to require authentication for an entry. We no longer
	overload --without-passwd.
	[2386dc1b4]

	* lex.yy.c, parse.lex:
	Break 'WORD' regexp def into HOSTNAME and USERNAME. These days a
	username can contain just about anything so be very permissive. Also
	drop the unused \. punctuation.
	[f14dd25b0]

1999-08-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc, sudo.tab.c:
	o add a 'val' element to aliasinfo struct and move -> parse.h o
	find_alias() now returns an aliasinfo * instead of boolean o
	add_alias() now takes a value parameter to store in the
	aliasinfo.val o The cmnd, hostspec, runasuser, and user rules now
	return: 1) positive match 0) negative match (due to '!') -1) no
	match This means setting $$ explicitly in all cases, which I should
	have done in the first place. It also means that we always store a
	value that is != -1 and when we see a '!' we can set *_matches to
	!rv if rv != -1. The upshot of all of this is that '!' now works the
	way it should in lists and some of the rules are more uniform and
	sensible.
	[2ce523cd1]

	* Makefile.in:
	add parse.h dependency
	[518eec0ab]

	* parse.h:
	kill unused *_matched macros
	[b18495e62]

	* parse.yacc:
	Allow a list of users as the first thing in a user spec, not just a
	single entry. This makes things more uniform, though it does allow
	you to write user specs that are hard to read.
	[76c801a68]

	* sudo.tab.c:
	parse.yacc
	[b4a7c5507]

	* configure:
	regen
	[d2dcea30c]

	* configure.in:
	fix check for crypt() in libufc
	[7bb2d52e9]

1999-08-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README:
	sudo-users list now exists
	[609851d85]

	* INSTALL, PORTING, README, TODO, TROUBLESHOOTING:
	Update to reality.
	[be4e87f66]

	* CHANGES, Makefile.in, TODO, TROUBLESHOOTING, check.c, compat.h,
	config.h.in, configure, configure.in, fileops.c, logging.c, sudo.h,
	version.c, visudo.c:
	o Move lock_file() and touch() into fileops.c so visudo can use them
	o Visudo now locks the sudoers temp file instead of bailing when the
	temp file already exists. This fixes the problem of stale temp files
	but it does *require* that you not try to put the temp file in a
	world-writable directory. This shoud not be an issue as the temp
	file should live in the same dir as sudoers. o Visudo now only
	installs the temp file as sudoers if it changed.
	[76148d531]

1999-08-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	add fcntl locking
	[68a2b1678]

	* config.h.in, configure, configure.in, logging.c:
	Lock the log file.
	[925f4eabc]

	* Makefile.in, TROUBLESHOOTING, parse.c, pathnames.h.in, sudo.c,
	visudo.c, visudo.cat, visudo.html, visudo.man, visudo.pod:
	o /etc/stmp -> /etc/sudoers.tmp since solaris uses stmp as shadow
	temp file o _PATH_SUDO_SUDOERS -> _PATH_SUDOERS and _PATH_SUDO_STMP
	-> _PATH_SUDOERS_TMP
	[145992dce]

1999-08-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, check.c, config.h.in, configure, configure.in, version.c:
	o Kill *_MESSAGE and replace with NO_LECTURE o Add more things to
	root sudo -V config reporting
	[7c53b7496]

	* configure, configure.in:
	aix_auth.o not authenticate.o
	[61dc1ddf6]

	* config.h.in:
	Add --with-goodpri and --with-badpri configure options to specify
	the syslog priority to use.
	[ae96a4f1a]

	* INSTALL, configure, configure.in, logging.h:
	Add --with-goodpri and --with-badpri configure options to specify
	the syslog priority to use.
	[d47ddf6a9]

	* compat.h:
	kill crufty AIX stuff
	[fdb5da47a]

	* Makefile.in:
	Sigh, some versions of make (like Solaris's) don't deal with $< like
	I would expect. Both GNU and BSD makes get this right but... So, we
	just expand $< inline at the cost of some ugliness.
	[93c236774]

	* version.c:
	If the invoking user is root, sudo will now print configure info in
	-V mode. Currently just prints logging info, to be expanded later.
	[fd16d8e77]

	* logging.c, logging.h, sudo.c, sudo.h:
	o new defines for syslog facility and priority o use new
	print_version() functino for -V mode
	[27d6f353e]

	* check.c:
	Don't need version.c
	[928352412]

	* aclocal.m4, config.h.in, configure, configure.in:
	Add check for syslog facilities and priorities tables in syslog.h
	[e966a6b3e]

	* Makefile.in:
	o authenticate -> aix_auth o add version.c
	[a7acfdb68]

	* auth/sudo_auth.c:
	Missed a prompt -> user_prompt conversion
	[5e7246552]

1999-08-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO:
	sudo should lock its logfile
	[4aa1fb7fe]

	* parse.yacc, sudo.tab.c:
	o Add '!' correctly when expanding Aliases. o Add shortcut macros
	for append() to make things more readable. o The separator in
	append() is now a string instead of a char. o In append(), only
	prepend the separator if the last char is not a '!'. This is a hack
	but it greatly simplifies '!' handling. o In -l mode, Runas lists
	and NOPASSWD/PASSWD tags are now inherited across entries in a list
	(matches current behavior). o Fix formatting in -l mode such that
	items in a list are separated by a space. Greatlt improves
	readability. o Space for name field in struct aliasinfo is now
	allocated dyanically instead of using a (big) buffer. o In
	add_alias(), only search the list once (lsearch instead of lfind +
	lsearch)
	[16ab37701]

	* lex.yy.c, sudo.tab.c, sudo.tab.h:
	regen
	[0d5a675f5]

	* configure, configure.in:
	Solais pam doesn't require anye xtra setup
	[1a4ebcf2f]

	* parse.yacc:
	o Simpler '!' support now that the lexer deals with multiple !'s for
	us. o In the case of opFOO, have FOO give a boolean return value and
	set foo_matches in opFOO, not FOO. o Treat 'ALL' as a string since
	it gets fill()'d in parse.lex--fixes a small memory leak. In the
	long run it may be better to just fix parse.lex and make ALL back
	into a token. However, having it be a string is useful since it can
	be easily passed back to the parent rule if we so desire.
	[716e0b543]

	* parse.lex:
	o Remove some unnecessary backslashes o collapse multiple !'s by
	using !+ and checking if yyleng is even or odd. this allows us to
	simplify ! handling in parse.yacc
	[d1a6fa810]

	* sudo.c:
	-u flag was being ignored
	[014bd2293]

1999-08-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	correct fix
	[3fc0ab768]

	* Makefile.in:
	work around pod2man stupididy
	[896c2748e]

	* Makefile.in:
	correct dependencies for .cat
	[3e8a6d496]

	* sudo.cat, sudo.man, visudo.cat, visudo.man:
	regen
	[762fb6a66]

	* sudo.pod, visudo.pod:
	Add copyright Update to reality
	[29974bceb]

	* parse.c, sudo.c, sudo.h:
	rename validate() to the more descriptive sudoers_lookup()
	[6b3909c78]

	* auth/aix_auth.c:
	use tgetpass
	[ef4302501]

1999-07-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	updates
	[ff7b46866]

	* HISTORY, INSTALL, Makefile.in, README, RUNSON, TROUBLESHOOTING,
	configure, configure.in, sudo.c:
	Sudo, not CU Sudo
	[5a51e05e6]

	* LICENSE:
	add 4th term to license similar to term 5 in the apache license
	[fa26399ae]

	* emul/search.h, emul/utime.h:
	add 4th term to license similar to term 5 in the apache license
	[1a89248e4]

	* auth/afs.c, auth/aix_auth.c, auth/dce.c, auth/fwtk.c,
	auth/kerb4.c, auth/kerb5.c, auth/pam.c, auth/passwd.c,
	auth/rfc1938.c, auth/secureware.c, auth/securid.c, auth/sia.c,
	auth/sudo_auth.c, auth/sudo_auth.h, insults.h, interfaces.c,
	interfaces.h, lex.yy.c, logging.c, logging.h, parse.c, parse.h,
	parse.lex, parse.yacc, pathnames.h.in, putenv.c, strerror.c, sudo.c,
	sudo.h, sudo.tab.c, sudo_setenv.c, testsudoers.c, tgetpass.c,
	utime.c, version.h, visudo.c:
	add 4th term to license similar to term 5 in the apache license
	[0d732401f]

	* ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h:
	add 4th term to license similar to term 5 in the apache license
	[40c228aa7]

	* Makefile.in, alloc.c, check.c, compat.h, config.h.in, find_path.c,
	getspwuid.c, goodpath.c:
	add 4th term to license similar to term 5 in the apache license
	[ca8eb6f2a]

	* LICENSE, aclocal.m4, auth/rfc1938.c, check.c, configure.in,
	insults.h, logging.c, sudo.c, sudo.h:
	there was a 1995 release too
	[794f537ee]

1999-07-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	updates
	[46e856500]

	* check.c:
	Use dirs instead of files for timestamp. This allows tty and non-tty
	schemes to coexist reasonably. Note, however, that when you update a
	tty ticket, the mtime on the user dir gets updated as well.
	[0804f1786]

	* configure, configure.in:
	Fix getprpwnam() checking on SCO. Need to link with "-lprot -lx"
	when linking test program, not just -lprot. Also add check for
	getspnam(). The SCO docs indicate that /etc/shadow can be used but
	this may be a lie.
	[0368b9e61]

1999-07-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/API:
	first cut at auth API description
	[234f718e4]

1999-07-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/fwtk.c, auth/kerb4.c, auth/kerb5.c, auth/pam.c,
	auth/rfc1938.c, auth/secureware.c, auth/securid.c, auth/sudo_auth.c,
	auth/sudo_auth.h:
	auth API change. There is now an init method that gets run before
	the main loop. This allows auth routines to differentiate between
	initialization that happens once vs. setup that needs to run each
	time through the loop.
	[a1e0a8180]

	* auth/kerb5.c, logging.c:
	use easprintf() and evasprintf()
	[8d72a57eb]

	* alloc.c, sudo.h:
	add easprintf() and evasprintf(), error checking versions of
	asprintf() and vasprintf()
	[fd410d4bc]

	* TODO:
	remove 2 items. One done, one won't do.
	[c8962786f]

	* lex.yy.c, sudo.tab.c:
	regen
	[712675948]

	* configure, sudo.cat, sudo.html, sudo.man, sudoers.html,
	visudo.cat, visudo.html, visudo.man:
	regen
	[4c7239fd9]

	* CHANGES:
	new changes
	[2ffac7eb4]

	* sudo.pod:
	o Document -K flag and update meaning of -k flag. o BSD-style
	copyright o Document clearing of BIND resolver environment variables
	o Clarify bit about shared libs o suggest rc files create /tmp/.odus
	if your OS gives away files
	[0e2cc2b7a]

	* visudo.pod:
	BSD license
	[3cbcd52f9]

	* version.h:
	BSD-style copyright
	[6ccee0f5b]

	* tgetpass.c:
	o BSD copyright o no need to block signals, we now do that in main()
	o cosmetic changes
	[dd312cee2]

	* testsudoers.c, visudo.c:
	o BSD-style copyright o Use "struct sudo_user" instead of old
	globals. o some cometic cleanup
	[4dc01cc91]

	* sudo_setenv.c:
	BSD-style copyright
	[5fbc12d52]

	* sudo.h:
	o BSD copyright o logging and parser bits moved to their own .h
	files o new "struct sudo_user" to encapsulate many of the old
	globals.
	[95179ddff]

	* sudo.c:
	o no longer contains sudo 1.1/1.2 code o BSD copyright o use new
	logging routines o simplified flow of control o BIND resolver
	additions to badenv_table
	[7fe99a8ca]

	* strerror.c:
	BSD-style copyright
	[c4079a538]

	* snprintf.c:
	Now compiles on more K&R compilers
	[bcc133c11]

	* putenv.c:
	BSD-style copyright, cosmetic changes
	[ebc1acfff]

	* pathnames.h.in:
	BSD-style copyright
	[be40509eb]

	* parse.c, parse.h, parse.lex, parse.yacc:
	BSD-style copyright. Move parser-specific defines and structs into
	parse.h + other cosmetic changes
	[c7fd99aa5]

	* logging.h:
	defines for logging routines
	[c665b6724]

	* find_path.c, getspwuid.c, goodpath.c, interfaces.c:
	BSD-style copyright, cosmetic changes
	[692fe8cdb]

	* ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h, insults.h,
	interfaces.h:
	BSD-style copyright
	[cdd6ceff6]

	* configure.in:
	o tgetpass.c is no longer optional o kill DCE_OBJS, add AUTH_OBJS o
	kill --disable-tgetpass o add --without-passwd o changes to fill in
	AUTH_OBJS for new auth api o check for strerror(), v?snprintf() and
	v?asprintf() o replace --with-AuthSRV with --with-fwtk
	[379f68366]

	* config.h.in:
	BSD-style copyright. Remove USE_GETPASS and HAVE_UTIME_NULL. Add
	HAVE_FWTK, HAVE_STRERROR, HAVE_SNPRINTF, HAVE_VSNPRINTF,
	HAVE_ASPRINTF, HAVE_VASPRINTF, WITHOUT_PASSWD and NO_PASSWD
	[be18d643e]

	* compat.h:
	BSD-style copyright; Add S_IFLNK and MIN/MAX id they are missing.
	[e4ea15963]

	* alloc.c:
	BSD-style copyright
	[1403ace08]

	* TROUBLESHOOTING:
	no more --with-getpass
	[3d5c6fc25]

	* TODO:
	Take out things I've done...
	[3bce72741]

	* README:
	Refer to LICENSE
	[6e31765b8]

	* PORTING:
	--with-getpass no longer exists
	[27456c392]

	* Makefile.in:
	BSD-style copyright. Update to reflect reality wrt new files and new
	auth modules.
	[e86bcddbe]

	* INSTALL:
	Remove --with-AuthSRV and --disable-tgetpass. Add --with-fwtk and
	--without-passwd.
	[106a909f3]

	* HISTORY:
	Update history a bit
	[1497cdb54]

	* COPYING, LICENSE:
	Now distributed under a BSD-style license
	[40b43b7a2]

	* auth/sudo_auth.c:
	o BSD-style copyright o Add support for NO_PASSWD/WITHOUT_PASSWD
	options. o skey/opie replaced by rfc1938 code o new struct sudo_user
	global
	[c47edcb88]

	* auth/pam.c, auth/sia.c:
	BSD-style copyright and use new log functions
	[53543b6b7]

	* auth/kerb5.c:
	o BSD-style copyright o Use new log functiongs o Use asprintf() and
	snprintf() where sensible.
	[43499ea5e]

	* check.c:
	Rewrote all the old sudo 1.1/1.2 code. Timestamp handling is now
	done more reasonably--better sanity checks and tty-based stamps are
	now done as files in a directory with the same name as the invoking
	user, eg. /var/run/sudo/millert/ttyp1. It is not currently possible
	to mix tty and non-tty based ticket schemes but this may change in
	the future (it requires sudo to use a directory instead of a file in
	the non-tty case). Also, ``sudo -k'' now sets the ticket back to the
	epoch and ``sudo -K'' really deletes the file. That way you don't
	get the lecture again just because you killed your ticket in
	.logout. BSD-style copyright now.
	[ccc736937]

	* logging.c:
	o rewritten logging routines. log_error() now takes printf-style
	varargs and log_auth() for the return value of validate(). o
	BSD-style copyright
	[7e369e519]

	* auth.c, check_sia.c, dce_pwent.c, secureware.c:
	superceded by new auth API
	[d1bcdd049]

	* auth/kerb4.c:
	BSD-style copyright
	[55ced1ba2]

	* auth/fwtk.c:
	Use snprintf() where it makes sense and add a BSD-style copyright
	[5d0a0e44e]

	* auth/afs.c, auth/aix_auth.c, auth/dce.c, auth/passwd.c,
	auth/rfc1938.c, auth/secureware.c, auth/securid.c, auth/sudo_auth.h:
	BSD-style copyright
	[f73c3fa0d]

	* emul/utime.h, utime.c:
	BSD-style copyright
	[61f51d958]

	* emul/search.h:
	this has been rewritten so use my BSD-style copyright
	[f00f0b239]

1999-07-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* snprintf.c:
	include malloc.h if no stdlib.h
	[17f22b06c]

	* snprintf.c:
	KTH snprintf()/asprintf() for systems w/o them
	[143a6195c]

	* strerror.c:
	strerror() for systems w/o it
	[f47def63f]

1999-07-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	stylistic changes
	[b144c103f]

	* parse.c, parse.lex, parse.yacc:
	Add contribution info in the main comment
	[26be17a3d]

1999-07-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth/pam.c:
	remove missed ref to PAM_nullpw
	[68ee11667]

	* auth/sudo_auth.h:
	pasto
	[d0c6d7581]

	* auth/kerb5.c:
	more or less complete now--still untested
	[baadc4ede]

	* auth/afs.c, auth/pam.c:
	don't use user_name macro, it will go away
	[61e798ffd]

	* auth/opie.c, auth/rfc1938.c, auth/sudo_auth.h:
	combine skey/opie code into rfc1938.c
	[2ad09786a]

	* auth/dce.c, auth/sudo_auth.h:
	DCE authentication method; basically unchanged from dce_pwent.c
	[0e40c7888]

	* auth/aix_auth.c, auth/sudo_auth.h:
	AIX authenticate() support. Could probably be much better
	[ce2573d99]

	* auth/sia.c:
	Fix an uninitialized variable and some cleanup. Now works (tested)
	[d1c145f41]

	* auth/sia.c, auth/sudo_auth.h:
	SIA support for digital unix
	[c9e9f07ac]

	* auth/pam.c:
	don't use prompt global, it will go away
	[14854258a]

	* auth/secureware.c:
	correct copyright years
	[2d8417f59]

	* auth/afs.c, auth/fwtk.c, auth/kerb4.c, auth/kerb5.c, auth/opie.c,
	auth/pam.c, auth/passwd.c, auth/secureware.c, auth/securid.c,
	auth/skey.c, auth/sudo_auth.c, auth/sudo_auth.h:
	New authentication API and methods
	[169d85ac9]

1999-07-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.tab.c:
	regen
	[d22fe7a98]

	* parse.yacc:
	only save an entry if user_matches && host_matches, even if the
	stack is empty (fix for previous commit)
	[63209c134]

	* sudo.tab.c:
	regen
	[5ab9fa82e]

	* parse.yacc:
	1) Always save an entry on the stack if it is empty. This fixes the
	-l and -v flags that were broken by earlier parser changes.

	2) In a Runas list, don't negate FALSE -> TRUE since that would make
	!foo match any time the user specified a runas user (via -u) other
	than foo.
	[fb54a0311]

	* testsudoers.c:
	interfaces and num_interfaces are now auto, not extern
	[feb78be26]

1999-07-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth.c:
	use a static global to keep stae about empty passwords
	[b7a4a6c78]

	* check_sia.c:
	make PASSWORD_NOT_CORRECT logging consistent with other modules
	[cc68b825c]

1999-07-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* auth.c:
	PAM prompt code was wrong, looks like we have to kludge it after
	all.
	[1b023dc9d]

	* auth.c:
	In the PAM code, when a user hits return at the first password
	prompt, exit without a warning just like the normal auth code
	[3bdb3e41c]

	* configure, configure.in:
	kludge around cross-compiler false positives
	[0f648f106]

	* auth.c, check.c, check_sia.c, logging.c, sudo.h, tgetpass.c:
	New (correct) PAM code Tgetpass now takes an echo flag for use with
	PAM_PROMPT_ECHO_ON Block SIGINT and SIGTSTP during auth remove a
	useless umask setting Change error from BAD_ALLOCATION ->
	BAD_AUTH_INIT (for use with sia/PAM) Some cosmetic changes to auth.c
	for consistency
	[69a00325e]

	* sudo.c:
	Some -Wall and kill some trailing spaces
	[20002b5fe]

	* configure.in:
	define -D__EXTENSIONS__ for solaris so we get crypt() proto
	[82353107e]

1999-06-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	add Dynix 4.4.4
	[34fa2fc23]

	* INSTALL, config.h.in, configure, configure.in:
	for kerberos V < version, fall back on old kerb4 auth code
	[8e30e833f]

	* INSTALL:
	clarify some things
	[81cf00633]

	* UPGRADE, sudoers.cat, sudoers.man, sudoers.pod:
	typos
	[a11c14868]

1999-06-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	mention why DONT_LEAK_PATH_INFO is not the default
	[b3cd9b1f9]

1999-06-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	Fix open(2) return value checking, was NULL for fopen, should be -1
	for open
	[1eab167a3]

	* configure:
	regen
	[c4cb29099]

	* configure.in:
	better wording for solaris pam notice
	[45700fb7b]

	* CHANGES:
	document recent changes
	[8b8db7ea0]

	* TROUBLESHOOTING:
	Update shadow password section
	[f5c60e6df]

	* auth.c:
	move authentication code from check.c to auth.c
	[7d768c1ce]

	* Makefile.in, check.c, sudo.h:
	move authentication code to auth.c
	[406056d7e]

1999-05-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, check.c, check_sia.c, compat.h, find_path.c,
	getspwuid.c, goodpath.c, interfaces.c, interfaces.h, lex.yy.c,
	logging.c, parse.c, parse.lex, parse.yacc, secureware.c, sudo.c,
	sudo.h, sudo.tab.c, sudo_setenv.c, testsudoers.c, tgetpass.c,
	visudo.c:
	Move interface-related defines to interfaces.h so we don't have to
	include <netinet/in.h> everywhere.
	[80287c981]

1999-05-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, INSTALL, TODO, check.c, compat.h, getspwuid.c, logging.c,
	parse.yacc, sudo.c, sudo.tab.c, tgetpass.c:
	o Replace _PASSWD_LEN braindeath with our own SUDO_MAX_PASS. It
	turns out the old DES crypt does the right thing with passwords
	longert than 8 characters. o Fix common typo (necesary -> necessary)
	o Update TODO list
	[850a52aa6]

1999-05-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	set $LOGNAME when we set $USER
	[6b91a87a9]

1999-04-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	add comment about digital unix and interfaces.c warning with gcc
	[52ff801d8]

1999-04-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sample.sudoers:
	use modern paths and give examples for some of the new parser
	features
	[276ea3cbe]

1999-04-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	fix comment
	[16fdb0a5c]

	* alloc.c, check.c, check_sia.c, dce_pwent.c, find_path.c,
	getspwuid.c, goodpath.c, interfaces.c, lex.yy.c, logging.c, parse.c,
	parse.lex, parse.yacc, putenv.c, secureware.c, sudo.c, sudo.tab.c,
	sudo_setenv.c, testsudoers.c, tgetpass.c, utime.c, visudo.c:
	Function names should be flush with the start of the line so they
	can be found trivially in an editor and with grep
	[06e586ee7]

	* find_path.c, interfaces.c, lex.yy.c, parse.c, parse.lex,
	parse.yacc, sudo.c, sudo.tab.c, testsudoers.c, tgetpass.c, visudo.c:
	free(3) is already void, no need to cast it
	[eecc5ce1c]

	* logging.c, sudo.c, sudo.h:
	catch case where cmnd_safe is not set (this should not be possible)
	[8e8fbc251]

	* CHANGES, logging.c, parse.c, parse.yacc, sudo.c, sudo.h,
	sudo.tab.c, testsudoers.c, visudo.c:
	Stash the "safe" path (ie: the one listed in sudoers) to the command
	instead of stashing the struct stat. Should be safer.
	[59b0cff8c]

1999-04-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, Makefile.in, UPGRADE:
	notes on updating from an earlier release
	[0ef9c81f1]

	* CHANGES:
	updated
	[f1891c879]

1999-04-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc, sudo.tab.c, sudo.tab.h, sudoers.cat, sudoers.html,
	sudoers.man, sudoers.pod:
	You can now specifiy a host list instead of just a host or alias.
	Ie: user = host1,host2,ALIAS,!host3 my_command now works.
	[622b7a1d9]

	* testsudoers.c:
	Quiet -Wall
	[3a8971f65]

	* parse.yacc, sudo.tab.c:
	Move the push from the beginning of cmndspec to the end. This means
	we no longer have to do a push at the end of privilege, just reset
	some values.
	[91e31132d]

	* sudoers.cat, sudoers.html, sudoers.man, sudoers.pod:
	runas-lists and NOPASSWD/PASSWD modifiers are now sticky and you can
	use "!" most everywhere
	[2d8c7c081]

1999-04-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	modernize paths and update su example based on sample.sudoers one
	[0d2e2e9f3]

	* sample.sudoers:
	New runas semantics
	[5d78a954e]

	* CHANGES, Makefile.in, alloc.c, config.h.in, configure,
	configure.in, strdup.c, sudo.h:
	In estrdup(), do the malloc ourselves so we don't need to rely on
	the system strdup(3) which may or may not exist. There is now no
	need to provide strdup() for those w/o it. Also, the prototype for
	estrdup() was wrong, it returns char * and its param is const.
	[0d67007d1]

	* getcwd.c:
	$Sudo tag
	[29523f349]

	* check.c:
	buf should be prompt; Michael Robokoff <mrobo@networkcs.com>
	[ecb8d08e2]

	* CHANGES, TODO, parse.yacc, sudo.tab.c:
	It is now possible to use the '!' operator in a runas list as well
	as in a Cmnd_Alias, Host_Alias and User_Alias.
	[f50a342b4]

	* logging.c, sudo.h:
	Kill GLOBAL_NO_SPW_ENT (not used) and crank GLOBAL_PROBLEM
	[d53f3818a]

	* sudo.h:
	Definitions of *_matched were wrong--user top, not top-2 as
	subscript.
	[1818ace05]

	* logging.c, parse.c, parse.yacc, sudo.c, sudo.h, sudo.tab.c:
	Add VALIDATE_NOT_OK_NOPASS for when user is not allowed to run a
	command but the NOPASSWD flag was set. Make runasspec, runaslist,
	runasuser, and nopasswd typeless in parse.yacc Add support for '!'
	in the runas list Fix double printing of '%' and '+' for groups and
	netgroups respectively Add *_matched macros (no need for local stack
	variable). Should only be used directly after a pop (since top must
	be >= 2).
	[499e86923]

	* aclocal.m4, configure.in:
	Add copyright, somewhat silly
	[9284e417c]

1999-04-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, INSTALL, Makefile.in, README, alloc.c, check.c, check_sia.c,
	compat.h, config.h.in, configure, configure.in, dce_pwent.c,
	emul/utime.h, find_path.c, getspwuid.c, goodpath.c, ins_2001.h,
	ins_classic.h, ins_csops.h, ins_goons.h, insults.h, interfaces.c,
	lex.yy.c, logging.c, parse.c, parse.lex, parse.yacc, pathnames.h.in,
	putenv.c, secureware.c, strdup.c, sudo.c, sudo.cat, sudo.h,
	sudo.man, sudo.tab.c, sudo_setenv.c, sudoers.cat, sudoers.man,
	testsudoers.c, tgetpass.c, utime.c, version.h, visudo.c, visudo.cat,
	visudo.man:
	Crank version to 1.6 and combine copyright statements
	[e6deacb6c]

	* sample.sudoers:
	Use ! not ^ to do negation
	[9a9dc3fab]

	* lex.yy.c, sudo.tab.c:
	regen
	[094a29a66]

	* parse.lex, parse.yacc:
	Make runas and NOPASSWD tags persistent across entris in a command
	list. Add a PASSWD tag to reverse NOPASSWD. When you override a
	runas or *PASSWD tag the value given becomes the new default for the
	rest of the command list.
	[4f6f75ae3]

1999-04-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, RUNSON:
	update for 1.5.9
	[321906bfb]

	* visudo.c:
	Shift return value of system(3) by 8 to get real exit value and if
	it is not 1 or 0 print the retval along with the error message.
	[a234aee2c]

1999-03-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	testsudoers needs LIBOBJS too
	[1116756bf]

	* parse.c, parse.yacc, sudo.tab.c:
	Fix another parser bug. For a sudoers entry like this: millert
	ALL=/bin/ls,(daemon) !/bin/ls sudo would not allow millert to run ls
	as root.
	[49c5a12d8]

	* CHANGES:
	new change
	[b3f330600]

	* parse.yacc, sudo.tab.c:
	Save entries that match a ! command on the matching stack too
	[baae4d4dd]

	* sudo.c:
	Make sudo's usage info better when mutually exclusive args are given
	and don't rely on argument order to detect this; nick@zeta.org.au
	[1b56f53a4]

1999-03-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, Makefile.in, RUNSON:
	updates from CU
	[2c7a8ba7b]

	* Makefile.in:
	use gzip
	[3f7ace9ee]

	* parse.yacc, sudo.tab.c:
	Fix off by one error introduced in *alloc changes
	[75fb22990]

	* BUGS, CHANGES, INSTALL, Makefile.in, README, alloc.c, check.c,
	check_sia.c, compat.h, config.h.in, configure, configure.in,
	dce_pwent.c, emul/utime.h, find_path.c, getspwuid.c, goodpath.c,
	ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h, insults.h,
	interfaces.c, lex.yy.c, logging.c, parse.c, parse.lex, parse.yacc,
	pathnames.h.in, putenv.c, secureware.c, strdup.c, sudo.c, sudo.cat,
	sudo.h, sudo.man, sudo.tab.c, sudo_setenv.c, sudoers.cat,
	sudoers.man, testsudoers.c, tgetpass.c, utime.c, version.h,
	visudo.c, visudo.cat, visudo.html, visudo.man, visudo.pod:
	++version
	[79c46d1c8]

	* Makefile.in, check.c, find_path.c, getspwuid.c, goodpath.c,
	interfaces.c, lex.yy.c, logging.c, parse.c, parse.lex, parse.yacc,
	putenv.c, secureware.c, strdup.c, sudo.c, sudo.h, sudo.tab.c,
	sudo_setenv.c, testsudoers.c, utime.c, visudo.c:
	Use emalloc/erealloc/estrdup
	[382ef7549]

	* alloc.c:
	error checking memory allocation routines
	[d8947486e]

	* parse.yacc, sudo.tab.c:
	Still not right, this fixes it for real
	[e4b42c5ea]

	* parse.yacc, sudo.tab.c:
	Fix for previous commit
	[b789f9e93]

	* CHANGES, INSTALL, parse.yacc:
	Fix a parser bug that was exposed when mixing different runas specs
	and ! commands. For example: millert ALL=(daemon)
	/usr/bin/whoami,!/bin/ls would allow millert to run whoami as root
	as well as daemon when it should just allow daemon. The problem was
	that comma-separated commands in a list shared the same entry on the
	matching stack. Now they get their own entry iff there is a full
	match. It may be better to just make the runas spec persistent
	across all commands in a list like the user and host entries of the
	matching stack. However, since that is a fairly major change it
	should gets its own minor rev increase.
	[217710df3]

1999-03-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c, config.h.in:
	Simplify PAM code and fix a PAM-related warning on Linux
	[bd76c1333]

1999-03-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	updates
	[37873b23d]

	* sample.sudoers:
	better su entry
	[56b0eb23f]

	* configure:
	regen
	[07b9914ed]

	* check.c, configure.in:
	new pam code that works on solaris, should work on linux too;
	aelberg@home.com
	[c38c66b2b]

1999-03-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	more entries
	[958ccf521]

	* config.h.in:
	only include strings.h if there is no string.h
	[2a5776995]

1999-03-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.guess:
	Sinix is now being called ReliantUNIX; bjjackso@us.oracle.com
	[5dcb02b2a]

1999-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	shost must be set before log functions are called #ifdef HOST_IN_LOG
	[c74286542]

1999-03-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, lex.yy.c, parse.lex:
	Fix a bug wrt quoting characters in command args. Stop processing an
	arg when you hit a backslash so the quoted-character detection can
	catch it.
	[736359cce]

1999-02-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* interfaces.c:
	include sys/time.h; aparently AIX needs it. ppz@cdu.elektra.ru
	[ddb4cacb4]

1999-02-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	add missing case statement so --without-sendmail works
	[3e14f7237]

1999-02-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	more
	[59321981d]

1999-02-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	only search for -lsun in irix <= 4.x
	[6bf7f60c2]

	* configure, configure.in:
	back out last configure.in change now that I've hacked autoconf to
	fix the real problem and add a missing newline
	[89bdafdc3]

	* CHANGES:
	updated
	[8aa6c700b]

	* getcwd.c:
	add def of dirfd() for those without it
	[cd8cc0d00]

	* configure, configure.in:
	When falling back to checking for socket() when linking with
	"-lsocket -lnsl" check for main() instead since autoconf has already
	cached the results of checking for socket() in -lsocket. This is
	really an autoconf bug as it should use the extra libs as part of
	the cache variable name.
	[d3730e35f]

	* configure.in:
	typo
	[27a065f26]

1999-02-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	fix occurrence of $with_timeout that should be
	$with_password_timeout;
	Michael.Neef@neuroinformatik.ruhr-uni-bochum.de
	[a650f840c]

1999-02-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.cat, sudo.html, sudo.man, sudo.pod:
	fix grammar; espie@openbsd.org
	[aeffa02a1]

1999-02-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc, sudo.c, testsudoers.c:
	add cast for strdup in places it does not have it
	[f9b80fcad]

1999-02-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	define for_BSD_TYPES irix
	[699338971]

1999-02-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, sudo.cat, sudo.html, sudo.man, sudo.pod:
	Make it clear that it is the user's password, not root's, that we
	want.
	[50219d0aa]

	* check.c, sudo.h:
	If the user enters an empty password and really has no password,
	accept the empty password they entered. Perviously, they could enter
	anything *but* an empty password. Also, add GETPASS macro that calls
	either tgetpass() or getpass() depending on how sudo was configured.
	Problem noted by jdg@maths.qmw.ac.uk
	[a3029dedd]

1999-02-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, check.c, check_sia.c, compat.h, config.h.in,
	dce_pwent.c, emul/utime.h, find_path.c, getspwuid.c, goodpath.c,
	ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h, insults.h,
	interfaces.c, logging.c, parse.c, parse.lex, parse.yacc,
	pathnames.h.in, putenv.c, secureware.c, strdup.c, sudo.c, sudo.h,
	sudo_setenv.c, testsudoers.c, tgetpass.c, utime.c, version.h,
	visudo.c:
	add explicate copyright
	[52916f16a]

	* CHANGES:
	mention -lsocket, -lnsl configure changes
	[9d42f9713]

1999-02-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Don't clobber errno after calling check_sudoers().
	[e6f9653f7]

1999-02-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	When linking with both -lsocket and -lnsl be sure to do so in that
	order. Also, when we can't find socket() or inet_addr() and have to
	try linking with both libs, issue a warning.
	[97d36a72d]

	* sudo.cat, sudo.man, sudo.pod:
	clarify bad timestamp and fmt
	[dab5a0133]

1999-01-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, RUNSON:
	be clear that pam is linux-only and add a RUNSON entry
	[859712c53]

1999-01-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, INSTALL, configure, configure.in:
	fix and correctly document --with-umask; problem noted by
	adap@adap.org
	[463396270]

1999-01-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure, configure.in:
	only use /usr/{man,catman}/local to store man pages if suer didn't
	override prefix or mandir
	[fe4f974b3]

	* INSTALL, configure, configure.in:
	fix typo, make --with-SecurID take an arg
	[94026c212]

1999-01-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	updates from users
	[f0f0bcc2f]

	* CHANGES, INSTALL, check.c, configure, configure.in:
	FWTK 'authsrv' support from Kevin Kadow <kadow@MSG.NET>
	[cefcc04d6]

	* configure, configure.in:
	better fix for the problem of unresolved symbols in -lnsl or
	-lsocket
	[55a5687a3]

	* configure, configure.in:
	when checking for functions in -lnsl and -lsocket link with both of
	them to avoid unresolved symbols on some weirdo systems
	[0ca93567b]

1999-01-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, CHANGES, RUNSON, TODO:
	old changes that didn't make it into RCS before the RCS->CVS switch
	[1bb164610]

1999-01-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, check.c, check_sia.c, compat.h, config.h.in,
	configure.in, dce_pwent.c, emul/search.h, emul/utime.h, find_path.c,
	getspwuid.c, goodpath.c, ins_2001.h, ins_classic.h, ins_csops.h,
	ins_goons.h, insults.h, interfaces.c, lex.yy.c, logging.c,
	lsearch.c, parse.c, parse.lex, parse.yacc, pathnames.h.in, putenv.c,
	secureware.c, strdup.c, sudo.c, sudo.pod, sudo_setenv.c,
	sudoers.pod, testsudoers.c, tgetpass.c, utime.c, visudo.c,
	visudo.pod:
	add sudo tags
	[826fe213f]

	* sudo.h:
	testing Sudo tag
	[251962273]

	* version.h:
	testing Sudo tag
	[d9a077e8a]

	* BUGS, INSTALL, Makefile.in, README, check.c, check_sia.c,
	compat.h, config.h.in, configure, configure.in, dce_pwent.c,
	emul/utime.h, find_path.c, getspwuid.c, goodpath.c, ins_2001.h,
	ins_classic.h, ins_csops.h, ins_goons.h, insults.h, interfaces.c,
	lex.yy.c, logging.c, parse.c, parse.lex, parse.yacc, pathnames.h.in,
	putenv.c, secureware.c, strdup.c, sudo.c, sudo.cat, sudo.h,
	sudo.man, sudo_setenv.c, sudoers.cat, sudoers.man, testsudoers.c,
	tgetpass.c, utime.c, version.h, visudo.c, visudo.cat, visudo.man:
	crank version and regen files
	[d3aaf5228]

	* Makefile.in:
	kill rcs goop in update_version and fix now that version is a const
	[c2621fd7e]

	* INSTALL, check.c, config.h.in, configure, configure.in, logging.c,
	sudo.c, sudo.h, sudo.pod:
	kerb5 support from fcusack@iconnet.net
	[3983a7a65]

	* realpath.c, sudo_realpath.c:
	we no longer use realpath
	[7f5675869]

	* qualify.c:
	replaced by find_path.c
	[8f92b48b4]

	* options.h:
	all options are now configure flags
	[cf56274ec]

	* lex.yy.c:
	regen
	[eb22ac2ec]

	* getwd.c:
	superceded by getcwd.c
	[9e591b7bd]

	* getpass.c:
	superceded by tgetpass.c
	[ca49d5ca8]

	* SUPPORTED:
	superceded by RUNSON
	[e83631bac]

	* OPTIONS:
	No longer used now that we have configure options for everything.
	[2853eeffa]

	* configure:
	regen based on configure.in
	[ab576d5bd]

	* sudo.cat, sudo.html, sudo.man, sudoers.cat, sudoers.html,
	sudoers.man, visudo.cat, visudo.html, visudo.man:
	regen based on sudo.pod, sudoers.pod, and visudo.pod
	[de6f4fac3]

1998-12-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	fix tty tickets in remove_timestamp (didn't use ':')
	[9daf68bb7]

1998-12-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* interfaces.c:
	close sock when we are done with it
	[d61383848]

1998-11-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	never say "error on line -1"
	[a31b34260]

1998-11-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	check for -lnsl before -lsocket
	[3b6a06a6a]

	* configure.in:
	quote '[', ']' used in ranges correctly
	[0c0b9b9d3]

1998-11-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	add missing NO_ROOT_SUDO noted by drno@tsd.edu
	[38e108587]

1998-11-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* version.h:
	1.5.7
	[aa0917f9c]

	* INSTALL:
	more info for 1.5.7
	[ab78fa496]

	* README:
	update for 1.5.7
	[3940efc90]

	* parse.yacc:
	make increases of cm_list_size and ga_list_size be similar to
	increases of stacksize (ie: >= not > in initial compare).
	[d5fb938c1]

	* parse.yacc:
	when we get a syntax error, report it for the previous line since
	that's generally where the error occurred.
	[cbd9d6f32]

1998-11-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in, configure.in, interfaces.c:
	add back check for sys/sockio.h but only use it if SIOCGIFCONF is
	not defined
	[6bf40c3c0]

	* config.h.in:
	define BSD_COMP for svr4
	[a3c16ebec]

	* check.c, check_sia.c, find_path.c, getcwd.c, getspwuid.c,
	goodpath.c, interfaces.c, logging.c, lsearch.c, parse.c, parse.lex,
	parse.yacc, putenv.c, secureware.c, strdup.c, sudo.c, sudo_setenv.c,
	testsudoers.c, tgetpass.c, utime.c, visudo.c:
	more -Wall
	[62dba8f4d]

	* configure.in:
	kill check for sockio,h
	[bbcd21287]

	* config.h.in:
	no more HAVE_SYS_SOCKIO_H
	[35ec16eb7]

	* check.c, check_sia.c, find_path.c, getcwd.c, getspwuid.c,
	goodpath.c, interfaces.c, logging.c, lsearch.c, parse.c, parse.lex,
	parse.yacc, putenv.c, secureware.c, strdup.c, sudo.c, sudo_setenv.c,
	testsudoers.c, tgetpass.c, utime.c, visudo.c:
	-Wall
	[c253188f5]

1998-11-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	add missing inform_user()
	[ba5a24cfc]

1998-11-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c:
	return NOT_FOUND if given fully qualified path and it does not exist
	previously it would perror(ENOENT) which bypasses the option to not
	leak path info
	[4c4e1d376]

	* configure.in:
	for kerb5, check for -lkerb4, fall back on -lkrb for kerb, check for
	-ldes
	[1515dfb49]

1998-11-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	tty tickets are user:tty now
	[a8fce0bce]

	* check.c:
	when using tty tickets make it user:tty not user.tty as a username
	could have a '.' in it
	[b831104e1]

1998-11-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	add "ignoring foo found in ." for auth successful case
	[53969f978]

1998-11-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	add missing printf param
	[b82d683a3]

1998-11-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, config.h.in, configure.in, find_path.c, sudo.c, sudo.h:
	go back to printing "command not found" unless --disable-path-info
	specified. Also, tell user when we ignore '.' in their path and it
	would have been used but for --with-ignore-dot.
	[0900eabf3]

	* check.c, sudo.c:
	Only one space after a colon, not two, in printf's
	[0b9e318b7]

1998-11-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod:
	document setting $USER
	[0aad2d5af]

	* check.c:
	fix bugs with prompt expansion
	[91af18b71]

	* sudo.c:
	set $USER for root too
	[ef4b73161]

1998-11-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* getspwuid.c:
	typo
	[2fb6e41a5]

	* configure.in:
	HP-UX's iscomsec is in -lsec, not libc
	[4d1f46461]

	* configure.in:
	remove some entries in the OS case statement that did nothing
	[4c017795d]

	* TROUBLESHOOTING:
	add "cd" section and flush out syslog section
	[6d5591ba2]

	* Makefile.in:
	no more sudo-lex.yy.c
	[80b47ae77]

	* check_sia.c:
	add custom prompt support
	[16df5841a]

	* testsudoers.c:
	kill perror("malloc") since we already have a good error messages
	pw_ent -> pw for brevity
	[d0c535cee]

	* sudo.c:
	kill perror("malloc") since we already have a good error messages
	pw_ent -> pw for brevity set $USER if -u specified
	[22f741b38]

	* parse.yacc:
	kill perror("malloc") since we already have a good error messages
	[c3f28be05]

	* parse.c:
	kill perror("malloc") since we already have a good error messages
	pw_ent -> pw for brevity when checking if %group matches, look up
	user in password file so that %groups works in a RunAs spec.
	[4f461199a]

	* logging.c:
	kill perror("malloc") since we already have a good error messages
	[5731e248b]

	* check.c, getspwuid.c, interfaces.c:
	kill perror("malloc") since we already have a good error messages
	pw_ent -> pw for brevity
	[de21acbb3]

1998-11-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	the prompt is expanded before tgetpass is called
	[b751a2b9c]

	* sudo.h:
	tgetpass now has the same args as getpass again
	[1548a20d9]

	* getspwuid.c:
	add iscomsec, issecure support
	[918306ecc]

	* check.c:
	we now expand any %h or %u in the prompt before passing to tgetpass
	[dad5b0257]

	* configure.in:
	add check for syslog(3) in -lsocket, -lnsl, -linet
	[8f6ba6258]

	* config.h.in:
	add HAVE_ISCOMSEC and HAVE_ISSECURE
	[764ab3769]

	* configure.in:
	add check for iscomsec in HP-UX
	[aff8524f0]

	* configure.in:
	check for issecure if we have getpwanam on SunOS some options are
	incompatible with DUNIX SIA check for dispcrypt on DUNIX
	[a3d49aa08]

1998-10-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	add HAVE_DISPCRYPT
	[a402de123]

	* secureware.c:
	add back support for non-dispcrypt based checking for older DUNIX
	[8e41aef0f]

	* INSTALL:
	sia changes
	[3539bbf5b]

	* configure.in:
	SIA becomes the default on Digital UNIX now havbe --disable-sia to
	turn it off...
	[015c75c4d]

	* check.c:
	move local includes after system ones
	[713756564]

1998-10-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c, check_sia.c, sudo.h:
	add pass_warn() which prints out INCORRECT_PASSWORD or an insult to
	stderr
	[261cdb5d8]

	* check_sia.c:
	fix while loop in sia_attempt_auth() that checks the password. Only
	the first iteration was working.
	[5bdc7d308]

1998-10-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4:
	don't trust UID_MAX or MAXUID
	[1f94c6b38]

	* configure.in:
	fix two pastos
	[ce733cd8f]

	* configure.in:
	fix typo
	[23ede59ea]

	* getspwuid.c, secureware.c:
	init crypt_type to INT_MAX since it is legal to be negative in DUNX
	5.0
	[a91e6bc12]

	* configure.in:
	for secureware on dunix, use -lsecurity -ldb -laud -lm but check for
	-ldb since DUNX < 4.0 lacks it
	[48e0ca4a0]

1998-10-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c, compat.h, config.h.in, configure.in, getspwuid.c,
	secureware.c, sudo.c, tgetpass.c:
	getprpwuid is broken in HP-UX 10.20 at least (it sleeps for 2
	minutes if the shadow files don't exist).
	[7ffee3b99]

1998-10-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	updated --with-editor blurb
	[929bff13f]

	* TROUBLESHOOTING:
	tell how to put sudoers in a different dir
	[7e6b4c5a2]

	* configure.in:
	add missing quotes around $with_editor
	[96286964e]

	* configure.in:
	typo in --with-editor bits
	[4c28e57f8]

	* INSTALL:
	I don't expect it to work on Solaris
	[272a9f4a1]

	* check.c:
	add back security/pam_misc.h
	[1c8dc54a3]

1998-10-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	remove dunix note since configure checks for this now
	[e6f3d9825]

	* configure.in:
	add check for broken dunix prot.h (4.0 < 4.0D is bad)
	[bd320380b]

	* getspwuid.c, secureware.c, tgetpass.c:
	new dunix shadow code, use dispcrypt(3)
	[3d92a1bb9]

	* config.h.in:
	add HAVE_INITPRIVS
	[153bd73ab]

	* sudo.c:
	call initprivs() if we have it for getprpwuid later on
	[156c3b069]

	* Makefile.in:
	clean pathnames.h too
	[1895d4388]

	* configure.in:
	quote "Sorry, try again." with [] since it has a comma in it set
	LIBS when we add stuff to SUDO_LIBS set SECUREWARE when we find
	getprpwuid() so we can check for bigcrypt, set_auth_parameters, and
	initprivs later.
	[c68982b8f]

	* INSTALL:
	update Digital UNIX note about acl.h
	[035fb6792]

	* INSTALL:
	add --with-sia --without-root-sudo -> --disable-root-sudo some
	reordering
	[1be01aad4]

	* secureware.c:
	add whitespace
	[d948a701e]

	* Makefile.in, check.c, config.h.in, configure.in, logging.c,
	sudo.h:
	add SIA support
	[1dffdd17c]

	* check_sia.c:
	Initial revision
	[31d783ac8]

1998-10-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	when checking for -lsocket, -lnsl, and -linet, check for the
	specific functions we need from them.
	[eeaca5b70]

	* config.h.in, sudo.h:
	move Syslog_* defs into sudo.h
	[16d565dd8]

	* Makefile.in, sudo.h:
	added check_secureware
	[f4bef103d]

	* configure.in:
	finished adding AC_MSG_CHECKING and AC_MSG_RESULT bits
	[136ab6b11]

	* insults.h:
	don't define CLASSIC_INSULTS and CSOPS_INSULTS if no other sets
	defined. configure now does that for us
	[1ff9e00ca]

	* configure.in:
	move some --with options around change a bunch of echo's to
	AC_MSG_CHECKING, AC_MSG_RESULT pairs
	[4e5978a37]

	* configure.in:
	change $with_foo-bar -> $with_foo_bar kill extra " that caused a
	syntax error add some echo verbage
	[5a62253b5]

1998-10-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	moved SecureWare stuff into secureware.c
	[a20f23f79]

	* secureware.c:
	Initial revision
	[176c73421]

	* INSTALL:
	update url to solaris gcc bins
	[16b0c311e]

	* INSTALL:
	change option formatter and flesh out someentries
	[56954cf32]

	* TROUBLESHOOTING, sudo.pod, visudo.pod:
	environmental variable -> environment variable
	[5f41948de]

	* BUGS:
	everything is now done via configure
	[1dbd23841]

	* README:
	prev rev was 1.5.6
	[819eaaad9]

	* Makefile.in:
	passing SUDOERS_MODE, SUDOERS_UID, SUDOERS_GID correctly
	[127545f11]

	* config.h.in:
	SUDOERS_MODE, SUDOERS_UID, SUDOERS_GID now come from the Makefile
	[54d5d53cb]

	* Makefile.in:
	merge OSDEFS and OPTIONS into DEFS get sudoers_uid, sudoers_gid,
	sudoers_mode from configure
	[7634b229a]

	* configure.in:
	SUDOERS_MODE, SUDOERS_UID, and SUDOERS_GID now get substituted into
	the Makefile, not config.h
	[a03196691]

	* INSTALL:
	document all --with/--enable options
	[05ab66bad]

1998-10-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* insults.h:
	options.h is no more
	[3ea98f1aa]

	* config.h.in:
	assimilated options.h
	[bfbe8fd6a]

	* configure.in:
	moved options from options.h to configure
	[97f58b0e6]

	* check.c, find_path.c, getspwuid.c, goodpath.c, interfaces.c,
	logging.c, parse.c, parse.lex, parse.yacc, sudo.c, sudo.pod,
	sudo_setenv.c, visudo.c:
	no more options.h
	[5bfb481ca]

	* INSTALL, Makefile.in, PORTING, TROUBLESHOOTING:
	remove references to options.h
	[b61f17b50]

	* dce_pwent.c, interfaces.c, sudo.c:
	kill sys/time.h
	[a40aca2b1]

	* tgetpass.c:
	if select return < -1 still prompt for pw
	[bb8c2e2a7]

	* options.h:
	convert LOGGING, LOGFAC, MAXLOGFILELEN, IGNORE_DOT_PATH into
	configure options
	[0560b084f]

	* parse.c:
	FAST_MATCH is no longer an optino
	[581cfa140]

	* check.c:
	remove_timestamp() if timestamp is preposterous
	[f45971922]

	* options.h:
	convert more options to --with/--enable
	[4c92134ba]

	* INSTALL, aclocal.m4:
	logfile -> logpath
	[918410089]

	* configure.in:
	convert more options into --with and --enable
	[76486858e]

	* tgetpass.c:
	catch EINTR in select and restart
	[a05c2b96b]

	* logging.c:
	sys/errno -> errno
	[d68094514]

1998-09-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	UMASK -> SUDO_UMASK.
	[9d6cd6f21]

	* check.c, logging.c:
	time.h, not sys/time.h
	[4c0e6f882]

1998-09-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	MAILER -> _PATH_SENDMAIL
	[8450ad080]

	* INSTALL, configure.in:
	no more --with-C2, now it is --disable-shadow
	[d3d704681]

	* aclocal.m4, check.c, compat.h, config.h.in, configure.in,
	getspwuid.c, sudo.c, tgetpass.c:
	new shadow password scheme. Always include shadow support if the
	platform supports it and the user did not disable it via configure
	[1c66c857e]

1998-09-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	--with-getpass -> --{enable,disable}-tgetpass
	[2de38e16c]

	* Makefile.in:
	pathnames.h -> pathnames.h.in
	[f82c3563e]

	* check.c:
	fix version string
	[8f69024cc]

	* check.c:
	move pam_conv to be static to auth function remove pam_misc.h
	(solaris doesn't have one)
	[80c1c8dcb]

	* aclocal.m4:
	_CONFIG_PATH_* -> _PATH_* or _PATH_SUDO_* kill SUDO_PROG_PWD
	[b8c4ae71a]

	* configure.in:
	munge pathnames.h.in -> pathnames.h kill SUDO_PROG_PWD
	[1e70f549c]

	* pathnames.h.in:
	convert to pathnames.h.in
	[699272e31]

1998-09-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	fix typo in sysv4 matching case /.
	[7266c9f0e]

1998-09-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	pam stuff needs to run as root, not user, for shadow passwords
	[8d906459d]

1998-09-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, INSTALL, README, configure.in:
	updated version
	[d257d37b5]

	* Makefile.in, check.c, compat.h, config.h.in, dce_pwent.c,
	emul/utime.h, find_path.c, getspwuid.c, goodpath.c, ins_2001.h,
	ins_classic.h, ins_csops.h, ins_goons.h, insults.h, interfaces.c,
	logging.c, options.h, parse.c, parse.lex, parse.yacc,
	pathnames.h.in, putenv.c, strdup.c, sudo.c, sudo.h, sudo_setenv.c,
	testsudoers.c, tgetpass.c, utime.c, visudo.c:
	updated version
	[0ef9f25d7]

	* check.c:
	user version.h for long message
	[932624d6a]

	* check.c:
	this is version 1.5.6
	[286aa8f83]

1998-09-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	remove errant backslash
	[cc449d186]

1998-09-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* options.h, parse.yacc, pathnames.h.in:
	fix version string
	[3dd98aef6]

	* BUGS, CHANGES, TODO:
	updtaed for 1.5.6
	[e46758789]

	* RUNSON:
	updated for 1.5.6
	[b9933f615]

1998-09-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* interfaces.c:
	kill unused localhost_mask var copy if name to ifr_tmp after we zero
	it
	[8021b8cb8]

1998-09-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	Better description of new vs. old sudoers modes fix some typos
	better description of /usr/ucb/cc gotchas on slowaris
	[9f3d9e122]

	* Makefile.in:
	add sample.pam
	[d4272a1b2]

	* sudo.c:
	set NewArgv[0] to user_shell, not basename(user_shell)
	[6ded52e06]

1998-09-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README:
	mention TROUBLESHOOTING more fix some typos
	[68d062c37]

	* configure.in:
	move --enable/--disable to be after --with
	[eacb84a5f]

	* INSTALL:
	document --enable/--disable
	[50a5047e3]

	* INSTALL:
	document --with-pam
	[2b9b3b75b]

1998-09-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	Add message for pam users
	[6b213a75c]

	* sample.pam:
	Initial revision
	[06bff7d2c]

	* config.h.in:
	fix HAVE_PAM
	[60c2ab2b5]

	* check.c, config.h.in, configure.in:
	pam support, from Gary Calvin <GCalvin@kenwoodusa.com>
	[218e76a05]

1998-09-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	add HOST_IN_LOG and WRAP_LOG
	[50411d770]

	* logging.c:
	add WRAP_LOG and HOST_IN_LOG
	[f9d20e875]

	* configure.in:
	add --enable-log-host and --enable-log-wrap
	[9c725b503]

	* aclocal.m4:
	use AC_DEFINE_UNQUOTED for --with-logfile and --with-timedir
	[8508d5f04]

1998-09-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h:
	add howmany macro
	[6465c5eb4]

	* tgetpass.c:
	include sys/param.h to get howmany macro
	[0c54ebc58]

1998-09-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* OPTIONS, options.h, parse.yacc, sudo.c, testsudoers.c, visudo.c:
	add RUNAS_DEFAULT
	[e68f156ac]

1998-09-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* fnmatch.c:
	bring in stdio.h for NULL
	[fd94f14a1]

	* aclocal.m4:
	allow /bin/{ksh,bach} and /usr/bin/{ksh,bash} as sh
	[3f029f608]

	* sudo.c:
	use HAVE_SET_AUTH_PARAMETERS
	[2e6a9074e]

	* config.h.in:
	add HAVE_SET_AUTH_PARAMETERS
	[ccb78e265]

	* configure.in:
	add *-*-hiuxmpp* add test for set_auth_parameters() if secureware
	[48940fc5a]

	* config.sub:
	add support for HI-UX/MPP SR220001 02-03 0 SR2201
	[fc8053beb]

	* interfaces.c:
	initialize previfname
	[d228cff31]

	* interfaces.c:
	Don't use SIOCGIFADDR, we don't need it Use SIOCGIFFLAGS if we have
	it check ifr_flags against IFF_UP and IFF_LOOPBACK instead of
	kludging it
	[65de4eeb7]

	* configure.in:
	typo
	[57a7e0057]

	* Makefile.in:
	don't need special build line for sudo.tab.o
	[fa0936547]

	* Makefile.in:
	don't clean sudo.tab.[ch]
	[d9d0fe1d5]

	* sudo.c:
	Sudo should prompt for a password before telling the user that a
	command could not be found.
	[ca0a28b03]

	* BUGS:
	for 1.5.6
	[5eac2b72c]

	* INSTALL, README:
	no longer require yacc
	[5f20cb4a5]

	* Makefile.in:
	typo
	[45e7634e9]

	* Makefile.in:
	y.tab -> sudo.tab include pre-yacc'd parse.yacc
	[10fd92bb9]

	* parse.lex:
	include sudo.tab.h, not y.tab.h don't break out of command args if
	you get a '='
	[e1a6b1fec]

	* insults.h:
	fix version ,
	[0643cd950]

	* ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h:
	fix version
	[00861546a]

	* compat.h:
	fix version
	[f56bd7754]

	* getcwd.c:
	getcwd(3) from OpenBSD for those without it.
	[39a719159]

	* sudo.h:
	HAVE_GETWD -> HAVE_GETCWD
	[0c040bfc5]

	* configure.in:
	pretend sunos doesn't have getcwd(3) since it opens a pipe to
	getpwd!
	[6dc57e6ea]

	* parse.c:
	use NAMLEN() macro
	[a1c5148c3]

	* fnmatch.c:
	remove duplicate include of string.h
	[e7a1cc6b6]

	* configure.in:
	call SUDO_TYPE_DEV_T and SUDO_TYPE_INO_T
	[1aa92f833]

	* aclocal.m4:
	add SUDO_TYPE_DEV_T and SUDO_TYPE_INO_T
	[856a70de8]

	* config.h.in:
	add dev_t and ino_t
	[15c6fea6d]

1998-07-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	fix OTP_ONLY for opie
	[1d26f2699]

1998-06-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* testsudoers.c, tgetpass.c:
	include stdlib.h for malloc proto
	[2b2b9eb8e]

1998-05-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	make update_version saner
	[30a451818]

	* config.h.in:
	add HAVE_WAITPID, HAVE_WAIT3, and sudo_waitpid()
	[59214c317]

	* configure.in:
	check for waitpid and wait3 or no waitpid
	[a168f9c59]

	* logging.c:
	used waitpid or wait3 if we have 'em
	[df4b885d1]

1998-05-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	fix some fprintf args, ariel@oz.engr.sgi.com (Ariel Faigon)
	[ae7a8f497]

1998-04-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	don't need to explicately mention -lsocket -lnsl for sequent
	[5723320dc]

1998-04-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	dynix should not link with -linet
	[29a1672a8]

1998-04-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	mention that HP-UX doesn't ship with yacc
	[2dd0d5e14]

1998-04-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	ignore kerberos if we can't get the local realm
	[ac5c39884]

1998-04-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, INSTALL, README, configure.in:
	++version
	[69cd51691]

	* version.h:
	++
	[fa85e6fe1]

	* Makefile.in, check.c, config.h.in, dce_pwent.c, emul/utime.h,
	find_path.c, getcwd.c, getspwuid.c, goodpath.c, interfaces.c,
	logging.c, parse.c, parse.lex, putenv.c, strdup.c, sudo.c, sudo.h,
	sudo_setenv.c, testsudoers.c, tgetpass.c, utime.c, visudo.c:
	updated version
	[12477fd6e]

	* check.c, sudo.h:
	fix version
	[36ef6aa48]

	* getcwd.c:
	don't use popen/pclose. Do it inline.
	[1014adbe0]

	* lsearch.c:
	add rcsid
	[09bb1a3bf]

	* sudo.c:
	typo
	[7f4e5240c]

	* check.c, compat.h, ins_2001.h, ins_classic.h, ins_csops.h,
	ins_goons.h, insults.h, options.h, parse.yacc, pathnames.h.in,
	sudo.h:
	updated version
	[3b1be424a]

	* check.c, find_path.c, parse.c, sudo.c, testsudoers.c:
	MAX* + 1 -> MAX*
	[c27d678ff]

	* Makefile.in:
	getwd.c -> getcwd.c
	[96d7c5970]

	* config.h.in:
	kill HAVE_GETWD
	[a5b490a9d]

	* configure.in:
	getcwd, not getwd
	[2a4fbbdad]

	* getcwd.c:
	use MAX* not MAX* + 1 always run pwd as using getwd() defeats the
	purpose
	[8832e50f4]

1998-03-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* OPTIONS, options.h:
	add STUB_LOAD_INTERFACES
	[fa270d375]

	* Makefile.in, check.c, compat.h, config.h.in, dce_pwent.c,
	emul/utime.h, find_path.c, getspwuid.c, getwd.c, goodpath.c,
	ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h, insults.h,
	interfaces.c, logging.c, options.h, parse.c, parse.lex, parse.yacc,
	pathnames.h.in, putenv.c, strdup.c, sudo.c, sudo.h, sudo_setenv.c,
	testsudoers.c, tgetpass.c, utime.c, visudo.c:
	updated version
	[e37e1e56b]

	* configure.in:
	support *-ccur-sysv4 and fix two typos
	[bcae83c5b]

1998-03-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	don't echo about with_logfile and with_timedir
	[cf7b77a03]

	* INSTALL:
	document --with-logfile and --with-timedir
	[73fa35c6a]

	* aclocal.m4:
	support --with-logfile and --with-timedir
	[ceb7a9bdf]

	* configure.in:
	Add --with-logfile and --with-timedir
	[56b156583]

	* sudo.c:
	change size computation of NewArgv for UNICOS
	[533fbe071]

1998-02-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	treate -*-sysv4* like *-*-svr4
	[fcc46c02f]

1998-02-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	fix spacing for --with-authenticate help
	[822e075e1]

	* Makefile.in, check.c, compat.h, config.h.in, dce_pwent.c,
	emul/utime.h, find_path.c, getspwuid.c, getwd.c, goodpath.c,
	ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h, insults.h,
	interfaces.c, logging.c, options.h, parse.c, parse.lex, parse.yacc,
	pathnames.h.in, putenv.c, strdup.c, sudo.c, sudo.h, sudo_setenv.c,
	testsudoers.c, tgetpass.c, utime.c, visudo.c:
	updated version
	[c866646cd]

	* parse.yacc:
	fix off by one error in push macro
	[14292f47c]

1998-02-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	removed bogus alloca hack
	[797a152c6]

	* check.c:
	added AIX 4.x authenticate() support
	[73e984f39]

	* parse.yacc:
	include alloca.h if using bison and not gcc and it exists. fixes an
	alloca problem on hpux 10.x
	[cd226d56c]

	* INSTALL:
	mention --with-authenticate
	[3b9b17cd5]

	* configure.in:
	added AIX authenticate() support
	[0111f5efc]

	* config.h.in:
	add HAVE_AUTHENTICATE
	[3ba4c7b26]

	* interfaces.c:
	dynamically size ifconf buffer
	[9719fa21b]

	* configure.in:
	quote '[' and ']'
	[12627050d]

	* Makefile.in, check.c, compat.h, config.h.in, dce_pwent.c,
	emul/utime.h, find_path.c, getspwuid.c, getwd.c, goodpath.c,
	ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h, insults.h,
	logging.c, options.h, parse.c, parse.lex, parse.yacc,
	pathnames.h.in, putenv.c, strdup.c, sudo.c, sudo.h, sudo_setenv.c,
	testsudoers.c, tgetpass.c, utime.c, visudo.c:
	updated version
	[2fc787d5f]

	* visudo.pod:
	add ERRORS section
	[0bf1342c1]

1998-02-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TROUBLESHOOTING:
	add busy stmp file explanation
	[2c18a14bd]

1998-02-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	the name of the cached var that signals whether or not you are cross
	compiling changed. It is now ac_cv_prog_cc_cross
	[686c50ad3]

1998-02-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	mention glibc 2.07 is fixed wrt lsearch()\.
	[6ffcfb752]

1998-02-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sample.sudoers, sudoers.pod:
	better example of su but not root su
	[a58e3f4b1]

1998-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, check.c, compat.h, config.h.in, dce_pwent.c,
	emul/utime.h, find_path.c, getspwuid.c, getwd.c, goodpath.c,
	ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h, insults.h,
	interfaces.c, logging.c, options.h, parse.c, parse.lex, parse.yacc,
	pathnames.h.in, putenv.c, strdup.c, sudo.c, sudo.h, sudo_setenv.c,
	testsudoers.c, tgetpass.c, utime.c, visudo.c:
	updated version
	[bc7803cd0]

	* Makefile.in:
	correct regexp for updating version
	[e843aa9af]

	* tgetpass.c:
	remove bogus flush of stderr spew prompt before turning off echo.
	Seems to fix a weird problem where if sudo complained about a bogus
	stamp file the user would sometimes not have a chance to enter a
	password
	[9cc65287f]

	* check.c:
	fix bogus flush of stderr
	[b4c1c9190]

	* sudo.c:
	close fd's <=2 not <=3 and move that chunk of code up
	[25ed56fba]

	* configure.in:
	support hpux1[0-9] not just hpux10
	[c8b7a421b]

1998-01-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	set sudoers_fp to nil after closing
	[3e52d3a11]

1998-01-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.guess, config.sub:
	updated from autoconf 2.12
	[ce5895467]

	* configure.in:
	add *-*-svr4 rule
	[48aeb59d0]

1998-01-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	fix select usage for high fd's (dynamically allocate readfds)
	[0e8cf35a7]

	* check.c:
	kill extra whitespace
	[7baad7a52]

	* sudo.c:
	do an initgroups() before running a command, unless the target user
	is root.
	[7d5c340f9]

1998-01-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TROUBLESHOOTING:
	tell people to use tabs, not spaces, in syslog.conf
	[b51df9a11]

1998-01-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, config.h.in, dce_pwent.c, emul/utime.h, getwd.c,
	parse.lex, putenv.c, strdup.c, testsudoers.c, utime.c:
	updated version
	[efbcdfe82]

	* check.c, find_path.c, getspwuid.c, goodpath.c, interfaces.c,
	logging.c, parse.c, sudo.c, sudo_setenv.c, tgetpass.c, visudo.c:
	updated version
	[0c362fb21]

	* compat.h, ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h,
	insults.h, options.h, parse.yacc, pathnames.h.in, sudo.h:
	updated version
	[ca5babc43]

	* Makefile.in:
	more tweaks to update_version
	[a3e801b5c]

	* Makefile.in:
	fixed up update_version rule
	[ab0c4bd97]

	* configure.in:
	++version
	[8dfd58be3]

	* Makefile.in:
	removed supe of check.c
	[9032779ac]

	* INSTALL:
	++version I missed
	[96c8ab7a1]

	* RUNSON:
	updated
	[59366d1b5]

	* BUGS, INSTALL, Makefile.in, README, check.c, compat.h,
	config.h.in, dce_pwent.c, emul/utime.h, find_path.c, getspwuid.c,
	getwd.c, goodpath.c, ins_2001.h, ins_classic.h, ins_csops.h,
	ins_goons.h, insults.h, interfaces.c, logging.c, options.h, parse.c,
	parse.lex, parse.yacc, pathnames.h.in, putenv.c, strdup.c, sudo.c,
	sudo.h, sudo_setenv.c, testsudoers.c, tgetpass.c, utime.c,
	version.h, visudo.c:
	updated version
	[bb6a33e08]

	* CHANGES:
	updated for 1.5.5
	[82bf12933]

	* Makefile.in:
	add rules to update version stuff in files so I don't need to do it
	by hand
	[d89923705]

	* sudo.h:
	sudoers_fp is now extern
	[acea5f29e]

	* sudo.c:
	in check_sudoers, cache the sudoers file handle in sudoers_fp so we
	don't have to open it again in the parse. This may help with weird
	solaris problems where EAGAIN sometime occurrs.
	[8de870a70]

	* parse.c:
	sudoers file open is now done only in check_sudoers() so we just do
	a rewind() instead of an open. May help people on solaris who were
	getting EAGAIN.
	[cae4b9d3e]

1998-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	mention that newer glibc is fixed
	[859e6d86e]

1998-01-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	newer irix uses _RLDN32_* envariables for 32-bit binaries so ignore
	_RLD* instead of _RLD_*
	[7b3bc67b0]

	* parse.c:
	typo
	[652393318]

	* parse.c:
	fix that bug for real
	[6a2b6895f]

	* INSTALL:
	document Linux's libc6 brokenness.
	[46a2f512f]

	* parse.yacc:
	-Wall
	[dd18f0def]

	* RUNSON:
	updated
	[c627b8d2b]

	* TROUBLESHOOTING:
	remind people to HUP syslogd
	[e3b90fe98]

	* Makefile.in:
	add -O flag to tar
	[df6c6d30b]

	* RUNSON:
	updated
	[fe5b5de20]

	* TODO:
	updated
	[b93a31eda]

	* sudo.pod:
	remove author's email addr. people should mail sudo-bugs
	[a703659c3]

	* INSTALL:
	fix version
	[994d39953]

	* README, check.c, compat.h, config.h.in, configure.in, dce_pwent.c,
	find_path.c, getspwuid.c, getwd.c, goodpath.c, ins_2001.h,
	ins_classic.h, ins_csops.h, ins_goons.h, insults.h, interfaces.c,
	logging.c, options.h, parse.c, parse.lex, parse.yacc,
	pathnames.h.in, putenv.c, strdup.c, sudo.c, sudo.h, sudo_setenv.c,
	testsudoers.c, tgetpass.c, utime.c, version.h, visudo.c:
	++version
	[166789a1d]

	* RUNSON:
	updated
	[3068ee535]

	* INSTALL, Makefile.in:
	++version
	[b1d52793c]

	* CHANGES:
	updated fort 1.5.4
	[1c5372b88]

	* check.c:
	exit(1) if user enters no passwd
	[a74348f17]

	* BUGS:
	++version
	[9b05743b6]

	* parse.c:
	commands can start with ./* not just /* -- fixes a serious security
	hole.
	[ab9b35245]

1997-12-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	Don't set the tty variable to NULL when we lack a tty, leave it as
	"unknown".
	[07e09b16f]

1997-11-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sample.sudoers:
	fix usage of (username) in conjunction with , and !
	[687434bc9]

	* visudo.c:
	catch the case where the user is not in the passwd file
	[82654611c]

	* tgetpass.c:
	use fileno(input) + 1 instead of getdtablesize() as the nfds arg to
	select(2)
	[ea498e61d]

	* sudo.c:
	define tty global to an initial value to avoid dumping core in
	logging functions when passwd file is unavailable.
	[4b4e2b792]

	* sudo.c:
	do the set_perms(PERM_USER, sudo_mode) after we have gotten the
	passwd entry
	[ff05eaccf]

	* sudo.pod:
	talk about problem of ALL
	[52fb34f92]

1997-10-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README:
	new web location
	[c035f8e80]

	* INSTALL:
	fdesc bug is fixed in Open/Net BSD
	[ad6df9f51]

	* HISTORY:
	updates from Nieusma
	[ce0fc8333]

1997-10-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* dce_pwent.c:
	move compat.h after the system includes
	[671e941d5]

1997-08-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	save errno from being clobbered by wait(). From Theo
	[b5f54d774]

1997-05-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h:
	fix an occurence of setresuid -> setreuid (typo)
	[8b28002ef]

1997-03-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* install-sh:
	check for path to strip
	[abeaf9523]

1997-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	deal with maxfilelen < 0 case
	[0caa3cc55]

	* OPTIONS:
	fixed descriptin
	[f842ab526]

1996-12-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	correct error message if mode/owner wrong and not statable by owner
	but is statable by root.
	[b0192afc3]

1996-11-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.guess, config.sub:
	autoconf 2.11
	[294b7f496]

1996-11-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, RUNSON, TODO:
	sudo 1.5.3.
	[a36ba7b5c]

1996-11-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc, sudo.h:
	command_alias -> generic_alias
	[23b2719a3]

	* sample.sudoers:
	added Runas_Alias example and fixed syntax errors
	[33f9387f3]

	* OPTIONS, options.h:
	updated MAILSUBJECT
	[e5b84ec22]

	* logging.c:
	added %h expansion
	[773ec24a3]

	* INSTALL, Makefile.in, README, check.c, compat.h, config.h.in,
	configure.in, dce_pwent.c, find_path.c, getspwuid.c, getwd.c,
	goodpath.c, ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h,
	insults.h, interfaces.c, logging.c, options.h, parse.c, parse.lex,
	parse.yacc, pathnames.h.in, putenv.c, strdup.c, sudo.c, sudo.h,
	sudo_setenv.c, testsudoers.c, tgetpass.c, utime.c, version.h,
	visudo.c:
	++version
	[5e723efe7]

	* BUGS, emul/utime.h:
	++version
	[30da32917]

	* sudoers.pod:
	document Runas_Alias
	[ca6a440b9]

	* visudo.pod:
	q (uid) -> Q
	[f7a75a2a4]

	* visudo.c:
	buffer oflow checking q (uit) -> Q if yyparse() fails drop into
	whatnow
	[75704661b]

	* parse.yacc:
	add size params to sprintf
	[7e737b38e]

	* parse.lex:
	allow trailing space after '\\' but before '\n'
	[156e7dbe2]

	* find_path.c:
	off by one error in path size check
	[aa54c845e]

	* check.c:
	sprintf paranoia
	[679876886]

1996-11-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	fixed more_aliases
	[fcb212ea8]

	* visudo.c:
	now warns if killed by signal ./
	[df20cedfc]

1996-11-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	fix Runas_Alias stuff Alias's in runas list now get expanded (but it
	is gross)
	[8336c86cb]

	* sudo.c:
	Can now deal with SUDOERS_UID == 0 and SUDOERS_MODE == 0400
	[b317dc70a]

	* parse.yacc:
	add Runas_Alias support change FOO to FOO_ALIAS (ie: USER_ALIAS)
	[ec7e18737]

	* parse.lex:
	Add Runas_Alias and simplify a rule.
	[add3e8df2]

	* parse.yacc:
	always store User_Alias's since they can be used inside of a runas
	list. Sigh. Really need a Runas_Alias instead.
	[894ef0be7]

1996-10-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	deal with case where there is no sudoers file
	[4b6e45e63]

1996-10-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TROUBLESHOOTING:
	added one
	[6108f1b1a]

1996-10-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* HISTORY, testsudoers.c:
	developement -> development
	[413f86907]

	* INSTALL:
	added a note
	[e933c6679]

	* RUNSON:
	for 1.5.2
	[96baceed2]

	* CHANGES:
	updated
	[a5e9569ef]

1996-10-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* PORTING:
	removed seteuid() notes
	[efd201c57]

1996-10-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h:
	better seteuid() emulatino
	[873346d18]

	* configure.in:
	added check for seteuid
	[c7a278dd9]

	* config.h.in:
	added HAVE_SETEUID
	[142136af0]

1996-10-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	first stab at sequent support
	[0032402ab]

	* config.h.in:
	added HAVE_SYS_SELECT_H
	[fbb39c0ee]

	* compat.h:
	sequent -> _SEQUENT_
	[9376a8cd8]

	* compat.h:
	added seteuid() macro for DYNIX
	[885cbad12]

	* tgetpass.c:
	_AIX -> HAVE_SYS_SELECT_H
	[67b0c8635]

1996-10-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, INSTALL, Makefile.in, OPTIONS, README, config.h.in,
	logging.c, parse.c, parse.lex, parse.yacc, putenv.c, strdup.c,
	sudo_setenv.c, testsudoers.c, tgetpass.c, utime.c, visudo.c:
	++version
	[b0248f15d]

	* check.c, compat.h, dce_pwent.c, emul/utime.h, find_path.c,
	getspwuid.c, getwd.c, goodpath.c, ins_2001.h, ins_classic.h,
	ins_csops.h, ins_goons.h, insults.h, interfaces.c, options.h,
	pathnames.h.in, version.h:
	++version
	[e712f1152]

	* sudo.pod:
	added -H and SUDO_PS1
	[0df08805e]

	* configure.in:
	use SUDO_FUNC_FNMATCH
	[2289375f2]

	* aclocal.m4:
	added SUDO_FUNC_FNMATCH
	[95389204f]

	* sudo.c:
	added -H flag
	[f0379ffce]

	* sudo.h:
	added MODE_RESET_HOME /
	[f59e97e49]

1996-10-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	mention OPIE
	[7dc02d05f]

	* options.h:
	SKEY -> OTP
	[ca99af41d]

	* configure.in:
	added opie support
	[d4f1b26e7]

	* compat.h, config.h.in:
	added HAVE_OPIE
	[932ec901b]

	* check.c:
	added HAVE_OPIE and changed to *_OTP_*
	[3ecf71cad]

	* OPTIONS:
	SKEY -> OTP
	[87a71d92f]

1996-10-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	moved fclose() in skey stuff.
	[1cb521729]

1996-10-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* putenv.c:
	index -> strchr remove unnecesary stuff
	[043a7ef1a]

	* check.c:
	now call skeychallenge() to get challenge instead of making one up
	ourselves. this way, we get extra goodies in the prompt.
	[f4f2eb66b]

1996-09-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	added one
	[33199ba0d]

	* parse.lex:
	allow logins to start with a number (YUCK!)
	[de10f9281]

1996-09-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TROUBLESHOOTING:
	added soalris 2.5 vs 2.4 note
	[4b1e2cb6f]

	* configure.in:
	DUNIX doesn't need -lnsl
	[4bf4ed77c]

	* CHANGES:
	*** empty log message ***
	[268af7a6b]

	* check.c, compat.h, config.h.in, dce_pwent.c, find_path.c,
	getspwuid.c, getwd.c, goodpath.c, ins_2001.h, ins_classic.h,
	ins_csops.h, ins_goons.h, insults.h, interfaces.c, logging.c,
	options.h, parse.c, parse.lex, parse.yacc, pathnames.h.in, putenv.c,
	strdup.c, sudo.c, sudo.h, sudo_setenv.c, testsudoers.c, tgetpass.c,
	utime.c, version.h, visudo.c:
	courtesan
	[6a230806a]

	* PORTING, README, RUNSON:
	courtesan
	[475865158]

	* INSTALL, Makefile.in, TROUBLESHOOTING:
	courtesan
	[b9993015f]

	* visudo.pod:
	*** empty log message ***
	[9a4c5a915]

	* sudo.pod, visudo.pod:
	courtesan
	[bf1f33e51]

1996-09-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* HISTORY:
	added courtesan ./
	[e9cc671d8]

1996-09-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	added $SUDO_PROMPT support
	[ff9b44992]

1996-09-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	print long skey challemged to stderr, not stdout
	[ce5547930]

1996-09-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	updated for 1.5.1
	[9e94a58a3]

	* emul/utime.h:
	++version
	[d73996961]

1996-08-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	updated for 1.5.1
	[571ba606c]

1996-08-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	use shost, not host for tgetpass
	[6e0efd965]

	* sudo.pod:
	documented %u and %h
	[aa50602a5]

	* OPTIONS:
	documented %u and %h
	[08124aa7c]

	* configure.in:
	fixed typo
	[28258dfcc]

	* INSTALL, Makefile.in, README, check.c, compat.h, config.h.in,
	dce_pwent.c, find_path.c, getspwuid.c, getwd.c, goodpath.c,
	ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h, insults.h,
	interfaces.c, logging.c, options.h, parse.c, parse.lex, parse.yacc,
	pathnames.h.in, putenv.c, strdup.c, sudo.c, sudo.h, sudo_setenv.c,
	testsudoers.c, tgetpass.c, utime.c, version.h, visudo.c:
	++version
	[d189849b4]

	* BUGS:
	++version
	[f2ce8eeb3]

1996-08-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, configure.in, version.h:
	++version
	[64bc07fae]

	* sudo.h:
	new tgetpass() params
	[259ced1cc]

	* check.c:
	pass use and host to tgetpass
	[3c0aaf274]

	* tgetpass.c:
	added %u and %h escapes
	[23ccf1269]

	* OPTIONS, check.c, options.h:
	added NO_MESSAGE
	[ad9f1ff3c]

	* configure.in:
	added cray (unicos) support
	[91abcbf09]

1996-08-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* OPTIONS, options.h, sudo.c:
	added SHELL_SETS_HOME
	[944fb1c5f]

1996-08-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	added note about "make install"
	[dacecfff9]

	* parse.yacc:
	changed length/size params from int to size_t
	[a47e58eda]

	* OPTIONS:
	now get CSOPS insults as well by default
	[71cb7c694]

	* insults.h:
	use csops insults too by default
	[08795dd45]

	* INSTALL, Makefile.in, README, config.h.in, configure.in,
	version.h:
	version = 1.5
	[53e6e6ec4]

	* sudo.c:
	added runas_homedir
	[56405a97e]

	* TODO:
	updated for 1.5
	[feeaac1f0]

	* RUNSON:
	updated for 1.5
	[811464dd0]

	* CHANGES:
	1.5 release
	[f9b425506]

	* INSTALL:
	added "upgrading" notes
	[5f1b0564c]

1996-08-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	now do chmod and chown after edit of temp file and before rename
	[81bdc0aa1]

1996-08-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	++version added INSTALL.configure
	[39bc5df7a]

	* configure.in, version.h:
	++version
	[35d209fc9]

	* TROUBLESHOOTING:
	*** empty log message ***
	[6ec8aba27]

	* parse.yacc:
	added missing cast
	[9347d2299]

	* sudo.c:
	sets $HOME to pw_dir of runas user
	[10d364249]

	* sudo.pod:
	document $HOME change
	[3d560a948]

1996-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod:
	fixed up some wording
	[375014458]

	* check.c, dce_pwent.c, find_path.c, getspwuid.c, getwd.c,
	goodpath.c, interfaces.c, logging.c, parse.c, parse.lex, parse.yacc,
	putenv.c, strdup.c, sudo.c, sudo_setenv.c, testsudoers.c,
	tgetpass.c, utime.c, visudo.c:
	++version
	[35825133a]

	* compat.h, ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h,
	insults.h, options.h, pathnames.h.in, sudo.h:
	++version
	[daa856faa]

	* emul/utime.h:
	++version
	[062e3de7a]

	* sudo.h:
	name nad type changes
	[76d7bf617]

	* testsudoers.c:
	now works with new sudo
	[7eea86a4c]

	* parse.yacc:
	fixed some XXX
	[be3b37d15]

	* parse.yacc:
	some variable name changes + comment headers for functions.
	[f0d121ea2]

	* tgetpass.c:
	added extra paren's to make compilers happy
	[bd228048b]

	* sudo.c:
	*** empty log message ***
	[7c3b77207]

	* parse.c:
	now uses init_parser() if not in sudoers and tries "list" or
	"validate" scold but don't be nasty.
	[7d272a7ff]

	* TROUBLESHOOTING:
	now can use upper case login names
	[ed452695f]

	* visudo.c:
	now uses init_parser()
	[d10ba268d]

	* INSTALL, README:
	updated
	[6ea54d165]

	* PORTING:
	added info about PASSWORD_TIMEOUT
	[69aa11849]

	* INSTALL.configure:
	Initial revision
	[60d9d742d]

	* BUGS:
	fixed a bug ,
	[df08f782b]

	* parse.yacc:
	now dynamically allocates memory for the stacks -- no more
	overflows!
	[5436bf7c8]

	* sudo.pod:
	-l now explands command aliases
	[37069572f]

	* parse.yacc:
	hacks to expand command aliases for `sudo -l'
	[bb29f0023]

	* sudo.c:
	remove $ENV and $BASH_ENV (dangerous in ksh, posix sh, and bash)
	[6da9b067a]

	* sudo.h:
	added struct command_alias
	[c3991cf7e]

	* sudo.pod:
	fixed a bug
	[0de439852]

	* lsearch.c:
	in compar() key should be first arg
	[76d219d87]

1996-08-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS:
	fixed some bugs
	[50c058e5f]

	* parse.yacc:
	can now deal with upcase HOST and USER names
	[0f643f7a4]

	* sudo.c:
	don't yell too loudly at non-sudoers if they do "sudo -l"
	[085fbf822]

	* sudo.pod:
	fixed thinko
	[740d2166e]

	* parse.c:
	fix comment
	[8c35fa2ec]

1996-08-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c, parse.yacc:
	added support for new `sudo -l' stuff
	[4fb2f4ca9]

	* sudo.c:
	now uses list_matches()
	[236019c88]

	* sudo.h:
	added struct sudo_match
	[8d4d6aebf]

	* configure.in:
	now more -lgnumalloc
	[f85cd6de2]

1996-08-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* install-sh:
	added more paths for chown and whoami
	[8db0946c7]

1996-07-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	typo
	[8e1ce2143]

1996-07-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4:
	fixed DUNIX check for shadow pw
	[73ef23903]

	* tgetpass.c:
	now only turn off echo if it is already on. this fixes a race when
	you use sudo in a pipelin
	[bdfd25e87]

	* INSTALL:
	updated
	[9e058b7c2]

	* configure.in:
	changed "test -z $foo && do_this" to if; then construct
	[5126cd239]

1996-07-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added missing defines of SHADOW_TYPE
	[731bf90ae]

1996-07-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	protect AUTH_CRYPT_OLDCRYPT and AUTH_CRYPT_C1CRYPT since they are
	only in dunix 4.x
	[fb89ade3e]

	* getspwuid.c:
	added AUTH_CRYPT_C1CRYPT support
	[b7670208d]

	* parse.c:
	no longer return VALIDATE_NOT_OK if there was a runas that didn't
	match. Now we can have runas stuff on more than one line.
	[89784f655]

	* getspwuid.c, sudo.c, tgetpass.c:
	use SHADOW_TYPE instead of HAVE_C2_SECURITY
	[e7999949e]

	* configure.in:
	got rid of HAVE_C2_SECURITY SHADOW_TYPE is always defined to
	something
	[b543114b0]

	* config.h.in:
	removed HAVE_C2_SECURITY added SPW_BSD
	[69b1a0b42]

	* compat.h:
	use SHADOW_TYPE instead of HAVE_C2_SECURITY
	[f9d2f8923]

	* check.c:
	SHADOW_TYPE is always defined so just against its value
	[f5da2ecd9]

	* aclocal.m4:
	added SUDO_CHECK_SHADOW_DUNIX
	[f13ef276c]

1996-07-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	* -> ?* in one example added another instance of (runas) and one of
	NOPASSWD:
	[c809dd70c]

1996-07-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added back check for config.cache from other host type
	[7fea014bc]

	* parse.lex:
	removed an instance of \"
	[c5752f7b6]

	* sample.sudoers:
	added an example
	[2db411723]

	* sudoers.pod:
	updated wrt new wildcard matching
	[48a1af2dc]

	* configure.in:
	new check for shadow passwords if we don't know anything
	[f089b9ae6]

	* aclocal.m4:
	new SUDO_CHECK_SHADOW_GENERIC
	[228a2ffa7]

	* configure.in:
	added back check for -lsocket (oops)
	[f25c6bb6b]

	* configure.in:
	better (working) check for shadow passwd type if we know to use C2.
	[73c39341f]

	* configure.in:
	now uses AC_CANONICAL_HOST to figure out os type
	[db9dddd2a]

	* Makefile.in:
	added config.{guess,sub}
	[859753c60]

	* aclocal.m4:
	removed unused stuff to figure out os type
	[36b9dafdf]

	* config.sub:
	added openbsd
	[a656b6123]

	* config.sub:
	Initial revision
	[216889be9]

	* config.guess:
	Initial revision
	[d588e771e]

	* testsudoers.c:
	don't call fnmatch() with FNM_PATHNAME flag unless it can only be a
	pathname. need to check against sudoers_args even if user_args is
	nil
	[09c9f7ed9]

	* parse.c:
	don't call fnmatch() with FNM_PATHNAME flag unless it can only be a
	pathname need to check against sudoers_args even if user_args is nil
	[d7ae14e4d]

1996-07-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	added support for AUTH_CRYPT_OLDCRYPT w/ DUNIX C2
	[b380c0ade]

	* testsudoers.c:
	now takes command line args and uses cmnd_args
	[27386f12f]

	* parse.lex:
	fill_args was adding an extra leading space
	[4dba5f4fc]

1996-07-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	fixed dummy command_matches()
	[945d9795e]

	* parse.yacc:
	fixed prototype
	[efb526bb2]

	* sudo.h:
	added cmnd_args
	[7fb14dd3f]

	* parse.yacc:
	now uses flat args string
	[f62d59e92]

	* parse.c, parse.lex:
	now uses flat arg string
	[8a177073e]

	* visudo.c:
	added cmnd_args def
	[27d484f3f]

	* sudo.c:
	now sets cmnd_args global
	[bd641284a]

	* logging.c:
	cmnd_args is now exported from sudo.[ch]
	[cfcbda54f]

1996-07-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	can't rely on cmnd_matches as much as I thought -- added some $$
	stuff back in to prevent namespace pollution problems.
	[d2173d029]

	* parse.yacc:
	Simplified parse rules wrt runas and NOPASSWD (more consistent).
	[0b3777229]

1996-07-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.lex:
	NOPASSWD may now have blanks before the ':' '(' only starts a
	'runas' if in the initial state to avoid collision with command args
	[10e0e119a]

	* configure.in:
	added checks for specific shadow passwd schemes
	[bf505a852]

	* aclocal.m4:
	added routines to check for specific shadow passwd types
	[d2bbb4989]

1996-07-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added support for ncr boxen
	[0f31b85ef]

	* aclocal.m4:
	added support for detecting ncr boxen
	[25e15d666]

1996-07-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added sinix support
	[fd134afec]

1996-07-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TROUBLESHOOTING:
	added info about "config.cache from other other" error.
	[2298f95f1]

	* aclocal.m4:
	now makes sure you don't have a config.cache file from another OS
	[aebf2b71d]

	* configure.in:
	now sets $LIBS when needed to configure links with libs when doing
	tests hpux10 now uses SPW_SECUREWARE for C2 added check for
	bigcrypt(3) if SPW_SECUREWARE
	[5de06090e]

	* getspwuid.c:
	fixed typo
	[967ae180e]

	* tgetpass.c:
	now include stuff for SPW_SECUREWARE to get AUTH_MAX_PASSWD_LENGTH
	[015c90151]

	* getspwuid.c:
	no more SPW_HPUX10
	[cc4420658]

	* config.h.in:
	no more SPW_HPUX10 added HAVE_BIGCRYPT
	[c4ceabc70]

	* compat.h:
	now uses AUTH_MAX_PASSWD_LENGTH if SPW_SECUREWARE
	[88cfad174]

	* check.c:
	SPW_SECUREWARE now uses bigcrypt
	[c6b64b90a]

1996-07-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sample.sudoers:
	fixed 2 syntax errors
	[50f80d4b0]

	* sudoers:
	root may now run ALL as ALL
	[cde762379]

1996-07-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* interfaces.c:
	fixed a typo/thinko that broke BSD's with sa_len
	[ed9227dfd]

1996-07-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c, configure.in:
	updated AFS support
	[e79f19be3]

	* TROUBLESHOOTING:
	added entry about /usr/ucb/cc
	[19469d203]

	* INSTALL:
	prep no longer holds gcc binaries
	[cefe4d66c]

	* INSTALL:
	updated AFS note
	[90eda2cb9]

	* Makefile.in:
	added @AFS_LIBS@
	[c6b4aca90]

	* compat.h:
	AFS allows long passwords
	[e518e10e0]

	* testsudoers.c:
	fixed -u user support
	[5a616c40c]

	* parse.c:
	sudo -v now groks VALIDATE_OK_NOPASS
	[54d39940b]

	* parse.yacc:
	fixed no_passwd vs. runas_matched
	[bae4e50e0]

	* TROUBLESHOOTING:
	took out stuff about NFS-mounting since it is no longer an issue
	[d0d972fa0]

	* INSTALL:
	added --with-libraries > --with-libpath --with-incpath
	[728bc783e]

	* parse.yacc:
	was setting runas_matches to -1 in wrong place
	[11f5b7788]

	* check.c:
	removed usersec.h which is not present in new AFS versions
	[33383c49e]

	* tgetpass.c:
	now deals with timeout <= 0
	[a27847e1b]

	* OPTIONS:
	updated
	[bf55f57bd]

	* configure.in:
	BSD/OS >= 2.0 now uses shlicc instead of just gcc
	[32581d8a9]

	* sudo.c:
	fixed backwards compatibility with sudo 1.4 sudoers mode for root
	readable/writable filesystems
	[633b6d2c3]

	* Makefile.in:
	now gives INSTALL -c flag
	[7a5a50b75]

	* parse.yacc:
	slightly simpler initialization of no_passwd and runas_matches
	[fb8c99d83]

	* testsudoers.c:
	added -u username support
	[064589670]

	* configure.in:
	improved --with-libraries support
	[a74cdaf8d]

1996-07-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added --with-incpath, --with-libpath, --with-libraries
	[5b4a48996]

	* parse.yacc:
	now initializes some fields that weren't getting set to -1 pretty
	gross -- need a rewrite.
	[f52c2aa2e]

1996-06-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* alloca.c:
	removed emacs'isms
	[6d7e5a309]

	* configure.in:
	no longer add -lPW to *_LIBS since we include alloca.c
	[380e37c3c]

	* config.h.in:
	added HAVE_ALLOCA_H
	[1775cd168]

	* Makefile.in:
	added alloca.c
	[01d3bf08b]

	* alloca.c:
	Initial revision
	[269efa95c]

	* configure.in:
	++version
	[8e46ed96d]

1996-06-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	now set uid to 1 instead of nobody for PERM_SUDOERS since nobody is
	not always set to a valid uid.
	[0ac88016c]

	* OPTIONS:
	fixed entry for SUDO_MODE
	[4d9f668bb]

	* sudo.c:
	Fixed NFS-mounted sudoers file under solaris both uid *and* gid were
	being set to -2. Now beat NFS to the punch and set uid to "nobody"
	ourselves, preserving group 0 to read sudoers.
	[ea3da1971]

	* parse.c:
	moved set_perms(PERM_ROOT) to be before yyparse()
	[d60779d01]

	* logging.c:
	fixed a typo
	[c7d5c3edf]

	* configure.in:
	no longer need AC_PROG_INSTALL
	[a01ddb350]

	* Makefile.in:
	always use install-sh to avoid install(1)'s that use get{pw,gr}nam
	[f0944b76c]

	* INSTALL:
	make clean -> make distclean
	[8571327c7]

1996-06-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	removed some unnecsary if's
	[cb2fd7e30]

	* Makefile.in, version.h:
	++version
	[95cbc71d6]

	* parse.c, testsudoers.c:
	now includes netgroup.h
	[082d9aed0]

	* interfaces.c:
	removed cats of ioctl to int since they didn't shut up -Wall
	[79810c01e]

	* interfaces.c:
	explicately cast ioctl() to int since it it not always declared
	[5fc1d4b79]

	* sudo.h:
	added declarations for yyparse() and yylex()
	[08470fd76]

	* parse.yacc:
	fixed an occurence of '==' -> '='
	[2f49ee316]

	* config.h.in, configure.in:
	added check for netgroup.h
	[b57aab8cd]

	* sudo.c:
	fixed 2 compiler warnings
	[2f7e9de28]

	* sudo.c:
	SHELL_IF_NO_ARGS caused core dump since NewArg[cv] weren't being
	initialized
	[399cddc8e]

1996-06-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod:
	fixed a typo
	[b512f62ba]

1996-06-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	fixed a formatting thingie
	[a35441d43]

	* parse.c, parse.yacc:
	fixed -u support with multiple user lists on a line
	[8b66b6116]

	* configure.in:
	unixware needs -lgen
	[a23fb9c4f]

	* README:
	updated ftp location
	[4edc42a9a]

	* sudoers.pod:
	add net_addr/netmask support
	[a0d157b76]

	* sample.sudoers:
	added net_addr/mask example
	[c796e229c]

	* parse.c, parse.lex:
	added support for net_addr/netmask
	[f66eb18a5]

1996-06-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	^ -> !
	[0ede02bbe]

1996-06-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	updated for 1.4.3
	[6a06980d2]

	* CHANGES:
	udpated for 1.4.3
	[891b7c05a]

	* BUGS, TODO, TROUBLESHOOTING:
	updated
	[5e7c7dfb8]

	* sample.sudoers:
	updated with examples of new stuff
	[a28397923]

	* INSTALL, README:
	++version
	[f64553860]

	* sudoers.pod:
	updated wrt -u and NOPASSWD
	[255e60f65]

	* sudo.pod:
	updated wrt -u and CAVEATS
	[3041d6537]

1996-06-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	fixed usage()
	[319a9ffe5]

	* parse.lex:
	now use :foo: character classes (makes no diff for generated lexer)
	[99e16a5a2]

1996-06-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	fixed LONG_SKEY_PROMPT stuff
	[e4743a46c]

1996-06-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	fixed a comment
	[f3cdb9aa3]

	* lsearch.c:
	make more like NetBSD one -- now compiles w/o warnings
	[1a6b10fe8]

	* emul/search.h:
	fixed decls of lsearch()
	[e04a2ef6c]

	* config.h.in, configure.in, getspwuid.c:
	added SPW_HPUX10
	[10a84d536]

	* check.c:
	hpux 10 uses bigcrypt() if C2
	[ac186f85f]

1996-06-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	now always uses fnmatch to match args
	[6737221aa]

	* tgetpass.c:
	back to using stdio instead of raw i/o since that caused some
	problems
	[1e21b9212]

1996-05-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	now give usage warning if use -l,-v,-k with args
	[636e5f1df]

1996-05-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	NewArgc is now set to 1 for -l, -v, -k
	[59f71cc27]

	* sudo.c:
	now sets sudoers to correct group if mode is 0400
	[47f7ef9f3]

	* install-sh:
	updated to version used by inn and bind
	[e577aafd1]

	* configure.in:
	now uses -lgnumalloc if it exists
	[1af442146]

	* Makefile.in:
	"make install" now sets uid/gid and mode on sudoers if it exists
	[4520d3c66]

	* sudo.c:
	rmeoved debugging statements
	[afbddeebe]

	* parse.yacc:
	added a missing free()
	[2ed1645b9]

	* sudo.c:
	now uses user_gid instead of getegid (which was wrong anyway) to set
	SUDO_GID Now sets command line args in SUDO_COMMAND envariabled
	(logging.c depends on args being in the environment)
	[2c1b963a2]

	* logging.c:
	now uses SUDO_COMMAND envariable to get command args rather than
	building it up again.
	[95fd02c9f]

	* parse.c:
	now uses user_gid
	[d1c239718]

	* sudo.c:
	fixed off by one error in allocation NewArgv
	[5a32554c0]

	* parse.c:
	in sudoers, 'command ""' now means command with no args
	[9ec0715a3]

	* configure.in:
	added check for fnmatch(3) and fnmatch.h
	[275314dbd]

	* config.h.in:
	added HAVE_FNMATCH
	[b9f8e76bd]

	* Makefile.in:
	replaced wildcat.* with fnmatch.*
	[49d0b999f]

	* testsudoers.c:
	now uses fnmatch()
	[0713be74a]

1996-05-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	now uses fnmatch() instead of wildmat a trailing star (*) by itself
	now matches multiple args added support for wildcards in the
	pathname in sudoers
	[a062a35c7]

1996-05-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* fnmatch.c:
	now includes compat.h and config.h
	[63e1abb3d]

	* config.h.in:
	added HAVE_FNMATCH_H
	[4f7d758d5]

	* configure.in:
	now checks for alloca() (if needed by bison or dce) and links with
	-lPW if it contains alloca() and libv and compiler do not.
	[0dfc086d4]

	* emul/fnmatch.h, fnmatch.3, fnmatch.c:
	Initial revision
	[af0130958]

1996-04-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	now fixes mode on sudoers if set to 0400 to aid in upgrade
	[afe3f2749]

1996-04-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	fixed pod2man usage
	[94687786e]

	* Makefile.in, configure.in, version.h:
	++version
	[cc766e700]

	* testsudoers.c, visudo.c:
	runas_user is now initialized to "root"
	[8263fc99d]

	* sudo.h:
	removed PERM_FULL_ROOT
	[5f7eaa954]

	* sudo.c:
	runas_user defaults to "root" so no more need to PERM_RUNAS
	[487432985]

	* parse.c:
	will now only running commands as root if there was no runas list
	(or if root is in the runas list)
	[624218c54]

	* logging.c:
	now logs "USER=%s"
	[36f120849]

	* parse.yacc:
	runas_matches is now set to false if we get a negative match
	[7c9580971]

	* parse.lex:
	make #uid work + some minor cleanup
	[60f30dc2f]

	* sample.sudoers:
	added support for NOPASSWD and "runas" from garp@opustel.com /
	[1d93314f9]

	* visudo.c:
	added support for "runas" from garp@opustel.com replaced
	SUDOERS_OWNER with SUDOERS_UID, SUDOERS_GID added support for
	SUDOERS_MODE
	[aa92ab8df]

	* testsudoers.c:
	added support for "runas" from garp@opustel.com
	[fdcd43047]

	* sudo.h:
	added support for NO_PASSWD and runas from garp@opustel.com replaced
	SUDOERS_OWNER with SUDOERS_UID and SUDOERS_GID and added support fro
	SUDOERS_MODE
	[6b725ac51]

	* sudo.c:
	added support for NO_PASSWD and runas from garp@opustel.com replaced
	SUDOERS_OWNER with SUDOERS_UID and SUDOERS_GID and added support fro
	SUDOERS_MODE
	[da33d14c3]

	* parse.yacc:
	added support for NO_PASSWD and runas from garp@opustel.com
	[0acd82680]

	* parse.c, parse.lex:
	added support for NO_PASSWD and runas from garp@opustel.com
	[32002b7d9]

	* logging.c:
	added support for SUDOERS_WRONG_MODE and "runas"
	[88c189315]

	* configure.in:
	added --with-CC only link with -lshadow on linux (with shadow pw) if
	libc lacks getspnam()
	[d726595a1]

	* OPTIONS, options.h:
	removed NO_PASSWD since it is not possible to do this in the sudoers
	file itself. Replaced SUDOERS_OWNER with SUDOERS_UID and
	SUDOERS_GID. Added SUDOERS_MODE.
	[394083380]

	* Makefile.in:
	now uses SUDOERS_UID and SUDOERS_GID
	[bab3ce55d]

1996-04-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	added --with-CC
	[26956e346]

1996-04-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.lex:
	added double quote support
	[b4a7b0b3b]

	* sudoers.pod:
	documented double quoting
	[f8e16f134]

1996-04-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* mkinstalldirs:
	Initial revision
	[cab14bb40]

	* check.c:
	fixed some indentation
	[b61573f6d]

	* Makefile.in:
	fixed a typo
	[69e72e361]

	* Makefile.in:
	added install-dirs .
	[d51ed38ad]

1996-04-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* dce_pwent.c:
	new version from "Jeff A. Earickson" <jaearick@colby.edu>
	[dbc8a7b31]

1996-04-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	$CSOPS -> $with_csops (whoops, missed one)
	[ec1dffeb6]

	* BUGS:
	updated
	[c3c1d1c32]

	* parse.lex:
	FQHOST now has same constraints as non-FQHOST
	[0a31e88ba]

	* INSTALL:
	added note about OS's w/ shadow passwords turned on by default
	[7b4f181e5]

1996-04-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	fixed a typo
	[1f6605163]

	* configure.in:
	added support for --without-THING sanitized shadow pw situtation by
	adding support for --without-C2
	[9d633ad10]

	* tgetpass.c:
	fixed a typo wrt placement of an end paren
	[20a284166]

	* check.c:
	was closing an fd that may not have been opened
	[0eb20432f]

1996-03-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* OPTIONS, options.h, sudo.c:
	added NO_PASSWD
	[1265fcc4f]

1996-03-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	now always use shadow pw on some arches
	[823ddd9fd]

1996-03-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added pyramid support
	[9b33594ed]

	* configure.in:
	no longer check for C2 if alternate passwd method is used no longer
	check for some libs twice
	[7ff41561c]

	* parse.yacc:
	moved fqdn stuff into parse.lex (FQHOST)
	[f70482057]

	* parse.lex:
	added FQHOST rules
	[182cb02be]

	* tgetpass.c:
	now define TCSASOFT in necesary
	[61a3d472e]

	* tgetpass.c:
	now uses read/write instead of stdio string goop to avoid problems
	with select(2)
	[e47ce61c4]

	* OPTIONS, find_path.c, options.h:
	-DNO_DOT_PATH -> -DIGNORE_DOT_PATH
	[b0fd211fb]

1996-03-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	added note about no shadow auto-detect if using alternate auth
	schemes
	[954be8925]

	* configure.in:
	don't check for C2 if AFS or DCE (unless they said --with-C2)
	[9b6fc4c41]

	* testsudoers.c:
	now groks shost
	[5e8e31386]

	* OPTIONS, find_path.c, options.h:
	added NO_DOT_PATH
	[2faa03ec4]

1996-03-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c:
	checkdot now works correctly
	[13ad7291f]

1996-03-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	can't have DCE and C2 passwords both...
	[dd8e4bba8]

1996-03-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc, sudo.c, sudo.h, visudo.c:
	now uses shost even if not FQDN
	[058a58a50]

	* configure.in:
	now looks for skey in /usr/lib and doesn't require libskey to be in
	/usr/local/lib just because skey.h is (for my netbsd box :-)
	[8ee0906f2]

	* aclocal.m4, config.h.in, pathnames.h.in:
	_SUDO_PATH_ -> _CONFIG_PATH_
	[d3fc83d9a]

	* aclocal.m4, sudo.pod:
	/var/run/.odus -> /var/run/sudo
	[5c30bd48d]

	* pathnames.h.in:
	now uses _SUDO_PATH_TIMEDIR
	[4cd2a9390]

	* OPTIONS:
	udpated FQDN
	[f39b2329e]

	* aclocal.m4, configure.in:
	added SUDO_TIMEDIR
	[7f0e97586]

	* config.h.in:
	added _SUDO_PATH_TIMEDIR
	[f5230f628]

	* sudo.pod:
	updated wrt /var/run/sudo
	[21c38820f]

	* sudo.c, sudo.h:
	added support for shost if FQDN
	[773636c1c]

	* parse.yacc, visudo.c:
	now uses shost if FQDN
	[56df3dd85]

	* check.c:
	Now use skeylookup() instead off skeychallenge()
	[4a46e1a18]

1996-02-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	mail_argv should not contain ALERTMAIL as it includes "-t"
	[98a6190b1]

1996-02-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, Makefile.in, README, configure.in, version.h:
	++version
	[77684bd09]

	* compat.h:
	added more _PASSWD_LEN stuff -- now uses PASS_MAX too
	[7c0d81ee3]

	* tgetpass.c:
	now includes limits.h moved _PASSWD_LEN -> compat.h
	[47574e1af]

1996-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL, README:
	++version
	[caf533f47]

	* Makefile.in:
	++versoin
	[e03f27e9a]

	* Makefile.in:
	fixed a typo
	[27f2f09ed]

	* configure.in:
	++version
	[578218b1a]

1996-02-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	updated
	[ba88cc5d9]

	* CHANGES:
	done for 1.4.1 (I hope)
	[fb3ad7370]

	* sudoers.pod:
	added info on wildcards
	[7d247e981]

	* sample.sudoers:
	added wildcard example
	[e9714fa3f]

	* Makefile.in:
	now uses *.pod to build *.man and *.cat & *.html
	[aa9916588]

	* configure.in:
	addedSUDO_PROG_BSHELL !ll
	[2be584fff]

	* visudo.pod:
	fixed up some formatting
	[6f8e34d2c]

	* sudoers.pod:
	redid section describing sample sudoers stuff
	[7cb5af2dc]

	* sudo.pod:
	fixed some formatting
	[5003b21c7]

	* getspwuid.c:
	now treats "" as bourne shell
	[32af5520d]

	* Makefile.in:
	TESTOBJS nwo includes wildmat.o
	[e43668a6a]

	* testsudoers.c:
	now works with NewArg[cv]
	[63c9d31bd]

	* sudo.c:
	removed an XXX (fixed it in getspwuid.c)
	[3da8d74b0]

	* aclocal.m4:
	added check for bourne shell
	[1d084add8]

	* pathnames.h.in:
	added _PATH_BSHELL
	[0f9fcf68c]

	* config.h.in:
	added _SUDO_PATH_BSHELL
	[15eb52fd0]

1996-02-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	unixware vi returns 256 instead of 0
	[845ee30d7]

	* INSTALL:
	added Linux note
	[a33259079]

	* logging.c:
	fixed up some XXX's. file log format now looks a little more like
	real syslog(3) format.
	[53ef7e23c]

	* README, TROUBLESHOOTING:
	updated wrt lex/flex
	[b220613b8]

	* Makefile.in:
	commented out rule to build lex.yy.c from parse.lex since we ship
	with a pre-flex'd parser
	[dcac138a6]

	* parse.c, parse.yacc, visudo.c:
	path_matches -> command_matches
	[1151a4bfd]

	* logging.c:
	eliminated some strcat()'s
	[5fd8419d8]

	* configure.in:
	no longer checks for lex/flex (now assumes flex)
	[40555aba5]

	* configure.in:
	now checks for $kerb_dir_candidate/krb.h instead of just
	kerb_dir_candidate
	[1b412bd7d]

1996-02-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	now use a 'hook' expression instead of an iffy one :-)
	[42225e3b0]

1996-02-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	now works with new sudo arg stuff
	[6002abd99]

	* parse.yacc:
	fixed dereferencing deadbeef
	[65058a100]

	* sudo.c:
	changed an occurrence of Argv to NewArgv
	[1714849ac]

	* parse.lex:
	took out support for quoted commands since there is no need...
	[500ae8269]

	* parse.c:
	fixed a typo in a for() loop
	[0f898397f]

	* logging.c:
	protected against dereferencing rogue pointers
	[f19b2ebf8]

	* sudo.c:
	now uses NewArgv amd NewArgc so cmnd_aegs is no longer needed this
	also allows us to eliminate some kludges in parse_args() and
	eliminate superfluous code.
	[e06c19bbb]

	* logging.c:
	no longer uses cmnd_args, now uses NewArgv instead.
	[d38613278]

	* sudo.h:
	added struct sudo_command, NewArgc, and NewArgv removed cmnd_args
	(no longer used)
	[bfacbff72]

	* Makefile.in:
	added wildmat.c to SRCS & SUDOBJS
	[b81d0d611]

	* parse.yacc:
	COMMAND is now a struct containing the path and args
	[8356e4bcd]

	* parse.lex:
	replaced append() with fill_cmnd() and fill_args. command args from
	a sudoers entry are now stored in an arrary for easy matching.
	[2b003ffa8]

	* parse.c:
	command line args from sudoers file are now in an array like ones
	passed in from the command line
	[dd18abfe4]

1996-02-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	wildwat stuff now works
	[7731bb261]

1996-01-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* version.h:
	++version
	[d28ce9489]

	* Makefile.in:
	++version added wildmat.*
	[1947459b9]

1996-01-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.lex:
	added support for quoted commands (w/ or w/o args)
	[216ca11a0]

1996-01-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.pod, visudo.pod:
	cleaned up formatting
	[9a3ee91ec]

	* sudo.pod, visudo.pod:
	Initial revision
	[57155eeaa]

1996-01-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudoers.pod:
	looks reasonable, could be mroe readable
	[368217d7b]

	* sudoers.pod:
	Initial revision
	[3c20fdea2]

1996-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	updated
	[75ef8ca4b]

	* OPTIONS:
	updated NO_ROOT_SUDO entry
	[6a5d75b5c]

1996-01-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	*** empty log message ***
	[94535bae6]

	* sudo.c:
	fixed SECURE_PATH
	[35622b80c]

	* RUNSON:
	udpa`ted for 1.4
	[1eb9339ef]

	* configure.in:
	AIX aixcrypt.exp now uses $(srcdir)
	[d0aeb1ee2]

	* TROUBLESHOOTING:
	added entry for anal ansi compilers
	[e2b93bc0e]

1996-01-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	added info on libcrypt_i for SCO
	[2be2ed2c3]

	* TODO:
	*** empty log message ***
	[4b99b83de]

	* sample.sudoers:
	added comments
	[57be0e7ff]

	* TODO:
	1.4 release
	[491ed09c0]

	* CHANGES:
	++version
	[c769b5644]

	* INSTALL, OPTIONS, README, config.h.in, configure.in:
	++version
	[84c4fd514]

	* BUGS:
	++version and fixed ISC
	[f0f808679]

	* check.c, compat.h, dce_pwent.c, find_path.c, getspwuid.c, getwd.c,
	goodpath.c, ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h,
	insults.h, logging.c, options.h, pathnames.h.in, putenv.c, strdup.c,
	sudo.c, sudo.h, sudo_setenv.c, testsudoers.c, tgetpass.c, utime.c,
	visudo.c:
	++version
	[813ac511d]

	* interfaces.c:
	added STUB_LOAD_INTERFACES ++version
	[ed5fcdccc]

	* Makefile.in, emul/utime.h, parse.c, parse.lex, parse.yacc,
	version.h:
	++version
	[d58db6c2c]

	* PORTING:
	added info about fd_set in tgetpass added info on interfaces.c
	[d10787840]

1996-01-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* dce_pwent.c:
	added sudo header
	[b05ce03eb]

	* tgetpass.c:
	fixed a typo
	[d9a1d1425]

	* Makefile.in:
	tgetpass.o is now only linked in with sudo (not visudo)
	[2d066db85]

1996-01-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, INSTALL, Makefile.in, OPTIONS, README, config.h.in,
	configure.in:
	++version
	[6e0dec332]

	* emul/utime.h:
	added copyright notice
	[da7d049fe]

	* check.c, compat.h, find_path.c, getspwuid.c, getwd.c, goodpath.c,
	ins_2001.h, ins_classic.h, ins_csops.h, ins_goons.h, insults.h,
	interfaces.c, logging.c, options.h, parse.c, parse.lex, parse.yacc,
	pathnames.h.in, putenv.c, strdup.c, sudo.c, sudo.h, sudo_setenv.c,
	testsudoers.c, tgetpass.c, utime.c, version.h, visudo.c:
	++version
	[a90d2d478]

	* tgetpass.c:
	minor cleanup and now includes sys/bsdtypes for svr4'ish boxen
	[38e76816a]

	* configure.in:
	ISC now gets -lcrypt now check for sys/bsdtypes.h
	[73bb405bf]

	* config.h.in:
	added check for sys/bsdtypes.h
	[3b6e55a85]

1996-01-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	removed debugging stuff (setting freed ptr to NULL)
	[c509bec0c]

	* TROUBLESHOOTING:
	added 2 entries
	[14ebaab3b]

	* Makefile.in:
	added FAQ
	[3e2876d44]

	* TROUBLESHOOTING:
	added section on syslog
	[dc7ee7602]

	* configure.in:
	added AC_ISC_POSIX for better ISC support
	[90596667f]

	* config.h.in:
	fixed typo
	[ab99db6cc]

	* config.h.in:
	added define for _POSIX_SOURCE
	[16bdc95c2]

1996-01-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	fixed check for lsearch()
	[e59decf05]

1995-12-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* interfaces.c:
	fixed for AIX now deal if num_interfaces == 0 (should not happen)
	[3aba9c478]

1995-12-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	now only define HAVE_LSEARCH if there is a corresponding search.h
	[fe1e64dcb]

	* interfaces.c:
	works on ISC again
	[6d0d2c8ba]

1995-12-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	now define HAVE_LSEARCH if we find lsearch() in libcompat
	[479248730]

	* lsearch.c:
	char * -> const char *
	[e4aed8e5e]

	* configure.in:
	now looks in -lcompat for lsearch()
	[6946bdb78]

	* Makefile.in:
	remove sudo.core visudo.core for clan target
	[16b1ecdb1]

	* aclocal.m4:
	added UID_MAX support in check for MAX_UID_T_LEN
	[8e4308dc2]

	* Makefile.in:
	fixed another occurence of sudo_getpwuid.*
	[332bab8e0]

	* Makefile.in, getspwuid.c:
	sudo_getpwuid.c -> getspwuid.c
	[81a441aed]

	* configure.in:
	moved the "echo"
	[481f1098c]

	* BUGS, CHANGES, INSTALL, Makefile.in, OPTIONS, README, check.c,
	compat.h, config.h.in, configure.in, find_path.c, getspwuid.c,
	getwd.c, goodpath.c, ins_2001.h, ins_classic.h, ins_csops.h,
	ins_goons.h, insults.h, interfaces.c, logging.c, options.h, parse.c,
	parse.lex, parse.yacc, pathnames.h.in, putenv.c, strdup.c, sudo.c,
	sudo.h, sudo_setenv.c, testsudoers.c, tgetpass.c, utime.c,
	version.h, visudo.c:
	++version
	[684637770]

	* testsudoers.c:
	added group support
	[d606c291c]

	* sample.sudoers:
	added group entry
	[c5d1fb9fc]

	* sudoers.man:
	documented group support
	[db1608442]

	* parse.c, parse.lex, parse.yacc, visudo.c:
	added group support
	[7617fde66]

1995-12-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	tkfile was too short and overflowed the kerberos realm
	[e8b95038f]

1995-12-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	now copy command args directly from Argv
	[206899d1d]

	* sudo.c:
	replaced code to copy cmnd_args so that is does not use realloc
	since most realloc()'s really stink
	[0e9f9c7a4]

1995-12-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	syslog() fixed in hpux 10.01
	[ef4e6fbfa]

1995-12-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	AC_CHECK_LIB() now sets SUDO_LIBS (and VISUDO_LIBS if appropriate)
	[54d9ede9c]

	* configure.in:
	better error if cannot find skey incs or libs
	[4ef6206a1]

	* aclocal.m4:
	now use a temp file for determining max len of uid_t in string form.
	the old hacky way broke on netbsd
	[23df4113c]

	* sudo.c:
	added set of parens and a space
	[1d04bad9c]

1995-12-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* dce_pwent.c:
	fixes from Jeff Earickson <jaearick@colby.edu> ,
	[c8b4bacee]

	* check.c:
	modified a comment
	[ffbfd5434]

	* Makefile.in:
	fixed up testsudoers target
	[1c5b326ff]

	* configure.in:
	DCE changes from Jeff Earickson <jaearick@colby.edu> LIBS ->
	SUDO_LIBS and VISUDO_LIBS LDFLAGS -> SUDO_FDFLAGS and VISUDO_LDFLAGS
	[792805deb]

	* Makefile.in:
	LIBS -> SUDO_LIBS , VISUDO_LIBS LDFLAGS -> SUDO_LDFLAGS,
	VISUDO_LDFLAGS
	[7f19f036b]

1995-11-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	fix for C2 on hpux 10 now uses -linet if it exists
	[86159a83f]

	* check.c:
	LONG_SKEY_PROMPT is less of a klusge /
	[d135a0bd1]

	* configure.in:
	fixed typos w/ dce stuff
	[17f433989]

	* Makefile.in:
	added dce_pwent.c
	[fa560d43b]

1995-11-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	amended section on combining authentication mechanisms
	[d0dbdb84f]

	* PORTING:
	minor updates for 1.3.6
	[3187d13ad]

	* TROUBLESHOOTING:
	added 2 more entries
	[88dfd93ad]

	* BUGS:
	updated for 1.3.6
	[d3a01db5d]

	* README:
	overhauled
	[cfc28644c]

	* INSTALL:
	rewrote for sudo 1.3.6
	[c68baecaf]

	* TROUBLESHOOTING:
	added 3 entries
	[c4e077ce0]

1995-11-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c, getspwuid.c, sudo.c:
	added explict casts for strdup since many includes don't prototype
	it. gag me.
	[d7716e975]

	* sudo.h:
	removed prototype for sudo_getpwuid() since convex C compiler choked
	on it.
	[6b80b1c56]

	* sudo.c:
	added prototype for sudo_getpwuid()
	[9f8332a19]

	* lsearch.c:
	now compiles on strict ANSI compilers
	[808e27538]

	* check.c:
	added LONG_SKEY_PROMPT support
	[6a414eaef]

	* Makefile.in:
	added extra $'s for make to eat up, yum.
	[06f794982]

	* OPTIONS, options.h:
	added LONG_SKEY_PROMPT
	[b0deb3be4]

1995-11-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	s/key support now works with normal s/key as well as logdaemon
	[461d87164]

	* OPTIONS, options.h:
	added SKEY_ONLY
	[ba894df8b]

	* compat.h:
	set _PASSWD_LEN to 256 for any of KERB4, DCE, SKEY
	[63a56ec6d]

	* INSTALL:
	added DCE note added more AIX notes
	[7c1c3bf03]

	* sudo.c:
	now include pthread.h for DCE support
	[3ff093bde]

	* check.c:
	dce_pwent() is ok after all .,
	[cd1efe7d2]

	* logging.c:
	now uses SYSLOG() macro that equates to either syslog() or
	syslog_wrapper
	[9dd72728e]

	* dce_pwent.c:
	minor formatting changes. renamed check() to somthing less generic
	[8e58945ad]

	* check.c, logging.c, parse.yacc, sudo.c, sudo.h, testsudoers.c,
	visudo.c:
	now uses user_pw_ent and simple macros to get at the contents
	[d6a223e2a]

1995-11-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	simpler dec unix C2 support
	[57a4342e7]

	* getspwuid.c:
	now sets crypt_type for DEC unix C2
	[6a22027ee]

1995-11-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added csops paths for skey
	[4fda1d8ac]

	* getspwuid.c:
	now includes string.h for strdup() prototype
	[eb09cb8fa]

	* getspwuid.c:
	fixed a few typos
	[a8014ddfc]

	* check.c:
	now includes skey.h
	[b60cb8ec7]

	* getspwuid.c:
	fixed up comments
	[310055043]

	* check.c:
	moved a lot of the shadow passwd crap to sudo_getpwuid()
	[d058a9b04]

	* sudo.c:
	now uses sudo_pw_ent
	[9dcee68e5]

	* testsudoers.c:
	now uses sudo_pw_ent
	[0542fa247]

	* visudo.c:
	now sets sudo_pw_ent
	[8104a5f13]

	* getspwuid.c:
	Initial revision
	[cf8fd5937]

	* tgetpass.c:
	moved dce stuff into compat.h
	[333636652]

	* logging.c, sudo.h:
	now uses sudo_pw_ent
	[8b5caa700]

	* Makefile.in:
	added sudo_getpwuid.c
	[a6b5b2302]

	* compat.h:
	added dce support
	[787742ebf]

	* parse.yacc:
	now uses sudo_pw_ent
	[ddfc75753]

1995-11-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	fixed exempt_group stuff for OS's that don't put base gid in group
	vector
	[4865f17ea]

	* check.c:
	S/Key support now works with sunos4 shadow passwords
	[02bc955a1]

	* Makefile.in:
	fixed clean rule
	[a72a93101]

	* config.h.in, configure.in:
	added DCE support
	[dfa3e6d8c]

	* tgetpass.c:
	DCE & KERB support
	[7dba81c21]

	* check.c:
	first stab at dce support
	[ef7f00e9b]

	* dce_pwent.c:
	now smells like sudo
	[0a6a0021d]

	* dce_pwent.c:
	Initial revision
	[84fd90f7a]

	* check.c:
	skey'd sudo now works w/ normal password as well
	[ac12f043f]

1995-11-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, OPTIONS, check.c, compat.h, config.h.in, find_path.c,
	getwd.c, goodpath.c, ins_2001.h, ins_classic.h, ins_csops.h,
	ins_goons.h, insults.h, interfaces.c, logging.c, options.h, parse.c,
	parse.lex, parse.yacc, pathnames.h.in, putenv.c, strdup.c, sudo.c,
	sudo.h, sudo_setenv.c, testsudoers.c, tgetpass.c, utime.c,
	version.h, visudo.c:
	updated version number
	[9de4fd545]

	* README:
	updated to reflect version change
	[6e4cb31d4]

	* configure.in:
	--with options now line up ++version
	[6de61de5f]

	* sudo.h:
	removed unecesary S/Key stuff
	[5675d703f]

	* configure.in:
	fixed S/Key support
	[ac8c65d15]

	* Makefile.in:
	-I stuff now goes in CPPFLAGS
	[baae3457a]

	* check.c:
	fixed SKey support
	[53ae703b7]

	* README:
	updated version
	[402ce291c]

	* OPTIONS:
	fixed description of EXEMPTGROUP
	[3251001be]

	* sudo.c:
	more people use _RLD_ than just alphas...
	[e3f95518c]

	* Makefile.in:
	replaced $man_prefix with $mandir
	[5eb9954c2]

	* configure.in:
	fixed a typo
	[cec2ef656]

	* Makefile.in:
	now use more GNU'ish dir names
	[db2cf11f5]

	* configure.in:
	now set *dir correctly (can override from command line)
	[db7b85cb5]

	* sudo.c:
	now deal with situations where we getwd() fails
	[621d42205]

1995-11-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	added etc_dir, bin_dir, sbin_dir
	[7147ee96c]

	* configure.in:
	added sbin_dir
	[e0898a0db]

	* Makefile.in:
	now ship a flex-generated lex.yy.c
	[e8ec31de0]

	* Makefile.in:
	now sets _PATH_SUDO_SUDOERS, _PATH_SUDO_STMP, SUDOERS_OWNER
	[4e3a66387]

	* pathnames.h.in:
	_PATH_SUDO_SUDOERS & _PATH_SUDO_STMP are now overridden via Makefile
	[fe45fd70c]

	* options.h:
	no more error for redefining SUDOERS_OWNER
	[6b339fda9]

	* OPTIONS:
	expanded SUDOERS_OWNER section
	[f98507d06]

1995-11-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	now warn if chown(2) failed
	[5d8180011]

	* logging.c:
	better default warning for NO_SUDOERS_FILE
	[15d1cc7a6]

	* sudo.c:
	added missing set_perms() no more cryptic message if the sudoers
	file is zero length, now just give a parse error
	[6475d4378]

	* logging.c:
	better diagnostics if NO_SUDOERS_FILE
	[d725ba8a5]

	* sudo.c:
	check_sudoers() now catches sudoers files that are not readable (but
	are stat'able).
	[8285802f2]

1995-11-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	now add -D__STDC__ for convex cc (not gcc)
	[d05eae98b]

	* configure.in:
	MAN_PREFIX -> man_prefix now sets prefix and exec_prefix
	[910e9c09f]

	* Makefile.in:
	now uses exec_prefix & prefix from configure
	[4bdbf190f]

	* find_path.c, getwd.c, goodpath.c, interfaces.c, logging.c,
	parse.c, parse.lex, parse.yacc, sudo.c, sudo.h, sudo_setenv.c,
	tgetpass.c, utime.c, visudo.c:
	options.h is now <> instead of "" so shadow build trees can have a
	custom copy of options.h
	[96be725f3]

	* check.c:
	user_is_exempt() is no longer a hack, it now uses getgrnam()
	[7f847219c]

	* options.h:
	EXEMPTGROUP is now "sudo"
	[fed5c96f7]

	* configure.in:
	MAN_POSTINSTALL now contains a leading space
	[e8b3cb701]

	* Makefile.in:
	removed leading tab if @MAN_POSTINSTALL@ not defined now removes
	testsudoers in clean:
	[8f90254de]

	* tgetpass.c:
	includes pwd.h to get _PASSWD_LEN definition
	[6a6099ebb]

1995-10-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	unset the KRB_CONF envariable if using kerberos so we don't get
	spoofed into using a bogus server
	[3003b4109]

1995-09-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	now explicately initialize match[] tp be FALSE
	[a14ba7447]

1995-09-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	removed unused variable now passes -Wall
	[5d691e1c4]

	* parse.yacc:
	yyerror and dumpaliases are now void's now passes -Wall
	[4571b88d5]

	* parse.lex:
	added prototype for yyerror
	[0fb7a2ee3]

	* check.c, logging.c, parse.c:
	now passes -Wall
	[02036880c]

	* interfaces.c:
	rmeoved unused cruft now passes -Wall
	[f0ac53072]

	* Makefile.in:
	fixed headers that moved to emul dir
	[87fbfbc19]

	* logging.c:
	fixed deref of nil pointer if no args
	[4b3c1201e]

1995-09-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* OPTIONS:
	added a caveat to FQDN section
	[13b5f7de9]

1995-09-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	more $srcdir support for install targets
	[32204d965]

	* find_path.c, interfaces.c, parse.c, parse.lex, parse.yacc,
	putenv.c, strdup.c, sudo.c, sudo_setenv.c, testsudoers.c, visudo.c:
	don't include malloc.h if we include stdlib.h
	[211361a5f]

	* parse.yacc:
	local search.h now lives in emul
	[8a8926d92]

	* check.c, utime.c:
	local utime.h now lives in emul dir
	[5a27e8bba]

	* lsearch.c:
	local search.h now lives in emul
	[23c122966]

	* Makefile.in:
	added support for building in other than the sourcedir
	[c03629867]

1995-09-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* OPTIONS:
	annotated CSOPS_INSULTS option
	[6024339b8]

	* TROUBLESHOOTING:
	updated shadow passwords blurb
	[592e98531]

	* sudo.c:
	if SHELL_IF_NO_ARGS is set, "sudo -- foo" now runs a shell and
	passes along foo as the arguments
	[dff189d00]

1995-09-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.lex:
	collapsed pathname and dir sections into one -- its now less
	expensive
	[ec56686b8]

	* parse.lex:
	fixed spacing quoting [,:\\=] now works correctly append() and
	fill() now take args to make the above work
	[08a934797]

	* sudo.c:
	fixed a typo that caused commands with no tty on fd 0 but a tty on
	fd 1 to erroneously have "none" as their tty
	[cc1ab5b5b]

1995-09-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	timestampfile is now a global static removed decl of timestampfile
	in remove_timestamp since we can just use the global one
	[63cfcdca9]

	* check.c:
	created touch() to update timestamps added USE_TTY_TICKETS support
	(bit of a kludge)
	[810bbee99]

	* compat.h:
	added _S_IFDIR and S_ISDIR
	[cc30667ee]

	* OPTIONS, options.h:
	added USE_TTY_TICKETS
	[9696360b4]

	* parse.yacc:
	removed const from casts for lsearch() & lfind() to placate irix 4.x
	C compiler
	[fa50c30f2]

1995-09-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	now only strip '/dev/' off of a tty if it starts with '/dev/'
	[33de10d52]

	* pathnames.h.in:
	added _PATH_DEV
	[1f0b6dbfd]

	* configure.in:
	AC_HAVE_HEADERS -> AC_CHECK_HEADERS now check for tcgetattr only if
	have termios.h
	[62b47b8b9]

	* tgetpass.c:
	fixed incorrect #ifdef termio uses "unsigned short" not int for
	c_?flag
	[993b7e5ec]

	* parse.lex, parse.yacc:
	fixed a spelling error
	[f3268e58e]

	* Makefile.in:
	fixed typo
	[963dd0e35]

1995-09-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	fixed a comment
	[7c6446141]

	* parse.yacc:
	added dotcat() to cat 2 strings w/ a dot effeciently now that we
	dynamically allocate strings they need to be free()'d
	[4b39028f9]

	* parse.lex:
	dynamically allocates space for strings
	[bc5adec09]

	* sudo.h:
	no more MAXCOMMANDLENGTH
	[0ee553665]

	* sudo.h:
	added decl of tty
	[57d9cb9bf]

	* logging.c, sudo.c:
	moved tty stuff into sudo.c
	[589f1d626]

1995-09-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	fixed a logic bug. Was denying a command if user gave command line
	args but there were none in the sudoers file which is wrong.
	[184dac958]

	* sudo.h:
	MAXCOMMMANDLEN dropped down to 1K
	[24df673d9]

	* parse.lex:
	return foo; -> return(foo);
	[0df5364ca]

	* parse.yacc:
	fixed netgr_matches() prototype
	[8e59f998d]

	* parse.lex:
	added support for escaping "termination" characters
	[dde7f1113]

	* parse.c:
	buf is now of size MAXPATHLEN+1 since it never holds command args
	[4fb87b2fa]

	* sudo.c:
	fixed comments
	[eaf845fd2]

	* goodpath.c:
	fixed negation problem (doh!)
	[d47330a7b]

	* parse.yacc:
	fixed 2nd parameter to lfind()
	[08719aef1]

	* parse.lex:
	now do bounds checking in fill() and append()
	[023afc59e]

	* sudo.c:
	include netdb.h as we should added a missing void cast added
	SHELL_IF_NO_ARGS support now use realloc() properly. would fail if
	realloc actually moved the string instead of shrinking it
	[57e17e71d]

	* sample.sudoers:
	updated with examples of new features
	[035886c88]

	* goodpath.c:
	now set errno to EACCES if not a regular file or not executable
	[3cf3a02c9]

	* find_path.c:
	if given a fully-qualified or relative path we now check it with
	sudo_goodpath() and error out with the appropriate error message if
	the file does not exist or is not executable
	[a7b14880a]

	* emul/search.h, lsearch.c:
	now use correct args for lfind
	[f55ea664c]

	* logging.c:
	added a comment
	[0c690ddb8]

	* insults.h:
	added in CSOps insults
	[7785f5aa8]

	* ins_csops.h:
	Initial revision
	[6c57ab6f9]

	* tgetpass.c:
	added RCS id
	[38169ba0b]

	* sudo.h:
	increased MAXCOMMANDLENGTH to 8k HAVE_GETCWD -> HAVE_GETWD
	[23c90d776]

	* OPTIONS:
	added CLASSIC_INSULTS, CSOPS_INSULTS, SHELL_IF_NO_ARGS
	[43b4dfd76]

	* sudo.c:
	fixed -k load_interfaces() now gets called if FQDN is set -p now
	works with -s
	[eb742282b]

	* parse.c:
	don't try to stat() "pseudo commands" like "validate"
	[ffbade154]

	* options.h:
	added CLASSIC_INSULTS added CSOPS_INSULTS added SHELL_IF_NO_ARGS
	[ed57e2a47]

	* configure.in:
	added SecurID support added other insults to --with-csops
	[2c45ad3a6]

	* config.h.in:
	added HAVE_SECURID
	[9460142f7]

	* Makefile.in:
	added clobber target added ins_csops.h now gets CFLAGS from
	configure
	[f66ada034]

	* aclocal.m4:
	relaxed SUDO_FULL_VOID
	[6059ab504]

	* visudo.c:
	function comment blocks are now in same style as rest of code
	[85d528d35]

	* testsudoers.c:
	added support for command line args in /etc/sudoers
	[6ae45fad7]

	* sudoers.man:
	updated to have command args in the sudoers file
	[489923b34]

	* sudo.man:
	added -s and -- flags added SHELL to ENVIRONMENT VARIABLES section
	[2cd2d10e2]

1995-08-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	PATH renamed to COMMAND
	[30215484c]

	* parse.lex:
	it is now a parse error for directories to have args attached to
	them
	[cda9b243c]

	* logging.c:
	now say command args if telling user to buzz off
	[723998be9]

	* sudo.c:
	-s no longer indicates end of args sped up loading on cmnd_args in
	load_cmnd()
	[b79d33a5b]

	* parse.c:
	removed an unreachable statement
	[e5101444c]

	* parse.lex:
	made more efficient by pulling out the terminators when in GOTCMND
	state and making them their own rule
	[ed0730ba0]

1995-08-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	removed MAXLOGLEN since it is no longer used
	[35d4d8e6b]

	* parse.lex:
	now allows command args
	[35d2f76b1]

	* parse.c:
	now groks command arguments
	[564533bc7]

	* logging.c:
	now sets tty correctly when piped input
	[a7260a073]

	* sudo.c:
	fixed loading of cmnd_args (was including command name too)
	[fee6ecbf0]

	* logging.c:
	fixed a core dump due to incorrect if construct
	[bf3ef98ba]

1995-08-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	only add -lsun is irix < 5 don't look for -lnsl or -lsocket if irix
	[f1bd62ffb]

	* aclocal.m4:
	fixed check for ISC
	[aa87fbdeb]

	* sudo.c:
	now sets cmnd_args used by log_error() and that will be used by the
	parse to check against command args
	[f82ab3e8c]

	* sudo.h:
	added cmnd_args
	[c4286fc59]

	* logging.c:
	now dynamically allocate logline since we can guess at its size
	[f912e0d98]

1995-08-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	cleaned up a bunch of unnecesary #ifdef's eliminated a buffer remove
	"register" since the compiler knows more than I do now do a
	"basename" of the tty
	[8163d81ab]

1995-07-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	++version
	[ba2059342]

	* sudo.h:
	added shell extern changed MODE_* to be bit masks to allow for
	several options together
	[78d3d79ac]

	* sudo.c:
	added -s (shell) option made MODE_* masks so we can do bitwise & and
	| to see if multiple flags are set.
	[8219db961]

	* check.c:
	added securid support
	[68cdc96ff]

1995-07-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	removed a bunch of unnecesary strncpy()'s and replaced with strcat()
	[b42c06bb1]

1995-07-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, version.h:
	++version
	[8e3717b14]

1995-07-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	fixed free() of an uninitialized pointer (yuck)
	[15f6c5ef5]

	* testsudoers.c:
	added netgr_matches
	[5d8c7fe68]

	* parse.c:
	cleaned up netgr_matches
	[178e4a3c1]

1995-07-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	updated for 1.3.4
	[d08b4b9f1]

1995-07-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	now installs sudoers.man -- really should clean this up though.
	[34b242a23]

	* Makefile.in:
	added sudoers.cat and sudoers.man
	[81a36b2d1]

	* sudo.man:
	pulled out stuff on the sudoers file format into a separate man page
	[5245392ea]

	* sudoers.man:
	Initial revision
	[bcfd0d604]

	* HISTORY:
	fixed up my email address
	[3b623d1da]

	* configure.in:
	added checks for innetgr and getdomainname
	[c0435b95d]

	* visudo.c:
	added dummy netgr_matches function
	[99464ee08]

	* parse.c:
	added netgr_matches
	[1b9251bea]

	* parse.lex, parse.yacc:
	added NETGROUP support
	[ad2662ed8]

	* config.h.in:
	added HAVE_INNETGR & HAVE_GETDOMAINNAME
	[fc5299a5b]

1995-07-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	rewrote clean_env() that has rm_env() builtin
	[dd9a16514]

1995-07-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	now cast uid to long in sprintf
	[4d96a2181]

	* OPTIONS:
	added _INSULTS suffix to HAL & GOONS end
	[cfed883f6]

	* options.h:
	added _INSULTS suffix to HAL & GOONS
	[52a3360e3]

	* ins_2001.h, ins_classic.h, ins_goons.h, insults.h:
	converted to new scheme of insult "unions" end
	[7b931ceaa]

	* sudo.c:
	now uses MAX_UID_T_LEN
	[e70f526da]

	* configure.in:
	added SUDO_UID_T_LEN !l
	[2ff580d88]

	* config.h.in:
	added MAX_UID_T_LEN
	[316e21468]

	* check.c:
	now use MAX_UID_T_LEN
	[b6f9d1d1a]

	* aclocal.m4:
	added check for max len of uid_t fixed sco vs. isc check
	[6cda67389]

1995-07-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	corrected version
	[93347870a]

	* configure.in:
	added sco support
	[09a11bf6d]

	* aclocal.m4:
	hack to check for sco
	[1f0c48184]

	* interfaces.c:
	removed #include <net/route.h> since it was hosing some OS's
	[9c631578e]

1995-07-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c:
	fixed prreadlink() prototype
	[964e5aae9]

	* check.c:
	added parens in #if's
	[f6037dabc]

	* configure.in:
	added SPW_ prefix
	[568aeeec7]

	* sudo.h:
	moved SPW_* to config.h.in
	[a03c27ecb]

	* sudo.c:
	added a set of parens
	[6555548e4]

	* config.h.in:
	added SPW_*
	[b53bdfe49]

	* sudo.h:
	added SPW_* reordered error codes
	[5e8d163cd]

	* check.c:
	moved SPW_* to sudo.h
	[415172f62]

1995-07-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	SPW_AUTH -> SPW_SECUREWARE
	[9b176c01e]

	* logging.c:
	GLOBAL_NO_AUTH_ENT -> GLOBAL_NO_SPW_ENT
	[8a13a1ce6]

	* configure.in:
	AUTH -> SECUREWARE
	[db9e49907]

	* check.c:
	SPW_AUTH -> SPW_SECUREWARE
	[56dcb8360]

	* check.c:
	now uses SHADOW_TYPE to make shadow pw support more readable and
	modular. It's a start...
	[69f73dca3]

	* configure.in:
	added autodetection of shadow passwords
	[19e032b9a]

	* sudo.c:
	now uses SHADOW_TYPE define
	[8e002084a]

	* config.h.in:
	added SHADOW_TYPE which replaces SUNOS4 & __svr4__ defines
	[f4f8eac02]

	* aclocal.m4:
	added SUDO_CHECK_SHADOW
	[17a7c74d5]

1995-07-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	define SVR4 for ISC define BROKEN_SYSLOG for hpux took out test for
	memmove() since we dno longer use it...
	[59dcca855]

	* CHANGES:
	updated
	[676ca1e9f]

	* logging.c:
	added BROKEN_SYSLOG support
	[aac8b5fc9]

	* config.h.in:
	added BROKEN_SYSLOG
	[0df6a284b]

	* check.c:
	now only bitch it timestamp > time_now + 2 * timeout to allow for a
	machine udpating its time from a server
	[b5ea3c824]

	* sudo.man:
	added 2 security notes updated Nieusma's email addr
	[82cb03da2]

	* lsearch.c:
	changed a memmove() to memcpy() since we don't have to worry about
	overlapping segments.
	[9bde08229]

1995-07-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* interfaces.c:
	cleanup up the loop when interfaces are groped in so that it is
	readable
	[63893680d]

	* Makefile.in, version.h:
	++version
	[17b7225c7]

1995-07-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	annotated 124-126
	[8d2e68cbb]

1995-07-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	fixed permissions check on /tmp/.odus
	[14ec8cc12]

1995-07-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	fixed some comments
	[77577c970]

	* check.c:
	now checks owner & mode of timedir also checks for bogus dates on
	timestamp file
	[fc15f54aa]

	* OPTIONS:
	updated TIMEOUT info
	[5681ddef0]

	* logging.c, sudo.h:
	added BAD_STAMPDIR and BAD_STAMPFILE
	[05bea6375]

	* compat.h:
	added definition of S_IRWXU
	[c76d6d4e2]

	* CHANGES:
	updated
	[edee3fe6d]

1995-07-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* interfaces.c:
	added #ifdef to make it compile on strange arches
	[ba502e7de]

1995-07-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4:
	fixed check for fulkl void impl.
	[0c39d1e66]

	* check.c:
	added mssing "static"
	[237080124]

	* insults.h:
	replaced #elif with #else #if constructs for ancient C compilers
	[001cbba28]

	* INSTALL:
	updated irix c2 & kerb5 info
	[8923092f7]

	* configure.in:
	added shadow pw support for irix
	[a5424b506]

1995-07-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS, TODO:
	updated
	[9e232c80a]

	* CHANGES:
	last changes for sudo 1.3.3
	[372332a8e]

	* configure.in:
	now calls SUDO_SOCK_SA_LEN
	[f6f708d9c]

	* config.h.in:
	added HAVE_SA_LEN
	[05543559e]

	* aclocal.m4:
	added SUDO_SOCK_SA_LEN
	[16768b25a]

	* interfaces.c:
	now works with ip implementations that use sa_len in sockaddr
	[3a0993f0e]

	* INSTALL:
	added note about buggy AIX compiler
	[27f0a0437]

	* interfaces.c:
	now include sys/time.h for AIX
	[70da65274]

1995-06-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	getcwd -> getwd
	[4c82d0e4d]

	* interfaces.c:
	now works for ISC and others. yay.
	[ec568f270]

1995-06-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, version.h:
	version++
	[1656c457a]

1995-06-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4:
	fixed test for full void impl
	[c96837917]

	* sudo.c:
	now check to see that st_dev is non-zero before assuming that we are
	being spoofed
	[4c67e31d9]

1995-06-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4, configure.in:
	SUDO_FUNC_UTIME_NULL -> AC_FUNC_UTIME_NULL
	[cbec8fc76]

1995-06-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* aclocal.m4:
	fixed include file order for SUDO_FUNC_UTIME_POSIX
	[51dd620a8]

	* logging.c:
	added cast for ttyname()
	[b37760089]

	* configure.in:
	fixed typo
	[20c9ac303]

	* check.c:
	now deal correctly with all known variation of utime() -- yippe
	[a6dbb5d20]

	* configure.in:
	added SUDO_FUNC_UTIME_POSIX
	[4ece0da6b]

	* aclocal.m4:
	added SUDO_FUNC_UTIME_NULL and SUDO_FUNC_UTIME_POSIX
	[4a6f9ff55]

	* config.h.in:
	added HAVE_UTIME_POSIX
	[0882a4f14]

	* check.c:
	fixed a typo
	[db30358dd]

	* check.c:
	no longer assume !HAVE_UTIME_NULL means old BSD utime()
	[11ab938fa]

	* check.c:
	fixed fascist C compiler warning
	[44ce99e44]

	* interfaces.c:
	now set strioctl.ic_timout in STRSET() now initialize num_interfaces
	to 0 (just to be anal)
	[5986e74e4]

1995-06-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	increaed MAXLOGLEN by MAXPATHLEN to account for ttyname
	[5114bdf3a]

	* logging.c:
	added tty logging
	[9a22c6ba1]

	* interfaces.c:
	reworked the ISC code
	[34eaa537d]

	* Makefile.in, version.h:
	updated version
	[40d5ad5fb]

	* check.c:
	now expect old-style utime(3) if utime() can't take NULL as an arg
	[3e30f821d]

	* configure.in:
	added check for utime.h
	[66dcba0b7]

	* config.h.in:
	added HAVE_UTIME_H
	[14bfd8b7a]

	* Makefile.in:
	added CPPFLAGS STATIC_FLAGS -> LDFLAGS
	[53807380c]

	* configure.in:
	now search for kerb libs and includes
	[1a19c778d]

	* check.c:
	added support for utime(2)'s that can't take a NULL parameter
	[403a90802]

	* utime.c:
	moved HAVE_UTIME_NULL stuff to update_timestamp() where t belongs
	[8ff79b51e]

	* configure.in:
	added utime(s) stuff
	[07c8eb771]

	* check.c:
	now use utime()
	[24047697d]

	* config.h.in:
	added HAVE_UTIME and HAVE_UTIME_NULL
	[0b7bd3d22]

1995-06-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* utime.c:
	now use HAVE_UTIME_NULL
	[d08febb0f]

	* emul/utime.h, utime.c:
	Initial revision
	[9df83c3d6]

	* check.c:
	need to setuid(0) to make kerb4 stuff work.
	[a7c2a548a]

	* tgetpass.c:
	no more special case for kerberos
	[c56b2c446]

	* config.h.in:
	took out setreuid and setresuid stuff added kerb5 stuff (use kerb4
	emulation)
	[88201485c]

	* compat.h:
	no longer need setreuid() emulation now set _PASSWD_LEN to 128 if
	kerberos
	[eb7a72d97]

	* check.c:
	now use private ticket file for kerberos support to avoid trouncing
	on system one
	[10a2f6e7d]

1995-06-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	added SPOOF_ATTEMPT & cmnd_st
	[3e2eb0013]

	* sudo.c:
	added anti-spoofing support
	[b122474e4]

	* parse.c:
	now use global cmnd_st
	[77f4bbc68]

	* logging.c:
	added SPOOF_ATTEMPT suypport
	[0b4722346]

	* testsudoers.c, visudo.c:
	added void casts where appropriate
	[6115fb5d4]

	* parse.yacc:
	fixed up spacing and added void casts where appropriate
	[a81984983]

	* sudo.c:
	fixed problem with "-p prompt" but no args
	[42b3a170e]

1995-06-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.man:
	added BUGS and annotated -l description
	[8adfa4e1d]

	* sudo.h:
	validate() now takes a flag
	[91e4fbc50]

	* sudo.c:
	validate() now takes a flag added -l
	[d3e338f2f]

	* parse.yacc:
	added support for -l
	[4c84f2143]

	* parse.c:
	validate() now takes a flag that says whether or not to check the
	command
	[b7660fc07]

1995-06-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	now deals with Argv == 1
	[7f5a33a01]

	* sudo.man:
	added -p option
	[0a94dbed5]

	* sudo.c:
	added prompt support reworked parse_args()
	[337897e2d]

	* sudo.h:
	added prompt
	[d66c79ce2]

	* options.h:
	added PASSPROMPT
	[bbd0744ef]

	* check.c:
	now use BUFSIZ as length of kerb password added kpass so pass is
	always a char * now use prompt global when asking for a password
	[ffbac45a4]

	* tgetpass.c:
	now use BUFSIZ as _PASSWD_LEN if using kerberos
	[579fa5cc3]

	* OPTIONS:
	added PASSPROMPT
	[378732007]

1995-06-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	only look for -lufc or -lcrypt if crypt() not in libc
	[171f81153]

	* check.c:
	don't exit on kerb error, just warn if k_errno == KDC_PR_UNKNOWN
	(unknown user) silently fail
	[131a4affd]

	* INSTALL:
	added kerb4 note
	[2a67a0f93]

	* tgetpass.c:
	HAVE_KERBEROS -> HAVE_KERB4
	[f5f05a899]

	* check.c:
	removed debugging printf
	[5d132edc1]

	* configure.in:
	KERBEROS -> KERB4 added checks for setreuid & setresuid
	[ca4368dd8]

	* config.h.in:
	HAVE_KERBEROS -> HAVE_KERB4 added HAVE_SETREUID and HAVE_SETRESUID
	[71f08751c]

	* compat.h:
	added deif of UID_NO_CHANGE & GID_NO_CHANGE added setreuid emulation
	with setresuid if applic
	[9d7f497c5]

	* check.c:
	HAVE_KERBEROS -> HAVE_KERB4 now only do the stupid chown() hack if
	no setreuid() or a broken one
	[32a7316a0]

1995-06-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added kerberos support
	[2513e340f]

	* config.h.in:
	added HAVE_KERBEROS
	[792d8d434]

	* tgetpass.c:
	added KERBEROS support (long passwords)
	[bb62e6b4c]

	* check.c:
	added kerberos support
	[2e1a47e33]

1995-06-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	added MODE_BACKGROUND
	[ad9a0eef3]

	* sudo.man:
	escaped dashes added -b option
	[b3c96d7ea]

	* sudo.c:
	added -b option
	[c60704dcc]

	* check.c:
	added crypt() for osf/1 3.x enhanced secuiry
	[e776214bf]

	* configure.in:
	now check for -lcrypt
	[c5f8f7e8e]

	* interfaces.c:
	added ENXIO like EADDRNOTAVAIL
	[545d39191]

1995-05-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	now emulate getwd(), not getcwd()
	[7d51f8373]

	* sudo.c:
	getcwd() -> getwd()
	[a2ec4c76d]

	* getwd.c:
	getcwd -> getwd
	[69e9c49d3]

1995-05-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* ins_2001.h, ins_classic.h, ins_goons.h:
	Initial revision
	[d87459b87]

	* insults.h:
	broke out insults into separate include files
	[638177948]

	* OPTIONS, options.h:
	added GOONS
	[61beb65fb]

	* Makefile.in:
	added ins_2001.h ins_classic.h ins_goons.h
	[edcbd9935]

	* Makefile.in, version.h:
	++version
	[18dee8405]

	* visudo.c:
	moved signal handler setup to setup_signals()
	[5047747d5]

	* sudo.h:
	added load_interfaces()
	[aff6b07d4]

	* sudo.c:
	moved load_interfaces to interfaces.c
	[aaa41e678]

	* parse.yacc:
	added clearaliases
	[923bd0d3e]

	* OPTIONS, options.h:
	added FAST_MATCH
	[b541399b4]

	* parse.lex:
	now uses clearaliases variable
	[513a1c7e9]

	* interfaces.c:
	Initial revision
	[0613d37b4]

	* Makefile.in:
	added interfaces.[co]
	[08a953c95]

	* testsudoers.c:
	now uses ip addrs and netmasks via load_interfaces()
	[1250db5a9]

	* sudo.c:
	now remove IFS instead of setting to "sane" value
	[e991fcfa7]

1995-05-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.c:
	added FAST_MATCH
	[4a37e0c32]

1995-04-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	sudo_goodpath.c-> goodpath.c
	[53cab8546]

	* sudo.c:
	added Andy's new ISC changes
	[431c0a7e5]

1995-04-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* OPTIONS:
	added a sentence to SECURE_PATH info
	[c93d5f806]

	* BUGS:
	added one
	[8c96a3142]

	* CHANGES:
	updated
	[f90710c26]

	* RUNSON:
	updated
	[b32d8ae6a]

1995-04-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* RUNSON:
	updated for beta3
	[d06ece937]

	* Makefile.in, version.h:
	++version
	[d1136057f]

	* aclocal.m4:
	sendmail is now looked for in /usr/ucblib
	[97fe29dc9]

	* sudo.c:
	fixed indentation
	[d562e7ff7]

	* aclocal.m4:
	fixed a typo
	[b4f1460d6]

	* sudo.c:
	updated ISC mods
	[52b6b6965]

	* configure.in:
	added unixware case
	[803fd573b]

	* check.c:
	user_is_exempt is no longer hidden
	[c34759834]

	* RUNSON:
	updated
	[a82cc716e]

	* aclocal.m4:
	isc and riscos changes
	[2fada0f81]

	* OPTIONS:
	added NOTE about new interaction of EXEMPTGROUP and SECURE_PATH
	[849adcde2]

	* Makefile.in:
	fixed a typo and added testsudoers stuff
	[029096a2c]

	* testsudoers.c:
	Initial revision
	[37eab2662]

1995-04-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	applied fixed patch from Chris
	[19e806c2e]

1995-04-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	fixed a typo
	[84eee6209]

	* parse.yacc:
	added a set of braces for bison
	[8b380a172]

	* parse.yacc:
	merged in Chris' changes to dekludge the parser.
	[d70bb866d]

	* logging.c:
	send_mail() was calling find_path() which is wrong since find_path()
	stores cmnd in a static var. Anyhow, it doesn't make much sense
	since MAILER should always be fully qualified
	[f200df002]

1995-04-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sample.sudoers:
	added User_Alias stuff
	[9d82a8dac]

	* aclocal.m4:
	SUDO_NEXT now looks for /usr/lib/NextStep/software_version
	[aa3186a8e]

	* RUNSON:
	added DEC UNIX 3.0 w/ gcc
	[dc01e4b77]

	* visudo.c:
	Exit was being used in places where exit should be used
	[7ab29f4c7]

	* sudoers:
	added "User alias specification"
	[942182265]

	* parse.yacc:
	fixed probs caused by making nslots and naliases a size_t
	[a783a139f]

	* RUNSON:
	added KSR, upped rev to 1.3.1b2
	[31ed7f457]

	* logging.c, parse.yacc:
	1024 -> BUFSIZ
	[27b183432]

	* parse.yacc:
	void * -> VOID * naliases and nslots are now size_t to appease
	lsearch on 64-bit machines
	[6cb2afdad]

1995-04-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO:
	did a bunch of things and added a bunch :-)
	[ef44ca921]

	* PORTING:
	updated
	[5e3afabe4]

	* visudo.man:
	closer to BSD manpage style
	[83c920618]

	* sudo.man:
	closer to standard BSD man format
	[40b035adc]

	* compat.h, config.h.in, emul/search.h, insults.h, options.h,
	pathnames.h.in, sudo.h, version.h:
	added RCS id
	[f08ab58ba]

	* sudo.h:
	removed crufty #defines that are no longer used
	[cdaae28ef]

	* BUGS:
	fixed a bug
	[620997189]

	* sudo.man:
	updated based on sudo changes
	[ba0bce3a6]

	* parse.yacc:
	now allow ALL keyword in User_Aliases now allow ALL keyword as well
	as a NAME or ALIAS
	[557d431e2]

	* CHANGES:
	updated
	[a23cda72e]

	* sudo.c:
	now sets SUDO_COMMAND and SUDO_GID envariables.
	[0869c2a39]

	* aclocal.m4:
	fixed bug with full void impl check
	[588891cf3]

	* parse.yacc:
	fixed User_Alias supoprt
	[a6923398d]

	* parse.yacc:
	added stubs for User_Alias support
	[dfcb0eb6e]

	* sudo.c:
	now sets removes # bogus interfaces from num_interfaces
	[050ca432a]

	* parse.lex:
	added User_Alias support
	[166d2b78b]

1995-04-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	removed extraneous TODO
	[ea57effc3]

1995-04-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	ntwk_matches -> addr_matches
	[36fec1269]

	* parse.yacc:
	ntwk_matches -> addr_matches
	[c9a574adc]

	* parse.c:
	ntwk_matches -> addr_matches now use inet_addr() not inet_network()
	(which expects octet boundaries) fixes for OSF (sizeof(int) !=
	sizeof(long))
	[521f2f6ac]

	* sudo.c:
	took out debugging info
	[aa03cdc83]

	* aclocal.m4:
	OS was being set to unknown before non-uname based host checks. This
	caused no checks to happen since $OS was not zero-length.
	[d00426b55]

	* sudo.c:
	fixed loading of interfaces struct still has debugging info in
	though
	[ec1c2e69e]

	* parse.c:
	fixed typo
	[e27349c62]

1995-04-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	++version
	[a7d2490f1]

	* version.h:
	++
	[32a5ff4f9]

	* visudo.c:
	removed extraneous extern decl of "top
	[144121414]

	* visudo.c:
	now zeros "top"
	[4e6307fdc]

	* parse.yacc:
	removed parser_cleanup (no need for it now)
	[cd3a5bd09]

	* parse.lex:
	now calls reset_aliases() directly
	[f2b3adaa4]

1995-04-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* OPTIONS:
	added a sentence to SECURE_PATH description
	[f12862c69]

	* parse.c:
	fixed my stupid bug where I used NAMLEN on something I wanted to
	just get the name from. argh.
	[6e45d61aa]

1995-04-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* lsearch.c:
	fixed argument order of memmove() that i hosed when converting from
	bcopy(). arghh.
	[285bc82b3]

	* Makefile.in:
	finally fixed DISTFILES line
	[1259d8444]

	* Makefile.in:
	tabs -> spaces
	[e94d4c878]

	* Makefile.in:
	added missing files to DISTFILES
	[d3ebf9190]

	* Makefile.in:
	SUPPORTED -> RUNSON
	[20fe8172c]

1995-04-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO:
	updated
	[8a4a51a4b]

	* RUNSON:
	updated for pl5b1 release
	[25dbadf29]

	* BUGS, TODO:
	updated
	[012deffa1]

	* check.c:
	fixed bug where if you hit return at first sudo prompt it would
	still log as a failure
	[f650082b1]

	* CHANGES:
	updated
	[d6a68fe4a]

	* aclocal.m4:
	better test for bogus void * implementation
	[af82bb25a]

	* logging.c:
	added PASSWORDS_NOT_CORRECT
	[c1e520bbc]

	* check.c:
	added PASSWORDS_NOT_CORRECT stuff]
	[5bc17e9f8]

	* sudo.h:
	added PASSWORDS_NOT_CORRECT
	[11e414889]

	* tgetpass.c:
	moved pathnames.h
	[735be1c0b]

	* sudo.c:
	removed some unused vars and fixed up uid2str
	[911605896]

	* putenv.c:
	moved compat.h
	[5df37f27d]

	* getcwd.c, getwd.c:
	added pathnames.h
	[99ae8d306]

1995-03-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	fixed a typo I introduced in the last checkin :-(
	[0590d7b64]

	* parse.lex:
	can't have #ifdef's where N is defined so just do this the broken
	way for AIX
	[2bc423cab]

	* parse.yacc:
	better hack from Chris (but still a hack)
	[f104cc2dd]

	* parse.lex:
	stupid hack for broken aix lex
	[b6331561f]

	* tgetpass.c:
	now includes compat.h 
	[d3012dcf0]

	* visudo.c:
	now includes fcntl.h
	[3c033eac1]

	* compat.h:
	added FD_SET and FD_ZERO for 4.2BSD
	[0d11b8fd1]

	* parse.yacc:
	dirty hack to fix parser bug. i don't really like this but it works
	for now...
	[032a129cf]

	* sudo.c:
	uid2str is now static like the prototype says
	[f4e9cea28]

1995-03-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, SUPPORTED, TODO, TROUBLESHOOTING:
	updated
	[2f417910d]

	* RUNSON:
	Initial revision
	[ec700ab3b]

	* sudo.c:
	check_sudoers now returns an error code and sudo calls inform_user
	and log_error based on the return value.
	[086c51194]

	* logging.c, sudo.h:
	added entries for new errors
	[37966f0da]

	* parse.c:
	now set uid to that of SUDOERS_OWNER while parsing sudoers file
	[8e89a08f2]

	* Makefile.in:
	took out testsudoers 
	[b6b88fea9]

	* sudo.c:
	now explicately checks that it is setuid root
	[838882502]

	* sudo.c:
	If a user has no passwd entry sudo would segv (writing to a garbage
	pointer). Now allocate space before writing :-)
	[a0b01e062]

	* configure.in:
	reordered AC_CHECK_FUNCS
	[2f1773275]

	* config.h.in:
	fixed memset macro
	[0d4643159]

	* tgetpass.c, visudo.c:
	bzero -> memset
	[e281c20f4]

	* logging.c:
	bzero -> memset when a parse error is logged the line number of the
	error is now logged too
	[222d26076]

	* INSTALL:
	added Sunos to blurb about c2 security
	[25d8da8ad]

	* configure.in:
	added a SUN4 define for C2 security
	[b5b99e0b3]

	* config.h.in:
	bcopy -> memmove bzero -> memset
	[166536d2a]

	* lsearch.c:
	bcopy -> memmove char * -> VOID *
	[a5bf165f7]

	* check.c:
	added support for sunos with C2 security
	[99af59db4]

	* OPTIONS, options.h:
	reordered
	[f45450cf7]

	* pathnames.h.in:
	_PATH_SUDO_LOGFILE now set based on configure
	[af2bbaf7c]

	* configure.in:
	added SUDO_LOGFILE and SUDO_TYPE_SIZE_T
	[40d004931]

	* config.h.in:
	added _SUDO_PATH_LOGFILE
	[4bdb9b6fa]

	* aclocal.m4:
	added SUDO_LOGFILE to find where to put sudo.log added
	SUDO_CHECK_TYPE (just AC_CHECK_TYPE but checks unistd.h too) added
	SUDO_TYPE_SIZE_T (calls SUDO_CHECK_TYPE)
	[8fcb78602]

1995-03-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TROUBLESHOOTING:
	Initial revision
	[38b60eebb]

	* sudo.c:
	now do set_perms(PERM_ROOT) before the getpwuid() in load_global()
	to work around a problem is trusted hpux shadow passwords. yuck.
	[fe19bcc7c]

	* parse.yacc:
	backed out a change in malloc/realloc
	[ba7c8ad18]

	* parse.yacc:
	now include stdlib.h
	[cc47d04a0]

	* visudo.c:
	now do an freopen() of the stmp file so that yyin will always point
	to the same thing. This is important for flex since we are doing a
	YY_NEWFILE
	[c58915743]

	* parse.yacc:
	replaced yywrap() with parser_cleanup() since yywrap() needs to be
	in parse.lex to be able to use YY_NEW_FILE. sigh.
	[60b17a682]

	* parse.lex:
	now have a rule that matches anything that doesn't match an
	explicite rule. well, you know what i mean (. matches anything not
	yet matched). However, this means that there is input still queued
	up so we need to do a YY_NEW_FILE; in yywrap. So, yywrap has moved
	into parse.lex and it calls parser_cleanup() which is most of the
	old yywrap() sigh.
	[4cfd02344]

	* SUPPORTED:
	no longer used
	[96f7d5a0c]

	* getcwd.c, getwd.c:
	moved compat.h to be the last include file
	[64b69d5f5]

	* parse.yacc:
	fixed type of aliascmp() args
	[e3bed398b]

	* find_path.c:
	NULL -> '\0'
	[dda75b2fd]

	* parse.yacc:
	added casts to lfind and lsearch args for irix
	[5db1b51da]

	* Makefile.in:
	bsdinstall -> install-sh
	[204f66598]

	* INSTALL:
	added info about make realclean
	[4ada7ce45]

	* Makefile.in:
	updated VERSION added dependencies for visudo.cat
	[78c573df1]

	* version.h:
	-> pl5b1
	[46dd8bfb8]

	* sudo.c:
	took out -l
	[22c7d31a5]

	* Makefile.in:
	now there is a real visudo.man and visudo.cat
	[894585ffe]

	* sudo.man:
	took out visudo stuff
	[644f4fcba]

	* visudo.man:
	Initial revision
	[dd534f542]

	* parse.c, parse.lex, parse.yacc:
	updated copyright
	[890fb310e]

	* README:
	updated for pl5
	[1e46c2691]

	* sudo.man:
	updated Nieusma & Hieb email addresses
	[0c651fc7c]

	* INSTALL:
	updated to include options.h and OPTIONS
	[7ff2175ca]

	* CHANGES, TODO:
	updated
	[0b7813011]

	* BUGS:
	eliminated bug #1 (yay)
	[efbfee912]

	* configure.in:
	sunos no longer gets linked statically
	[e29e1f9d2]

1995-03-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.lex:
	prototype now uses __P()
	[80f073fbc]

	* parse.lex:
	make fill() non-ansi
	[b07614b2e]

	* parse.c:
	made -v (validate) work
	[f0fff46a1]

	* logging.c:
	now gives host
	[839b5e7ff]

	* find_path.c:
	don't check for execute/statable if fq or relative path given
	[8a7d8fb41]

	* parse.c:
	added a cast
	[31f5c73d0]

	* visudo.c:
	now include ctype.h for islower and tolower macros
	[485c9e6ed]

	* goodpath.c:
	moved _S_IFMT & _S_ISREG to compat.h
	[a9f4e4530]

	* sudo.c:
	moved a set of parens
	[4e29c4d3f]

	* strdup.c:
	now include compat.h
	[b0406ebfb]

	* emul/search.h:
	void * -> VOID *
	[f1b54219d]

	* parse.yacc:
	now cast malloc & realloc return vals added search for HAVE_LSEARCH
	now use strcmp if no strcasecmp available
	[7c1eda16e]

	* lsearch.c:
	void * -> VOID *
	[445a68297]

	* config.h.in:
	removed HAVE_FLEX added VOID added HAVE_DIRENT_H, HAVE_SYS_NDIR_H,
	HAVE_SYS_DIR_H, HAVE_NDIR_H added HAVE_LSEARCH
	[363964548]

	* compat.h:
	added _S_IFMT, _S_IFREG, and S_ISREG
	[b207b64d8]

	* aclocal.m4:
	took out SUDO_PROG_INSTALL 1.x to 2.x changes added echo and results
	to most SUDO_* macros
	[6b98875f8]

	* Makefile.in:
	no more -I.
	[2b322baa6]

	* configure.in:
	various 1.x ro 2.x autoconf changes now check for strcasecmp now use
	AC_INSTALL_PROG instead of custom one added check for fully woorking
	void implementation
	[91da5d313]

	* Makefile.in:
	added lsearch & search.h visudo links into $(LIBOBJS)
	[a6867100a]

	* aclocal.m4:
	partial 1.x to 2.x changes added SUDO_FULL_VOID
	[dde32f14d]

	* visudo.c:
	whatnow_help was prototyped to be static be was not declared as such
	[348eb2c3e]

	* configure.in:
	autoconf 2.x changes took out HAVE_FLEX (no longer used) added check
	for dirent/dir/ndir.h
	[dbc0ddbdf]

	* parse.c:
	now use groovy gnu autoconf macro AC_HEADER_DIRENT
	[d24022cde]

	* getcwd.c, getwd.c:
	MAXPATHLEN -> MAXPATHLEN+1
	[fb3c0f2a3]

	* emul/search.h, lsearch.c:
	Initial revision
	[c28761743]

1995-03-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	eliminated bison warnings
	[09e1ddb05]

	* parse.lex:
	added missing case
	[f1c8d99b9]

	* visudo.c:
	now iincludes signal.h
	[d5752237a]

	* parse.yacc:
	only clear data structures on a parse error
	[e24031eab]

	* visudo.c:
	whatnow() now gives help on invalid input
	[6876438ab]

	* visudo.c:
	added a whatnow() function (sort of like mh)
	[7c7ea0252]

	* parse.yacc:
	kill_aliases -> reset_aliases yywrap() now cleans up by calling
	reset_aliases() and clearing top took reset stuff out of yyerror()
	since it doesn't beling there (and doesn't work anyway). errorlineno
	is now initially set to -1 so we can set it to the first error that
	occurrs (it was getting set to the last)
	[f92064130]

	* parse.lex:
	added a void cast
	[bd987bf7f]

	* visudo.c:
	rewrote from scratch based on 4.3BSD vipw.c
	[c56ec5dbc]

1995-03-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c, sudo.h:
	removed ocmnd
	[40fbed903]

	* sudo.h:
	no more sudo_realpath() and find_path() changed params
	[8de40d1c3]

	* sudo.c:
	find_path() changed since no more realpath()
	[175390b58]

	* parse.yacc:
	on error, errorlineno is set to the line where the error occurred
	added kill_aliases() to free the aliases struct now clean up in
	yyerror() so we can reparse cleanly
	[d06e1f3ab]

	* options.h, parse.c:
	no more USE_REALPATH
	[5509c7763]

	* logging.c:
	changed to use new find_path()
	[ee49c5c24]

	* find_path.c:
	removed all the realpath() stuff
	[4125ee07a]

	* Makefile.in:
	sudo_realpath.c -> sudo_goodpath.c
	[2c44508fa]

	* visudo.c:
	now works correctly with utk parser
	[fd341dbde]

	* goodpath.c:
	Initial revision
	[26a5f0d15]

	* sudo_realpath.c:
	eliminated a compiler warning
	[cc10c0ec0]

	* sudo.c:
	elinated compiler warning
	[ba61aad4a]

	* sudo_realpath.c:
	added sudo_goodpath()
	[aeb609efd]

	* sudo.h:
	added prototype for sudo_goodpath
	[5595c3817]

	* parse.c:
	added support for /sys/dir.h
	[054c9ce3d]

	* options.h:
	USE_REALPATH turned off
	[094d564e6]

	* find_path.c:
	added calls to sudo_goodpath()
	[c3ac93caa]

	* configure.in:
	added check for dirent.h
	[c08ab7544]

	* config.h.in:
	added HAVE_DIRENT_H
	[c2906f3e9]

	* configure.in:
	added in linux shadow pass stuff 
	[0ef8b2e01]

1995-03-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	added back host, user, cmnd, parse_error
	[5b042113e]

	* visudo.c:
	added in utk changes plus some minor cosmetic changes
	[846f554a4]

	* sudo.c, sudo_realpath.c:
	added void casts for printf's
	[37aafbf09]

	* options.h:
	added a define of USE_REALPATH
	[b7221f7ab]

	* configure.in:
	there is no more visudoers/Makefile
	[359e12ece]

	* Makefile.in:
	added in utk changes (visudo is now built from the toplevel)
	[dbafc6245]

	* find_path.c:
	added (void) casts to printf's
	[35a22d345]

	* parse.c, parse.lex, parse.yacc, sudo.h, sudo_realpath.c:
	merged in utk changes
	[34a6197f4]

1995-03-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c:
	now check to see that what we are trying to run is a file (or a link
	to a file, we do a stat(2) so there is no diff)
	[0759d4809]

1995-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	updated
	[3600186d6]

	* Makefile.in:
	aclocal.m4 -> acsite.m4 make realclean updated for new autoconf 
	[a3457aaf0]

	* sudo.man:
	added myself as maintainer
	[e9a79b137]

1995-02-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	changed setegid -> setgid
	[b9f7c72dd]

1995-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	fixed the test for irix 5.x to skip bad libs
	[bc207b74c]

	* aclocal.m4:
	now initialize OS and OSREV
	[312b501f4]

1995-01-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	irix5 changes
	[34de49432]

	* configure.in:
	AC_WITH -> AC_ARG_WITH changes other misc changes for autoconf 2.1
	compatibility
	[e70ddc18d]

1995-01-19  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	use YY_NEW_FILE, not yyrestart since OSF flex doesn't do the righ
	thing wrt yyrestart (grrrr)
	[10b323c36]

1995-01-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	added visudoers/compat.h to DISTFILES
	[9a2d60685]

	* configure.in:
	fixed an echo
	[8f18ca32c]

	* sudo.c:
	added ocmnd declaration adjusted for find_path()'s new parameters
	[ee8a3a440]

	* sudo.h:
	added ocmnd extern adjusted find_path() prototype
	[7bcb9b4e1]

	* parse.c:
	cmndcmp() now takes 3 arguments and checks against the qualified as
	well as the unqualified pathname. more code that should use
	cmndcmp() but did not, now does
	[44fb090c7]

	* options.h:
	added to a comment
	[6091806d4]

	* logging.c:
	changed to use new find_path() parameter passing
	[9116e4558]

	* find_path.c:
	find_path() now takes 2 copyout parameters (one for the qualified
	pathname and one for the unqualified pathname). The third parameter
	may be NULL.
	[4fa8a93f6]

	* configure.in:
	no longer munge pathnames.h
	[4618404c7]

	* pathnames.h.in:
	changed _PATH_* to use _SUDO_PATH_* (which are defined in config.h)
	as a result, pathnames.h does not need to be run through configure
	and the user can override the configured values easily.
	[4c790506b]

	* config.h.in:
	added _SUDO_PATH_* entries
	[bf7b8e1c2]

	* aclocal.m4:
	_PATH* -> _SUDO_PATH_*
	[4c3d48a8b]

	* Makefile.in:
	updated DISTFILES and HDRS .o's now depend on config.h
	[f351747a4]

1995-01-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* compat.h:
	removed extraneous #endif
	[3eace2625]

	* aclocal.m4:
	added SUDO_PROG_MV
	[4fbbe1bb5]

	* configure.in:
	added SUDO_PROG_MV added riscos and isc os types took out
	-DSHORT_MESSAGE from --with-csops since it is now the default
	[1bd5b76a6]

	* sudo.c:
	move the include of id.h to compat.h now includes options.h
	[5318438a0]

	* sudo.h:
	moved compatibility #defines to compat.h
	[df46f66f6]

	* pathnames.h.in:
	added _PATH_MV
	[fd5039a32]

	* config.h.in:
	move __P to compat.h
	[3fe8d9202]

	* getcwd.c, getwd.c, putenv.c:
	now includes compat.h
	[b7b53ae4a]

	* compat.h:
	Initial revision
	[2046a4520]

1995-01-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	pull user-configurable stuff out and put in options.h
	[08207310c]

1995-01-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.lex, parse.yacc, visudo.c:
	now includes options.h
	[17f8d7469]

	* check.c, find_path.c, logging.c, parse.c, sudo_realpath.c,
	sudo_setenv.c:
	now includes options.h
	[db8b50d82]

	* Makefile.in:
	added visudoers/options.h
	[3de8088fe]

	* OPTIONS, options.h:
	Initial revision
	[4c5b5bd9a]

	* Makefile.in:
	added OPTIONS and options.h
	[0435459ce]

	* logging.c:
	changed #ifdef's to use LOGGING and SLOG_SYSLOG/SLOG_FILE
	[e4452a2ed]

	* check.c, sudo.h:
	changed PASSWORD_TIMEOUT to minutes
	[25f7b5cf1]

1994-12-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	now only do Editor +line_num if line_num != 0
	[7bd269bd8]

1994-12-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	now use mv if rename(2) fails
	[5d212959c]

	* BUGS:
	added a visudo bug
	[9961a7c96]

	* check.c:
	expanded comment
	[b5096e0ce]

1994-11-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	fixed user_is_exempt to return 0 if EXEMPTGROUP is not set
	[7806a5c2d]

1994-11-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	added mips & isc support
	[be3b8f806]

	* parse.c:
	added support for non-root owned sudoers file
	[6482c50cb]

	* check.c:
	added exempt group support
	[f17d6c53c]

	* sudo.h:
	added set_perms() support added SUDOERS_OWNER so can have non-root
	own sudoers file added exempt group support added isc support
	[34abdbe9a]

	* visudo.c:
	now copy sudoers to temp file via read/write (not stdio) now chown
	new sudoers file to SUDOERS_OWNER
	[1249fb564]

1994-11-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added skey support
	[15c283a95]

	* sudo_realpath.c:
	be_* -> setperms()
	[7f271c978]

	* sudo.h:
	fixed typo added set_perms support added skey support added
	seteuid()/setegid() emulation for AIX
	[7b434f97f]

	* sudo.c:
	be_* -> setperms() now check to make sure sudoers file is owned by
	root nread/write by only root
	[8dc58160a]

	* logging.c, parse.c:
	be_* -> setperms()
	[fe8b92ba4]

	* check.c:
	be_* -> set_perms() added skey support
	[46d361a44]

1994-11-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	++version
	[2eb3cac51]

	* version.h:
	++
	[60c966b07]

1994-10-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	now sets IFS
	[efdad527c]

	* insults.h:
	fixed typo
	[368e652de]

1994-10-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	added HAVE_SKEY
	[34c40cc12]

1994-10-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	updated
	[ff7362b42]

	* Makefile.in:
	++version
	[53588e79a]

	* version.h:
	++
	[a09ab0b86]

	* sudo.c:
	now bail if ARgv[1] > MAXPATHLEN
	[6b069fabe]

	* configure.in:
	added function check for tcgetattr(3)
	[92245ab4f]

	* config.h.in:
	only define HAVE_TERMIOS_H if you have tcgetattr(3)
	[3fe0b9672]

	* config.h.in:
	added check for tcgetattr
	[140618362]

1994-09-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	updated
	[93d600b2c]

1994-09-22  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.lex:
	now only include unistd.h for linux
	[cbb087974]

1994-09-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	added visudo.8 generation
	[881374f18]

	* configure.in:
	added -Wl,-bI:./aixcrypt.exp to aix flags
	[482ea91f5]

1994-09-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS:
	added one
	[e72686577]

	* CHANGES:
	updated
	[e3b750dd1]

	* README:
	added mailing list info
	[a4c6eb1dd]

	* parse.yacc:
	now use sudolineno instead of yylineno fixed bison warnings
	[43e8cd4fa]

	* configure.in:
	now use -no_library_replacement for osf don't make a static binary
	for hpux >= 9.0
	[92b4dea2d]

	* tgetpass.c:
	added string.h/strings.h inclusion
	[1c91f8bb7]

	* config.h.in:
	added ssize_t def
	[de7ed682d]

	* parse.lex:
	added inclusion of string.h/strings.h
	[000b5d235]

	* aclocal.m4:
	fixed uname | sed (needed to quote the '[')
	[fa4273a93]

	* parse.lex:
	replaced yylineno with sudolineno fixed bison syntax errors
	[98e893ece]

	* visudo.c:
	changed yylineno to sudolineno since yylineno cannot be counted
	upon.
	[fff477cb8]

	* TODO:
	updated
	[e0e9092ca]

	* parse.c:
	added code to support command listings
	[0d973cdf2]

	* sudo.c:
	added code for -l flag
	[410f21dd7]

	* sudo.man:
	fixed typo added info for -l flag
	[7021bdc4e]

	* configure.in:
	AC_SSIZE_T -> SUDO_SSIZE_T
	[abadb6ec6]

	* aclocal.m4:
	added SUDO_SSIZE_T
	[b20ff4687]

	* sudo.h:
	added MODE_LIST
	[2ff6056d9]

	* configure.in:
	added AC_SSIZE_T
	[50c517dd5]

	* find_path.c, sudo_realpath.c:
	readlink() is now declared as returning ssize~_t
	[c367fa702]

	* configure.in:
	added -laud for OSF c2
	[565adde5b]

1994-09-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, visudo.c:
	changed sudo-bugs.cs.colorado.edu -> sudo-bugs@cs.colorado.edu
	[b56bc92e0]

	* config.h.in, parse.lex, parse.yacc, pathnames.h.in:
	changed sudo-bugs.cs.colorado.edu -> sudo-bugs@cs.colorado.edu
	[7229829c8]

	* check.c, find_path.c, getcwd.c, getwd.c, insults.h, logging.c,
	parse.c, putenv.c, strdup.c, sudo.c, sudo.h, sudo_realpath.c,
	sudo_setenv.c, tgetpass.c, version.h:
	changed sudo-bugs.cs.colorado.edu -> sudo-bugs@cs.colorado.ed
	[525954e1b]

1994-09-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in:
	++version
	[5019a29e6]

	* version.h:
	++
	[ed62683a6]

	* logging.c:
	added host to alertmail messages
	[89d6f4937]

	* CHANGES, TODO:
	udpated
	[9dd2859b9]

	* logging.c:
	fixed logging problem where mail would not say which user it was
	[ad6f7a488]

	* configure.in:
	added -laud for gcc if osf & c2
	[3f557e4b2]

	* check.c:
	moved set_auth_parameters to sudo.c
	[e3fb4ee3a]

	* sudo.c:
	added set_auth_parameters for osf
	[5d04e3eaf]

	* configure.in:
	cleaned up -static stuff
	[ee7f9e145]

	* Makefile.in:
	++version
	[71888a611]

	* version.h:
	++
	[5341cd3f8]

	* sudo.c:
	changed setenv() to sudo_setenv()
	[4c19411fc]

	* check.c:
	fixed osf problem
	[e6e9c18d0]

	* configure.in:
	added OSF C2 stuff
	[07594fd73]

	* CHANGES:
	updated
	[22d700250]

	* check.c:
	added osf auth support & removed some extra spaces
	[d366d09e6]

	* INSTALL, SUPPORTED:
	added osf C2 stuff
	[22acfc6df]

1994-08-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO:
	added 2 suggestions
	[07111800e]

	* Makefile.in:
	removed README.v1.3.1 and added VERSION stuff
	[eca586506]

	* version.h:
	pl1
	[0368a035b]

1994-08-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* version.h:
	1.3.1final
	[7f8aa5d8c]

	* Makefile.in:
	added HISTORY
	[3e474aef2]

	* sudo.man:
	mention HISTPRY file
	[de6a7d9e2]

	* sudo.c:
	use sizeof instead of a constant in 1 place
	[617455453]

	* parse.yacc:
	added unistd.h
	[b7df10fe2]

	* parse.lex:
	added unistd.h
	[e5de10d25]

	* README:
	udpated
	[bdb249e47]

	* HISTORY:
	Initial revision
	[6004a8cd4]

1994-08-17  Todd C. Miller  <Todd.Miller@courtesan.com>

	* version.h:
	++
	[cd3d369b9]

	* CHANGES:
	updated
	[02f0a29db]

	* sudo_setenv.c:
	added unistd.h include
	[109d54f91]

1994-08-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	added sys/time.h for AIX
	[23c2416e0]

1994-08-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added check for -lsocket and sys/sockio.h
	[79a42a836]

	* config.h.in:
	took out libshadow check and added in sys/sockio.h check
	[ca9133000]

	* sudo.c:
	now include sockio.h instead of ioctl.h if it exists "sudo -" now
	gets a better error message
	[98ca6de0d]

	* sample.sudoers:
	now has a dir and subnet entry
	[19c13f4fa]

1994-08-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	removed if_ether.h
	[51ebc0b2b]

	* TODO:
	added an item
	[8245f195d]

	* sudo.man:
	added network and ip addresses to man page
	[e047d29e1]

	* sudo.c:
	no error if can't get interfaces or netmask since networking may not
	be in the kernel.
	[20f8b1911]

	* parse.c:
	nwo check for interfaces == NULL
	[e9114229c]

	* parse.c:
	fixed a bug that caused directory specs in a Cmnd_Alias to fail if
	the last entry in the spec failed (ie: it was only looking at the
	last entry). CLeaned things up by adding the cmndcmp() function--all
	neat & tidy
	[971a69bb2]

	* CHANGES:
	added one
	[c3be7c93c]

1994-08-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	now do two passes to skip bogus interfaces (lo0, etc)
	[6e337ed50]

	* parse.lex, parse.yacc, visudo.c:
	added include of netinet/in.h
	[5a766f63a]

	* logging.c, sudo_realpath.c, sudo_setenv.c:
	added ninclude of netinet/in.h
	[835b10be2]

	* check.c, find_path.c, getcwd.c, getwd.c:
	added include of netinet/in.h
	[380be0c4c]

	* version.h:
	++
	[787a7254b]

	* sudo.h:
	added interfaces global
	[b8cc728d9]

	* parse.c:
	now uses new interfaces global
	[2b0794bb0]

	* sudo.c:
	now ip addresses are gleaned fw/o dns
	[669ecb8a2]

1994-08-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	added load_ip_addrs() to load the ip_addrs global var
	[49673e12c]

	* parse.c:
	added hostcmp() to compare hostnames, ip addrs, and network addrs
	[3fa8477a1]

	* sudo.h:
	added ip_addrs def added load_ip_addrs prototype
	[2d67de500]

1994-08-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	updated
	[701f67f7d]

	* Makefile.in:
	removed multiple entries in DISTFILES
	[c7b944fc9]

	* visudo.c:
	ansified the !STDC_HEADERS decls
	[1823b5723]

	* find_path.c, getcwd.c, getwd.c, putenv.c, strdup.c:
	don't do malloc decl if gnuc
	[aaefd1c3a]

	* sudo.c:
	can't use getopt(3) since it munges args to the command to be run as
	root don't do malloc decl if gnuc
	[880ca6406]

	* find_path.c, getcwd.c, getwd.c, putenv.c, strdup.c, sudo.c,
	sudo_realpath.c, sudo_setenv.c:
	ansi-fied !STDC_HEADER function prottypes
	[e54f35e71]

	* getcwd.c, getwd.c:
	added missing paren
	[72cf5123b]

	* Makefile.in:
	added putenv.c to DISTFILES
	[cf91591b6]

	* sudo_setenv.c:
	added params to func decls when STDC_HEADERS is not defined now can
	count on putenv() being there
	[495749c32]

	* sudo_realpath.c:
	took out errno decl since sudo.h does it for us fixed up a next cc
	warning added params to func decls when STDC_HEADERS is not defined
	[b20e86de9]

	* sudo.h:
	took out environ extern added local declaratio of putenv() if local
	version is needed
	[65a4afee4]

	* find_path.c, getcwd.c, getwd.c, strdup.c, sudo.c:
	added params to func decls when STDC_HEADERS is not defined
	[38b6d5f1d]

	* config.h.in:
	added memcpy check check to see that ansi vs bsd macros are ntot
	already defiend before defining (ie: avoid redefinition)
	[a3bbe79d6]

	* configure.in:
	removed fluff setenv check plus check w/ replace for putenv if also
	no setenv
	[5b1f9bb96]

	* putenv.c:
	Initial revision
	[c31749bb5]

1994-08-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo_setenv.c:
	Initial revision
	[b82711913]

	* sudo.h:
	rm'd s realp[ath added sudo_realpath and sudo_setenv
	[8d2884395]

	* sudo.c:
	now use sudo_setenvc
	[7b0e8546f]

	* configure.in:
	added puteenv and setenv, removed realpath
	[e80ed0c91]

	* config.h.in:
	added putenv & setenv
	[9fb3f695e]

	* Makefile.in:
	added sudo_setenv
	[c07002061]

	* version.h:
	++
	[121d219b8]

1994-08-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added MAN_POSTINSTALL and /usr/share/catman for irix
	[3f4bcc6ad]

	* Makefile.in:
	added MAN_POSTINSTALL
	[bb6e73e3a]

	* CHANGES:
	added
	[108b01614]

	* sudo.man:
	added SUDO_* plus new options
	[510223269]

	* CHANGES:
	added one
	[5130df6af]

	* configure.in:
	took out shadow lib
	[6f4d5e7e7]

	* TODO:
	adde done
	[ca19e057f]

	* visudo.c:
	now use yyrestart() if flex now reset yylineno to 0
	[a1ebf256d]

	* Makefile.in:
	support for installing a cat page instead of a man page if no nroff
	[c87dbc5fd]

	* configure.in:
	now defines HAVE_FLEX fixed up man stuff so that it looks for nroff
	to determine whether or not to install a cat or man page
	[9007d32f3]

	* config.h.in:
	added HAVE_FLEX
	[a05e773b6]

	* sudo.c:
	not set ret to MODE_RUN initially
	[ee50a4661]

	* find_path.c:
	made command (and therefor cmnd dynamically allocated)
	[494d1c116]

	* TODO:
	did #8
	[d5cd5fac2]

	* version.h:
	++
	[ace8ac2c0]

	* sudo_realpath.c:
	changed bufs from MAXPATHLEN to MAXPATHLEN+1
	[22fa51dbf]

	* sudo.h:
	added MODE_ removed validate_only and added remove_timestamp()
	[a6fe8c86a]

	* sudo.c:
	usage() now takes an int (exit value) added parse_args() to parse
	command line arguments moved call to find_path() from load_globals
	to new function load_cmnd() removed validate_only global -- now use
	the concept of "modes" added -h and -k options
	[70333883c]

	* parse.c:
	no longer use global validate_only now checks for command called
	"validate" removed check for non-fully qualified commands since that
	is done by find_path
	[a24fdfd08]

	* find_path.c:
	changed MAXPATHLEN r to MAXPATHLEN+1
	[0b185cb71]

	* find_path.c:
	fixed off by one error with MAXPATHLEN and fixed a comment
	[3353665bb]

	* check.c:
	check_timestamp no longer runs reminder(), it is implied in the
	return val added remove_timestamp()
	[81cf2c5e6]

	* CHANGES:
	updated
	[e418bfc74]

1994-08-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS:
	fixed on
	[abd71f1a7]

	* sudo_realpath.c:
	took out old_errno
	[6259b8270]

	* CHANGES:
	updated
	[3f0fd7c8c]

1994-08-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	moved send_mail to after syslog
	[91970b418]

	* sudo.c:
	now set SUDO_ envariables
	[8161d52f3]

1994-08-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* version.h:
	++
	[c8fa6ac23]

	* sudo_realpath.c:
	now print error if chdir fails
	[35d838c68]

	* find_path.c:
	removed an XXX
	[3c318d8ae]

1994-07-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	updated
	[17800e3e9]

	* configure.in:
	no more static binaries for aix
	[648570a53]

1994-07-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	fixed typo
	[193f01342]

	* sudo_realpath.c:
	took out stuff not needed for sudo now does be_root/be_user itself
	now uses cwd global
	[46a7d9cd5]

	* version.h:
	+=2
	[691f31353]

	* logging.c, sudo.c:
	be_root/be_user is now down in sudo_realpath()
	[2624e7ee7]

	* logging.c, sudo.h:
	now works with 4.2BSD syslog (blech)
	[7b70cafbb]

	* find_path.c:
	now use sudo_realpath()
	[93230e6c2]

	* config.h.in:
	took out realpth() stuff since we now use sudo_realpath()
	[0230d8474]

	* configure.in:
	ultrix enhanced sec
	[445a13eeb]

	* SUPPORTED:
	added ultrix enhanced sec.
	[35ae1ba37]

	* INSTALL:
	updated
	[c3f2fa99c]

	* check.c:
	ultrix enhanced security suport
	[3a61f6992]

	* Makefile.in:
	added sudo_realpath.c
	[1f8ffedda]

	* CHANGES:
	updated
	[b46f59417]

	* tgetpass.c:
	increased passwd len to 24 for c2 security
	[adf4060de]

	* BUGS:
	updated BUGS
	[abf8c06cb]

1994-07-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	now use user global var
	[6f2b5908c]

	* configure.in:
	took out -ls
	[c1850dc59]

1994-07-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added AFS libs
	[18d1aa194]

	* sudo.h:
	user is now a char * added epasswd
	[5cd28192b]

	* sudo.c:
	added tzset() to load_globals added epasswd (encrypted password)
	global made user dynamically allocated
	[e7bf4f9fe]

	* configure.in:
	added tzset test
	[c61a3f9b7]

	* config.h.in:
	added HAVE_TZSET
	[6da926cb1]

	* check.c:
	cleaned up encrypted passwd grab somewhat
	[5d1d53ddb]

	* configure.in:
	fixed AFS typo
	[df5ff10a2]

	* INSTALL:
	added AFS not
	[8d3e7540f]

	* CHANGES:
	udpated
	[511ab3ee9]

	* logging.c:
	can now log to both syslog & a file
	[be6537192]

	* sudo.h:
	added BOTH_LOGS
	[c80d59a51]

	* CHANGES:
	updated
	[1fec608b9]

	* configure.in:
	--with-AFS
	[9afc5e8d9]

	* config.h.in:
	added HAVE_AFS
	[8ff8e0d7f]

	* check.c:
	added afs changes
	[b3adbb74b]

	* sudo.h:
	removed AFS stuff :-)
	[de673c3fe]

	* tgetpass.c:
	include sys/select for AIX
	[88e2af512]

	* sudo.h:
	added AFS
	[624a46cd1]

	* version.h:
	++
	[de84c4f25]

1994-07-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES, SUPPORTED:
	updated
	[a5c59d2d6]

	* logging.c:
	can now have MAILER undefined
	[f3cd23eee]

	* INSTALL:
	new sub-note about MAILER
	[7083436ee]

	* sudo.man:
	added blurb about password timeout
	[5fe128aab]

	* configure.in:
	convex c2 changes
	[8b8127da5]

	* aclocal.m4:
	took out duplicate define of _CONVEX_SOURCE
	[d0aeec82d]

	* Makefile.in:
	added OSDEFS
	[8a28dbc48]

	* config.h.in:
	added spaces
	[6cbabab4e]

	* tgetpass.c:
	added a goto if fgets fails
	[cd4a540c1]

	* sudo.h:
	use __hpux not hpux convex c2 stuff
	[2b12703ae]

	* sudo.c:
	use __hpux not hpux
	[0148bcaf6]

	* logging.c:
	convex c2 stuff
	[93279eeaf]

	* config.h.in:
	define ansi-ish cpp os defines if non-ansi are defined for hpux &
	convex
	[63bd80e13]

	* INSTALL:
	updated to say we support sonvex C2
	[4025b56ea]

	* check.c:
	added convex c2 support
	[ff2bea694]

1994-07-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	no more ioctl never returns NULL uses fgets() and select() to
	timeout
	[e94e7218b]

1994-06-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	things were testing -n "$GCC" instead of -z "$GCC"
	[840b5688d]

	* tgetpass.c:
	now works + uses fgets()
	[85a5899af]

1994-06-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	select doesn't seem to recognize a single '\n' as input waiting so
	we can;t use it, sigh.
	[391a73f40]

1994-06-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* PORTING:
	updated tgetpass() blurb
	[a541ff80b]

	* configure.in:
	added --with-getpass
	[a16b59c88]

	* Makefile.in:
	added tgetpass stuff
	[90b6768a8]

	* tgetpass.c:
	now uses stdio
	[605250d9a]

	* version.h:
	++
	[0e68f2351]

1994-06-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* PORTING:
	updated ,.
	[5f597efb1]

	* config.h.in:
	added USE_GETPASS && HAVE_C2_SECURITY
	[f7d1ae533]

	* configure.in:
	fixed a test aded --with-C2 and --with-tgetpass
	[56bcd39a2]

	* check.c:
	added hpux C2 shit
	[8680c1962]

	* Makefile.in:
	took out tgetpass.*
	[94cf91194]

	* INSTALL:
	added C2 blurb
	[efb9ac3e8]

1994-06-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	no termio(s) for ultrix since it is broken
	[0e3502816]

	* check.c:
	added a space (yeah, anal)
	[32e385dbc]

	* realpath.c, sudo_realpath.c:
	fixed it (duh, rtfm)
	[a534a9688]

1994-06-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	took out bsd signal stuff for irix
	[ba0fa8127]

	* visudo.c:
	comments in #endif
	[213000626]

	* configure.in:
	don't define BSD signals for irix
	[9952fbbd8]

	* TODO:
	did some...
	[c783c5800]

	* CHANGES:
	updated
	[9a62cffff]

	* realpath.c, sudo_realpath.c:
	took out unneeded code by changing where a strings was terminated
	[1970f75b4]

1994-06-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* realpath.c, sudo_realpath.c:
	fix bug where /dirname would return NULL
	[d8013e48b]

	* sudo.h:
	move __P to config.h
	[c2c72c6e7]

	* getcwd.c, getwd.c, realpath.c, sudo_realpath.c:
	added errno definition
	[9e85433e9]

	* config.h.in:
	added __P
	[dce131798]

	* config.h.in:
	added HAVE_FCHDIR
	[678b9c6bc]

	* strdup.c:
	now include stdio
	[d717b6dd5]

	* realpath.c, sudo_realpath.c:
	now works if no fchdir
	[56e09c3b7]

	* visudo.c:
	define SA_RESETHAND to null if not defined
	[a0944afd8]

	* configure.in:
	added check & replace
	[e2ffd1432]

	* configure.in:
	took out -static for nextstep -- it doesn't work
	[7ba319bd5]

1994-06-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	moved #endif to where it belongs
	[e066e7b2f]

	* SUPPORTED:
	correction
	[0e7f77f8e]

	* configure.in:
	now checks for strdup realpath getcwd bzero
	[b21fe972a]

	* config.h.in:
	emulate bzero
	[807274756]

	* visudo.c:
	added posic signals
	[b1d57caa6]

	* tgetpass.c:
	bzero cast
	[289e1ea1f]

	* logging.c:
	added posix signals
	[369cf760d]

	* configure.in:
	removed BROKEN_GETPASS added new srcs toreplace missing functions
	[f2a4f4ad7]

	* config.h.in:
	added posix signal stuff
	[54c4fdf46]

	* Makefile.in:
	added new srcs
	[e97a32e6f]

	* visudo.c:
	updated useag
	[9fe50ceef]

	* tgetpass.c:
	now uses posix signals
	[49b131a7e]

	* PORTING:
	updated sto reflect major changes
	[473acb842]

	* CHANGES, TODO:
	updated
	[662727816]

	* tgetpass.c:
	uses sysconf() if available
	[14ea471ac]

	* sudo.h:
	added PASSWORD_TIMEOUT + prototypes for new functions
	[c49ded5fd]

	* realpath.c, sudo_realpath.c:
	for those w/o this in libc
	[2ff87dea0]

	* getcwd.c, getwd.c:
	Initial revision
	[1460112ba]

	* find_path.c:
	rewrote to use realpath(3) - nis now all my code
	[bcdde9854]

	* config.h.in:
	added HAVE_REALPATH
	[d5573c8fa]

	* check.c:
	now use tgetpass
	[ccc790967]

	* Makefile.in:
	added LIBOBJS use tgetpass.c
	[42335fe01]

1994-06-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* tgetpass.c:
	works now :-)
	[7a0dee3e6]

	* tgetpass.c:
	Initial revision
	[7c8d0ba74]

	* pathnames.h.in:
	added /dev/tty
	[1cbcc7d1f]

1994-06-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* version.h:
	incremented
	[b5ff63bb4]

	* sudo.c:
	always use getcwd
	[a5c4f697d]

	* config.h.in:
	added check for getwd
	[d658bd71a]

	* configure.in:
	replace strdup & realpath & getcwd if missing
	[4e09ec9e8]

	* pathnames.h.in:
	added _PATH_PWD
	[96227ea99]

	* aclocal.m4:
	added SUDO_PROG_PWD
	[84e75c6ee]

	* strdup.c:
	Initial revision
	[aa3f3f2b6]

	* realpath.c, sudo_realpath.c:
	Initial revision
	[6b8659a55]

1994-06-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	quoted quare brackets
	[4eb6ab0b4]

1994-06-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	no need to strdup() a constant
	[9e79c34b9]

	* CHANGES:
	updated
	[b46f7ee32]

	* sudo.man:
	added validate
	[c0c9196c5]

	* sudo.c:
	added -v to usage
	[48b8a66dc]

	* parse.c, sudo.c, sudo.h:
	added validate_only stuff
	[71cba1559]

1994-05-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	now finds sed
	[b32c8249b]

	* aclocal.m4:
	$OSREV is now an int
	[9f8f955af]

1994-05-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	added mtxinu to caser
	[418f2c1b1]

	* sudo.h:
	added EXEC macro
	[e3021f03c]

	* sudo.c:
	now use the EXEC nmacro now only do a gethostbyname() if FQDN is set
	[a298a5dc4]

	* logging.c:
	changed mail_argv[] def now use EXEC() macro
	[7e8d543af]

	* check.c:
	took out crypt() definition
	[82eebb817]

	* version.h:
	upped the version
	[182569994]

	* configure.in:
	always look for -lnsl
	[577b056eb]

	* aclocal.m4:
	added an echo
	[6224b05a7]

	* sudo.h:
	SHORT_MESSAGE is now the default
	[6767aaea0]

	* config.h.in:
	fixed typo
	[bada3e70e]

	* configure.in:
	added missing AC_DEFINE(SVR4) for solaris
	[2aef79a8d]

	* sudo.man:
	documented the -v flag
	[d194e3be5]

	* SUPPORTED:
	updated
	[d430425c5]

	* check.c:
	proto-ized crypt()
	[4cb06ad6e]

	* config.h.in:
	added LIBSHADOW undef
	[3288ffb0c]

	* configure.in:
	nwo set OS to be lowercase
	[4e2dcf6da]

1994-05-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	now use SUDO_OSTYPE to set $OS
	[97610ce1a]

	* aclocal.m4:
	now use uname to determine os
	[2660e4eca]

	* visudo.c:
	added prototypes & moved sig handler around
	[3d1600cf9]

	* sudo.h:
	added prototyppes
	[c38d9bb31]

	* check.c, logging.c, sudo.c:
	added prototypes
	[ebae58f1e]

	* parse.c:
	added comment
	[aab695bfc]

	* config.h.in:
	nwo use _BSD_SIGNALS not _BSD_COMPAT
	[1ad59c55a]

	* aixcrypt.exp:
	Initial revision
	[ca172a787]

	* Makefile.in:
	added aixcrypt.exp
	[ef0a3ea3f]

	* parse.lex, parse.yacc:
	moved config.h to top of includes
	[e24868395]

1994-05-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c:
	now don't bitch if get EACCESS (treat like EPERM)
	[c1d9e44e5]

	* visudo.c:
	added -v flag and usage()
	[6e7d42f3e]

	* version.h:
	fixed a typo
	[51ae4df13]

	* sudo.c:
	cast Argv to a const for exec added -v flag
	[48f3cb673]

	* logging.c:
	mail_argv is now a const
	[dbe2a6eaf]

	* configure.in:
	only set RETSIGTYPE if it is not set already
	[30eac2b98]

	* aclocal.m4:
	now defines & STDC_HEADERS for Irix
	[07cc73c86]

	* Makefile.in:
	added version.h
	[c18eee72f]

	* insults.h, sudo.h:
	prevent multiple inclusion
	[76d8f8314]

	* version.h:
	Initial revision
	[5ad8ed74a]

	* parse.lex, parse.yacc:
	now includes config.h
	[d84455362]

	* aclocal.m4:
	now talks about sunos 4.x
	[85cb36bf0]

	* visudo.c:
	calls to Exit now pass an arg
	[c8dd0685a]

1994-05-24  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	signal handler now takes an int argument
	[cd34949b7]

	* CHANGES:
	updated
	[77bafb149]

	* sudo.c:
	ok, the getcwd() is now *really* done as the user
	[0d0f47007]

	* configure.in:
	changed AIX STATIC_FLAGS
	[e1b0835d1]

	* aclocal.m4:
	solaris now defines SVR4
	[bd6ad42ff]

	* sudo.h:
	added cwd and fixed stupid core dump that makes no sense. sigh.
	[e67d74fd5]

	* sudo.c:
	moved getcwd stuff into load_globals
	[3e94c6f25]

	* parse.c:
	took out externs that are in suod.h
	[3b297e037]

	* logging.c:
	moved cwd into load_globals
	[0745d6014]

	* find_path.c:
	moved cwd stuff
	[f12f25204]

	* Makefile.in:
	fixed make distclean & realclean
	[eba71ad92]

	* TODO:
	updated .,
	[155ee3a3c]

	* CHANGES:
	added solaris changes
	[ae8e3920f]

	* aclocal.m4:
	added solaris changes, need to rework
	[70bf2e06d]

	* configure.in:
	cleaned up for solaris
	[78d689a68]

	* logging.c:
	reinstall reapchild signal handler for non-bsd signals
	[f1dd6045c]

	* sudo.h:
	took out getdtablesize() emulation for HP-UX (no longer needed)
	[813b5043d]

	* sudo.c:
	support for HAVE_SYSCONF
	[92c371d0f]

	* visudo.c:
	added <fcntl.h> for solaris & reorg'd the includes + minor prettying
	up /
	[e5bfa3716]

	* config.h.in:
	added HAVE_SYSCONF
	[b31df9d64]

1994-05-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	now tells you what os you are running /.
	[5e9f8b3fa]

	* aclocal.m4:
	took out extra ','
	[b6f0ae579]

1994-05-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* config.h.in:
	added _BSD_COMPAT
	[f3cd67d4c]

	* aclocal.m4:
	fixed for irix5
	[368f8ff12]

	* CHANGES:
	updated
	[706d34d6e]

	* sudo.c:
	uid seinitialized to -2
	[eba166035]

1994-04-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	now removes LIBPATH for AIX
	[4624211f8]

1994-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* configure.in:
	now uses ufc if it finds it
	[d344d9926]

1994-03-12  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	no longer define yyval & yylval since yacc does it
	[9c8379f84]

	* parse.lex:
	now defines yylval as extenr
	[3420a8138]

	* configure.in:
	BROKEN_GETPASS is now an OPTION
	[b4c691030]

	* config.h.in:
	took out BROKEN_GETPASS
	[bf67223ed]

	* Makefile.in:
	took out big comment
	[a7554759f]

	* README:
	updated
	[963ff0128]

	* Makefile.in:
	took out README.beta
	[d068ff5c4]

	* SUPPORTED:
	Initial revision
	[a510313f5]

	* INSTALL:
	now reference SUPPORTED .,
	[125035689]

	* config.h.in:
	now check for convex OR __convex__
	[7b8a8ca5c]

	* aclocal.m4:
	now check for convex or __convex__
	[bccde2f1f]

	* Makefile.in:
	added dist target
	[c65bf9a27]

	* aclocal.m4:
	use __convex__
	[7545c3f56]

	* find_path.c:
	now use _S_* stat stuff to be ansi-like
	[e4488ba02]

	* INSTALL:
	updated for configure directions
	[34e610346]

	* Makefile.in:
	distclean now removes config.h and pathnames.h
	[ac5d3ccc9]

	* CHANGES:
	updated
	[00059fed6]

	* TODO:
	fixed typoe
	[20fb526ac]

	* visudo.c:
	updated version
	[af68170f3]

	* Makefile.in:
	updated version
	[c452eabc8]

	* config.h.in, pathnames.h.in:
	added copyright header
	[008cfb1be]

	* check.c, find_path.c, insults.h, logging.c, parse.c, parse.lex,
	parse.yacc, sudo.c, sudo.h:
	udpated version
	[6a83afd8e]

	* visudo.c:
	udpated to use configure + pathnames.h
	[6474d6e68]

	* aclocal.m4:
	updated
	[f2660677a]

	* Makefile.in, config.h.in, configure.in:
	updated
	[f654f0657]

	* sudo.h:
	now works with configure
	[e5bcdc915]

	* check.c, find_path.c, getpass.c, logging.c, parse.c, sudo.c:
	updated to work with configure + pathnames.h
	[1ed1db9cf]

	* Makefile.in:
	added LEXLIB
	[51e373397]

1994-03-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* COPYING:
	updated gnu general licence to versio 2
	[01d0c73ab]

	* config.h.in, pathnames.h.in:
	Initial revision
	[af9a2fcb3]

	* sudo.h:
	changed to work with configure
	[3ea5d9311]

1994-03-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* Makefile.in, aclocal.m4, configure.in:
	Initial revision
	[e37e623c2]

	* visudo.c:
	now uses defines used by configure
	[51b6a4954]

1994-03-01  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c:
	sudo won't bitch about EPERM now, for real
	[e17904708]

1994-02-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* logging.c:
	renamed exec_argv to eliminate a libc name clash with ksros
	[e28f02938]

	* CHANGES:
	corrected
	[4f004574c]

	* logging.c, sudo.c, sudo.h:
	execve -> execv
	[eea6d47b7]

	* TODO:
	upated
	[beaf4c0f3]

	* PORTING:
	added 2 mroe items
	[d206d1afb]

	* CHANGES:
	updated
	[562d12b66]

	* sudo.h:
	added UMASK and mode_t declaration
	[708d387ce]

	* sudo.c:
	added UMASK
	[f96b43c29]

	* logging.c:
	now opens log file with mode 077
	[75e0a9c4a]

	* check.c:
	saved current umask ans restores it
	[35bc172d3]

	* sudo.h:
	added MAXLOGFILELEN
	[33f8a9573]

	* logging.c:
	split long log lines. FOr syslog, split into multiple entries, for a
	log file, indent the extra for readability
	[17fa431e5]

1994-02-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	added changes
	[3563a655e]

	* sudo.h:
	MAXLOGLEN & MAXSYSLOGLEN are now different (as they should be)
	[aeaf49a05]

1994-02-25  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO:
	added input from Brett M Hogden <hogden@rge.com>
	[dbebfacdc]

1994-02-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	added rmenv() to remove stuff from environ. can now uses execvp() OR
	execve() becuase of this.
	[f767453fd]

	* logging.c:
	now uses execvp() OR execve()
	[d2bed77ff]

	* sudo.h:
	added USE_EXECVE
	[d0621cb55]

	* sudo.h:
	added environ
	[8f341c382]

	* find_path.c:
	now ignore EPERM
	[5bbf149cb]

	* sudo.h:
	moved some func decls out of sudo.h and into sudo.c as statics /.
	[a2f434a5b]

	* CHANGES:
	updated
	[df71654d9]

	* sudo.h:
	took out Envp
	[7e7f273f7]

1994-02-14  Todd C. Miller  <Todd.Miller@courtesan.com>

	* BUGS:
	Initial revision
	[ad0c60041]

1994-02-10  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	added SECURE_PATH
	[283f726be]

	* sudo.c, sudo.h:
	added SECURE_PATH
	[de6ad83ae]

	* sudo.h:
	added SECURE_PATH
	[80d7989b0]

	* INSTALL:
	added sample.sudoers note
	[f2f8b0fe9]

	* sudoers:
	Initial revision
	[98b29f37f]

1994-02-09  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c:
	fixed typo
	[e3763dbc9]

	* PORTING:
	took out SAVED_UID garbage
	[c06006ed3]

	* INSTALL:
	mentioned HAL
	[abf158a3e]

	* sudo.h:
	added HAL line
	[4b82432a5]

	* insults.h:
	added HAL insults
	[03d3b4729]

	* TODO:
	updated
	[3146d8b65]

	* logging.c:
	more verbose error if mailer not found
	[828bb5cec]

	* check.c:
	now do getpwent as root for soem shadow password systems (bsdi)
	[2062d2e45]

1994-02-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	took out SAVED_UID garbade
	[32880e3db]

	* sudo.c:
	took out SAVED_UID garbage since it don't work
	[e52637f9a]

1994-02-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* README:
	updated
	[6cebcce04]

	* insults.h:
	added a missing space :-)
	[4379df16e]

	* sudo.c, sudo.h:
	took out multimax cruft
	[4928e8b99]

	* INSTALL:
	minor update
	[4113d0697]

	* PORTING:
	finished
	[4b6e7e4a5]

	* sudo.c:
	fixed a typo + indentation
	[273de6003]

1994-02-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	took outumoved some defines to the config file ,. ,.
	[e44792a09]

	* PORTING:
	Initial revision
	[39e421221]

	* TODO:
	did #6
	[33361a227]

	* sudo.h:
	added HAS_SAVED_UID
	[894a7bd0f]

	* sudo.c:
	put back AIX cruft
	[4d7ae0eb2]

1994-02-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	aix changes
	[9195775b9]

1994-02-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* CHANGES:
	updated
	[7de8d09af]

	* check.c, logging.c, parse.c, sudo.c, sudo.h:
	now is only root when abs necesary
	[641911504]

	* check.c:
	added missing %s\n
	[188c9c743]

1994-01-31  Todd C. Miller  <Todd.Miller@courtesan.com>

	* install-sh:
	Initial revision
	[24ab11e96]

	* TODO:
	updated
	[6085563fc]

	* CHANGES:
	updated
	[b949042de]

	* sudo.c:
	now removed _RLD_* for alphas
	[b4638d455]

	* INSTALL:
	updated for new config scheme
	[d091a46f4]

	* find_path.c:
	more verbose eror messages
	[7a96a43a5]

1994-01-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* TODO:
	now have solaris
	[814b02fb2]

	* sudo.h:
	define __svr4__ for SOLARIS
	[827968466]

	* check.c:
	added svr4 junk for shadow pws for solaris 2.x
	[a58183855]

	* check.c, sudo.c:
	took out setuid(0) and setreuid(udi) garbage. Its not needed since
	we start out setuid with the correct perms.
	[9fe518466]

	* check.c, sudo.c, sudo.h:
	now use setreuid()
	[5b566c24c]

1994-01-26  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.man:
	revised AUTHORS secrtion & added ENV_EDITOR stuff to VARIABLES
	sectoin
	[40b281b90]

	* visudo.c:
	now uses ENV_EDITOR if you want to use the EDITOR envar
	[40013231b]

	* sudo.h:
	now uses ENV_EDITOR if you want to use the EDITOR envar >> .
	[706098107]

1993-12-07  Todd C. Miller  <Todd.Miller@courtesan.com>

	* INSTALL:
	rewrote most of this
	[4efc55f5d]

	* README:
	minor update + spell fix
	[ed2ad1b1c]

	* sudo.h:
	added all options that are in the Makefile
	[89db72019]

	* getpass.c:
	now use USE_TERMIO #define for sgi & hpux
	[e3344ec4c]

	* TODO:
	todo: posix sigs
	[253d2da1c]

1993-12-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c, find_path.c:
	always include strings.h
	[0535ec788]

	* visudo.c:
	added STATICEDITOR
	[5dfa832ea]

	* sudo.h:
	sgi has vi in /usr/bin too
	[b114ace5f]

	* sudo.man:
	added VISUAL
	[ab7a9d7f7]

1993-12-03  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	sue /usr/bin/vi on some systems
	[78a90c446]

	* sudo.c:
	fixed warning (include strings.h)
	[3424e2f97]

	* sudo.man:
	added John_Rouillard@dl5000.bc.edu's changes (new features)
	[606f03842]

	* CHANGES:
	changes from John_Rouillard@dl5000.bc.edu
	[7a05f1558]

	* visudo.c:
	added EDITOR envar
	[07f4067d5]

	* check.c, find_path.c, parse.c, sudo.c:
	added patches from John_Rouillard directory spec uses EDITOR
	[62ea70cb3]

1993-12-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* getpass.c:
	added flush for hpux
	[da4e410e9]

1993-11-30  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	no longer assume malloc returns a char *
	[70ba02c3c]

	* sudo.c:
	alpha change to remove LD_-like thing fixed SHLIB_PATH stuff -- now
	gets removed correctly
	[d4eee981f]

	* sudo.h:
	added STD_HEADERS macro
	[f3b1d00d6]

	* sudo.c:
	now uses STD_HEADERS macor for ansi
	[68154bdc5]

	* find_path.c:
	now uses STD_HEADERS macro
	[73c468246]

	* check.c:
	niceties for C compiler bitches -- no real change
	[5e14daa52]

1993-11-29  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	now doesn't fclose a file never opened.
	[286917fb5]

1993-11-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.man:
	added visudo line
	[064283569]

	* sudo.man:
	added error stuff added me in there...
	[448b927f6]

	* CHANGES:
	noted insults
	[529f842ee]

	* INSTALL:
	added blurb about reading stuff
	[83ce5a74d]

	* sudo.h:
	added insults
	[56892786c]

	* insults.h:
	corrected somments and removed newlines
	[c3feddde4]

	* check.c:
	now uses insults
	[e52f0a1c3]

	* insults.h:
	Initial revision
	[993d2e092]

	* INSTALL:
	added dec syslog note
	[cf4788078]

	* sample.sudoers:
	added real stuff in there
	[7ec19af90]

	* TODO:
	added a todo
	[2b19d60cf]

	* TODO:
	added one
	[d6e95525a]

1993-11-27  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sample.sudoers:
	Initial revision
	[9fc2328aa]

	* sudo.man:
	updated with changes
	[7e33d32a0]

	* sudo.man:
	Initial revision
	[e95e88318]

	* indent.pro:
	Initial revision
	[2e99de877]

	* CHANGES, COPYING, INSTALL, README, TODO:
	Initial revision
	[7e5f99455]

	* visudo.c:
	updated version number and took out jeff's old addr since it is no
	good
	[971d4b609]

	* check.c, find_path.c, logging.c, parse.c, parse.lex, parse.yacc,
	sudo.c, sudo.h:
	updated version number and took out jeff's email (since it is
	invalid)
	[594284b22]

1993-10-28  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	added fflush()
	[b736fa27f]

1993-10-23  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c:
	now return NULL instead pfof exiting for nopnn-fatal errors
	[9ad66eb1a]

1993-10-21  Todd C. Miller  <Todd.Miller@courtesan.com>

	* check.c:
	new banner
	[ea9cc34c7]

	* parse.lex:
	now sudo.h gets included first
	[3840f015d]

1993-10-18  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.lex:
	now can use flex
	[59d3ab1ec]

	* sudo.h:
	linux patch
	[8282217cc]

	* sudo.c:
	hpux 9 fix, removes SHLIB_PATH linux patch
	[5c4b258d2]

	* check.c:
	linux diff
	[c9af5ccf7]

1993-10-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c:
	stat now ignores EINVAL
	[ca882aafc]

1993-10-06  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c, sudo.c:
	now declare strdup as extern
	[11dfd7ef4]

1993-10-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* visudo.c:
	reformatted with indent + by hand
	[f7abfbf81]

	* check.c, find_path.c, getpass.c, logging.c, parse.c, sudo.c,
	sudo.h:
	used indent to "fix" coding style
	[e75a6d3b5]

	* find_path.c:
	now checks '.' or '.' or '' in PATH -- but does it LAST should maybe
	move the code that does this into the loop body. makes it messier
	tho. hmmm.
	[847ce91e0]

1993-09-08  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c:
	redid the fix for non-executable files in an easier to read way plus
	some minor aethetic changes
	[2ddeba57e]

	* find_path.c:
	fixed bug with non-executable tings of same name in path introduced
	by checkig errno after stat(2).
	[fde49b4c7]

1993-09-05  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	fixed off by one error
	[5ae9d330e]

	* find_path.c:
	now handles decending below '/' correctly
	[c3636ccc4]

	* sudo.c:
	now actually builds Envp instead of munging envp
	[f00b6795c]

1993-09-04  Todd C. Miller  <Todd.Miller@courtesan.com>

	* parse.yacc:
	now includes sys/param.h
	[1c2d27eea]

	* visudo.c:
	now includes sys/param.h
	[3151ffe1c]

	* sudo.h:
	fixed ifndef -> ifdef
	[4ccc94fc1]

	* qualify.c:
	make more like find_path.c
	[3d8cc2e42]

	* find_path.c:
	rewritten by millert
	[81d0c1f6d]

	* sudo.h:
	fixed MAXCOMMANDLENGTH now uses USE_CWD and NEED_STRDUP added info
	about new defines in the comment
	[f530705e0]

	* logging.c:
	now uses USE_CWD
	[d555cdb52]

	* sudo.h:
	added delc for clean_envp() and Envp
	[35ea44396]

	* sudo.c:
	now rips LD_* env vars out of envp and passed sanitized Envp to exec
	[d7391584e]

	* logging.c:
	now uses execve()
	[4d48690a2]

	* find_path.c:
	ENOTDIR is ok now too (in case part of the path is bogus)
	[51deb28db]

	* qualify.c:
	now works correctly (ttaltotal rewrite)
	[223b37b14]

	* parse.lex:
	now includes sys/param.h didn't match trailing / -- fix from
	rouilj@cs.umb.edu
	[696122957]

1993-06-11  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	moved around the #ifndef _AIX
	[3a96124e8]

	* check.c, logging.c, parse.c:
	Initial revision
	[958ee39a6]

1993-03-20  Todd C. Miller  <Todd.Miller@courtesan.com>

	* qualify.c:
	Initial revision
	[fd93ea8d4]

1993-03-13  Todd C. Miller  <Todd.Miller@courtesan.com>

	* find_path.c:
	now works if you do sudo bin/test
	[065775e4a]

	* find_path.c:
	works
	[ff04cc5e1]

1993-03-02  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.h:
	Initial revision
	[799707635]

	* visudo.c:
	Initial revision
	[9706aa636]

	* parse.lex, parse.yacc:
	Initial revision
	[a1fcf10b6]

1993-02-16  Todd C. Miller  <Todd.Miller@courtesan.com>

	* sudo.c:
	took out errno.h
	[b7d12de74]

	* sudo.c:
	now spews error if exec fails and exits with -1
	[852d93715]

	* sudo.c:
	Initial revision
	[eca93e1da]

	* find_path.c:
	now only execs files with (an) executable bit set.
	[96a16b626]

	* find_path.c:
	Initial revision
	[0a8420d1a]

1993-02-15  Todd C. Miller  <Todd.Miller@courtesan.com>

	* getpass.c:
	added nice comment
	[463350e1c]

	* getpass.c:
	now works on sgi's
	[31f6f67f0]

	* getpass.c:
	Initial revision
	[b2abb3f5c]

