Todd C. Miller [Mon, 3 May 2010 21:56:06 +0000 (17:56 -0400)]
No longer need strdup() or strndup() replacements.
Todd C. Miller [Mon, 3 May 2010 20:53:05 +0000 (16:53 -0400)]
Add print_error() function that uses the conversation function to
print a variable number of error strings and use it in log_error().
Todd C. Miller [Mon, 3 May 2010 14:41:26 +0000 (10:41 -0400)]
Do not need the opost flag to term_copy() now that we use pipes for
stdout/stderr when they are not a tty.
Todd C. Miller [Mon, 3 May 2010 14:12:54 +0000 (10:12 -0400)]
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.
Todd C. Miller [Fri, 30 Apr 2010 19:38:33 +0000 (15:38 -0400)]
Move audit sources into the sudoers plugin dir; the driver does not use them.
Todd C. Miller [Fri, 30 Apr 2010 19:13:47 +0000 (15:13 -0400)]
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.
Todd C. Miller [Fri, 30 Apr 2010 19:13:15 +0000 (15:13 -0400)]
Add missing -I$(top_srcdir) to CPPFLAGS so includes in the compat dir
can be found when building outside the source tree.
Todd C. Miller [Fri, 30 Apr 2010 17:57:27 +0000 (13:57 -0400)]
Clean up links in distclean
Todd C. Miller [Fri, 30 Apr 2010 17:53:33 +0000 (13:53 -0400)]
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.
Todd C. Miller [Fri, 30 Apr 2010 17:40:57 +0000 (13:40 -0400)]
fmt_string is used by the sudoers plugin too so do not include sudo.h
(which is not really needed here anyway)
Todd C. Miller [Fri, 30 Apr 2010 16:18:06 +0000 (12:18 -0400)]
Fix building with non-BSD versions of make such as GNU make.
Requires VPATH support, which should be in any non-neolithic make.
Todd C. Miller [Fri, 30 Apr 2010 16:01:15 +0000 (12:01 -0400)]
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.
Todd C. Miller [Fri, 30 Apr 2010 15:14:31 +0000 (11:14 -0400)]
Remove extraneous $srcdir and use more .c.lo and .c.o rules instead
of explicit rules in the dependency.
Todd C. Miller [Fri, 30 Apr 2010 14:50:56 +0000 (10:50 -0400)]
Fix mismerge; alias_remove_recursive() now returns int
Todd C. Miller [Thu, 29 Apr 2010 22:51:04 +0000 (18:51 -0400)]
Fix a crash when checking a sudoers file that has aliases that reference
themselves. Based on a diff from David Wood.
Todd C. Miller [Thu, 29 Apr 2010 20:52:50 +0000 (16:52 -0400)]
Print signal info after restoring the tty mode, not before.
Todd C. Miller [Thu, 29 Apr 2010 20:47:27 +0000 (16:47 -0400)]
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
Todd C. Miller [Wed, 28 Apr 2010 13:56:50 +0000 (09:56 -0400)]
Use 1/0 instead of TRUE/FALSE so we don't need sudoers.h
Todd C. Miller [Tue, 27 Apr 2010 16:06:41 +0000 (12:06 -0400)]
Simplify dependencies by using .c.o and .c.lo rules.
Todd C. Miller [Tue, 27 Apr 2010 15:56:51 +0000 (11:56 -0400)]
Substitute in @PROGS@ into src/Makefile to add sesh
Todd C. Miller [Tue, 27 Apr 2010 02:10:34 +0000 (22:10 -0400)]
Add back calls to log_denial() if sudoers does not allow the command.
Todd C. Miller [Tue, 27 Apr 2010 01:53:59 +0000 (21:53 -0400)]
Pass in correct pwflag for list and validate.
Todd C. Miller [Tue, 27 Apr 2010 01:38:43 +0000 (21:38 -0400)]
Add missing check for NULL in validate_env_vars
Todd C. Miller [Tue, 27 Apr 2010 01:30:41 +0000 (21:30 -0400)]
Add sudo_noexec.la to "all" target, otherwise it only gets built
at install time.
Todd C. Miller [Tue, 27 Apr 2010 01:28:58 +0000 (21:28 -0400)]
Only set sudo_user.env_vars if the env_add list is empty.
Todd C. Miller [Tue, 27 Apr 2010 00:41:28 +0000 (20:41 -0400)]
Set sudo_user.env_vars so that environment variables specified on
the command line get logged correctly.
Todd C. Miller [Mon, 26 Apr 2010 21:14:11 +0000 (17:14 -0400)]
Re-enable environment files and setting environment variables on the
command line.
Todd C. Miller [Sat, 24 Apr 2010 23:22:52 +0000 (19:22 -0400)]
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.
Todd C. Miller [Sat, 24 Apr 2010 23:05:11 +0000 (19:05 -0400)]
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.
Todd C. Miller [Sat, 24 Apr 2010 03:15:31 +0000 (23:15 -0400)]
Add back "dist" target, this time using a MANIFEST file
Todd C. Miller [Sat, 24 Apr 2010 02:57:03 +0000 (22:57 -0400)]
Remove Makefile in distclean target
Todd C. Miller [Sat, 24 Apr 2010 02:55:34 +0000 (22:55 -0400)]
Update clean and cleandir targets
Todd C. Miller [Fri, 23 Apr 2010 10:02:39 +0000 (06:02 -0400)]
Move fileops.c defines and prototypes to filesops.h
Todd C. Miller [Fri, 23 Apr 2010 09:56:24 +0000 (05:56 -0400)]
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.
Todd C. Miller [Thu, 22 Apr 2010 22:09:53 +0000 (18:09 -0400)]
Convert to ANSI C function declarations
Todd C. Miller [Thu, 22 Apr 2010 21:40:01 +0000 (17:40 -0400)]
Remove extraneous bits and classify by source file.
Todd C. Miller [Thu, 22 Apr 2010 14:37:20 +0000 (10:37 -0400)]
Add timercmp macro for systems without it
Todd C. Miller [Thu, 22 Apr 2010 14:33:16 +0000 (10:33 -0400)]
get_boottime() now fills in a timeval struct
Todd C. Miller [Thu, 22 Apr 2010 14:16:18 +0000 (10:16 -0400)]
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.
Todd C. Miller [Thu, 22 Apr 2010 13:52:26 +0000 (09:52 -0400)]
Add timespec2timeval and use it when getting ctime/mtime
Todd C. Miller [Tue, 20 Apr 2010 21:00:31 +0000 (17:00 -0400)]
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
Todd C. Miller [Tue, 20 Apr 2010 20:57:07 +0000 (16:57 -0400)]
fix ctim_get and mtim_get macros
Todd C. Miller [Tue, 20 Apr 2010 20:44:02 +0000 (16:44 -0400)]
Use timeval directly instead of converting to timespec when dealing
with file times and time of day.
Todd C. Miller [Tue, 20 Apr 2010 20:37:41 +0000 (16:37 -0400)]
Don't like sudoreplay with libsudoers.la due to a yacc symbol conflict.
Todd C. Miller [Sun, 18 Apr 2010 16:42:52 +0000 (12:42 -0400)]
Darwin >= 9.x has real setreuid(2)
Todd C. Miller [Sat, 17 Apr 2010 17:28:36 +0000 (13:28 -0400)]
Ansify env.c
Todd C. Miller [Sat, 17 Apr 2010 17:26:03 +0000 (13:26 -0400)]
Remove remaining references to the environ pointer.
Todd C. Miller [Fri, 16 Apr 2010 11:56:16 +0000 (07:56 -0400)]
Don't change the environ directly in the sudoers plugin
Todd C. Miller [Thu, 15 Apr 2010 10:29:31 +0000 (06:29 -0400)]
Fix typo
Todd C. Miller [Thu, 15 Apr 2010 10:14:41 +0000 (06:14 -0400)]
Fix use after free in error message when a duplicate alias exists.
Todd C. Miller [Wed, 14 Apr 2010 12:41:53 +0000 (08:41 -0400)]
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.
Todd C. Miller [Wed, 14 Apr 2010 10:38:32 +0000 (06:38 -0400)]
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.
Todd C. Miller [Wed, 14 Apr 2010 10:24:42 +0000 (06:24 -0400)]
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.
Todd C. Miller [Wed, 14 Apr 2010 09:51:11 +0000 (05:51 -0400)]
Main sudo no longer print "unable to execute" on exec failure so do it here.
Todd C. Miller [Tue, 13 Apr 2010 23:40:32 +0000 (19:40 -0400)]
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.
Todd C. Miller [Tue, 13 Apr 2010 13:36:43 +0000 (09:36 -0400)]
Handle plugin's open function returning -2 (usage error).
Todd C. Miller [Tue, 13 Apr 2010 11:39:06 +0000 (07:39 -0400)]
If execve() fails, leave it to the plugin to print an error string.
Todd C. Miller [Tue, 13 Apr 2010 10:31:55 +0000 (06:31 -0400)]
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().
Todd C. Miller [Tue, 13 Apr 2010 09:53:03 +0000 (05:53 -0400)]
Don't override rval with results of check_user() unless it failed.
Todd C. Miller [Mon, 12 Apr 2010 15:29:40 +0000 (11:29 -0400)]
Fix typo
Todd C. Miller [Mon, 12 Apr 2010 11:56:32 +0000 (07:56 -0400)]
NULL-terminate env_add
Todd C. Miller [Sun, 11 Apr 2010 21:13:11 +0000 (17:13 -0400)]
Call the I/O log open function before the I/O version function.
Todd C. Miller [Sun, 11 Apr 2010 21:12:12 +0000 (17:12 -0400)]
Remove io_conv and just use sudo_conv
Todd C. Miller [Sun, 11 Apr 2010 20:38:42 +0000 (16:38 -0400)]
Fix set/restore perms for systems w/o setresuid
Todd C. Miller [Sat, 10 Apr 2010 14:34:37 +0000 (10:34 -0400)]
Primitive set/restore permissions. Will be replaced by a push/pop
model.
Todd C. Miller [Sat, 10 Apr 2010 14:31:47 +0000 (10:31 -0400)]
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.
Todd C. Miller [Fri, 9 Apr 2010 10:18:43 +0000 (06:18 -0400)]
Merge
fb4d571495fa from the 1.7 branch to trunk.
Todd C. Miller [Fri, 9 Apr 2010 10:10:07 +0000 (06:10 -0400)]
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.
--HG--
branch : 1.7
Todd C. Miller [Fri, 9 Apr 2010 00:17:26 +0000 (20:17 -0400)]
Don't set SA_RESTART when registering SIGALRM handler.
Do set SA_RESTART when registering SIGWINCH handler.
Todd C. Miller [Fri, 9 Apr 2010 00:08:30 +0000 (20:08 -0400)]
Add dev targets for *.man.in and *.cat that don't specfify the $(srcdir)
prefix.
Todd C. Miller [Thu, 8 Apr 2010 13:40:27 +0000 (09:40 -0400)]
If log_input or log_output returns false, terminate the command.
Todd C. Miller [Thu, 8 Apr 2010 11:40:04 +0000 (07:40 -0400)]
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.
Todd C. Miller [Thu, 8 Apr 2010 10:12:47 +0000 (06:12 -0400)]
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.
Todd C. Miller [Wed, 7 Apr 2010 14:09:31 +0000 (10:09 -0400)]
Add a note about the security implications of the fast_glob option.
Todd C. Miller [Wed, 7 Apr 2010 13:34:41 +0000 (09:34 -0400)]
Add a note about the security implications of the fast_glob option.
--HG--
branch : 1.7
Todd C. Miller [Wed, 7 Apr 2010 10:39:35 +0000 (06:39 -0400)]
Remove duplicate includes
--HG--
branch : 1.7
Todd C. Miller [Tue, 6 Apr 2010 08:53:42 +0000 (04:53 -0400)]
Fix up some AC_DEFINE descriptions and regen config.h.in
Todd C. Miller [Mon, 5 Apr 2010 23:47:49 +0000 (19:47 -0400)]
No longer check for strdup or strndup for LIBOBJ replacement.
Todd C. Miller [Mon, 5 Apr 2010 20:27:30 +0000 (16:27 -0400)]
Avoid installing signal handlers that are io-logger specific. Fixes
job control when no io logger is enabled.
Todd C. Miller [Mon, 5 Apr 2010 16:24:12 +0000 (12:24 -0400)]
Only regen man pages from pod when configured with --with-devel
Todd C. Miller [Mon, 5 Apr 2010 00:05:02 +0000 (20:05 -0400)]
Top-level Makefile.in. Nothing is currently substituted but this
is needed for separate build dirs.
Todd C. Miller [Sun, 4 Apr 2010 18:01:21 +0000 (14:01 -0400)]
Fix out-of-tree builds
Todd C. Miller [Sun, 4 Apr 2010 16:47:57 +0000 (12:47 -0400)]
Merge
Todd C. Miller [Sun, 4 Apr 2010 16:31:57 +0000 (12:31 -0400)]
We always install sudoreplay in 1.8
Todd C. Miller [Sun, 4 Apr 2010 12:40:23 +0000 (08:40 -0400)]
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.
Todd C. Miller [Sat, 3 Apr 2010 13:44:32 +0000 (09:44 -0400)]
SIGPOLL is sometimes the same as SIGIO (like on HP-UX)
Todd C. Miller [Fri, 2 Apr 2010 18:46:00 +0000 (14:46 -0400)]
No need to provide strdup() or strndup(), sudo uses estrdup() and estrndup()
Todd C. Miller [Fri, 2 Apr 2010 15:18:57 +0000 (11:18 -0400)]
Add license to mksiglist.c and note that the bits from pdksh are public domain
Todd C. Miller [Fri, 2 Apr 2010 13:49:21 +0000 (09:49 -0400)]
Fix LIBOBJDIR vs. srcdir wrt the siglist bits
Todd C. Miller [Fri, 2 Apr 2010 11:49:29 +0000 (07:49 -0400)]
Add sudoreplay testsudoers and visudo to clean target
Todd C. Miller [Fri, 2 Apr 2010 11:47:19 +0000 (07:47 -0400)]
Create our own sys_siglist for systems without it for use by strsignal()
Todd C. Miller [Fri, 2 Apr 2010 11:15:02 +0000 (07:15 -0400)]
Remove duplicate $(LIBOBJDIR)
Todd C. Miller [Thu, 1 Apr 2010 10:35:19 +0000 (06:35 -0400)]
Main sudo should not block signals; the plugin should do this in
check_policy.
Todd C. Miller [Thu, 1 Apr 2010 00:30:34 +0000 (20:30 -0400)]
Fix a sizeof(ptr) vs. sizeof(*ptr)
Todd C. Miller [Wed, 31 Mar 2010 16:43:26 +0000 (12:43 -0400)]
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.
Todd C. Miller [Wed, 31 Mar 2010 14:36:39 +0000 (10:36 -0400)]
progname should be const
Todd C. Miller [Wed, 31 Mar 2010 09:44:17 +0000 (05:44 -0400)]
Move --tag=disable-static to when we link sudoers.la, not when
we install.
Todd C. Miller [Wed, 31 Mar 2010 09:42:58 +0000 (05:42 -0400)]
Load the sudoers I/O plugin by default too now that it is hooked up.
Todd C. Miller [Tue, 30 Mar 2010 16:06:27 +0000 (12:06 -0400)]
It looks like AIX doesn't need to push STREAMS modules for ptys.
Todd C. Miller [Sun, 28 Mar 2010 12:41:06 +0000 (08:41 -0400)]
Delay calling the I/O plugin open function until the policy plugin
returns success.