Todd C. Miller [Wed, 9 Jul 2014 02:19:09 +0000 (20:19 -0600)]
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.
Todd C. Miller [Tue, 8 Jul 2014 15:52:21 +0000 (09:52 -0600)]
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.
Todd C. Miller [Tue, 1 Jul 2014 23:14:50 +0000 (17:14 -0600)]
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.
Todd C. Miller [Thu, 26 Jun 2014 21:51:15 +0000 (15:51 -0600)]
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.
Todd C. Miller [Tue, 17 Jun 2014 14:51:41 +0000 (08:51 -0600)]
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.
Todd C. Miller [Wed, 28 May 2014 15:50:14 +0000 (09:50 -0600)]
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.
Todd C. Miller [Tue, 27 May 2014 16:51:31 +0000 (10:51 -0600)]
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).
Todd C. Miller [Mon, 12 May 2014 17:45:17 +0000 (11:45 -0600)]
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.
Todd C. Miller [Fri, 9 May 2014 15:29:42 +0000 (09:29 -0600)]
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
Todd C. Miller [Fri, 2 May 2014 20:57:36 +0000 (14:57 -0600)]
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.
Todd C. Miller [Fri, 2 May 2014 13:14:06 +0000 (07:14 -0600)]
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.
Todd C. Miller [Tue, 15 Apr 2014 13:16:57 +0000 (07:16 -0600)]
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
Todd C. Miller [Wed, 9 Apr 2014 22:31:13 +0000 (16:31 -0600)]
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.
Todd C. Miller [Fri, 4 Apr 2014 21:30:15 +0000 (15:30 -0600)]
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.