Todd C. Miller
17514b55ea
Add support for multiple '*' in env_keep, env_check and env_delete
...
entries.
2017-05-12 10:02:17 -06:00
Todd C. Miller
b3af85ddc8
Add restricted_env_file which is like env_file but subject to the
...
same restrictions as the user's own environment.
2017-03-22 13:39:25 -06:00
Todd C. Miller
deb4c3b19c
In sudo_unsetenv_nodebug(), decrement envp.env_len after removing
...
the variable. From Paul Zirnik of SUSE.
2017-01-16 11:12:56 -07:00
Todd C. Miller
dbd5252798
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.
2016-10-26 11:25:59 -06:00
Todd C. Miller
4c8988d483
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.
2016-10-26 11:22:30 -06:00
Todd C. Miller
fc1b4155d7
Replace bare ";" in the body of for() loops with "continue;" for
...
improved readability.
2016-10-26 10:42:28 -06:00
Todd C. Miller
3f022419ae
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.
2016-09-08 16:38:08 -06:00
Todd C. Miller
881814c9f9
Don't try to support line continuation in /etc/environment.
2016-09-01 14:35:40 -06:00
Todd C. Miller
17ad75d50b
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.
2016-09-01 09:19:20 -06:00
Todd C. Miller
a7fa036d42
Avoid a false positive. Coverity CID 104056.
2016-05-05 15:54:06 -06:00
Todd C. Miller
21d6fc3d8f
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.
2016-01-28 14:53:48 -07:00
Todd C. Miller
290dafda3b
Add BASHOPTS to initial_badenv_table[]; from Stephane Chazelas
2015-12-10 17:14:56 -07:00
Todd C. Miller
9c0354730a
When preserving variables from the invoking user's environment, if
...
there are duplicates only keep the first instance.
2015-11-20 09:55:18 -07:00
Todd C. Miller
588460405f
For env_reset, SHELL should be set based on the target user, not
...
the invoking user unless preserved via env_keep.
2015-10-06 10:25:43 -06:00
Todd C. Miller
29a3fcd06c
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.
2015-09-25 11:15:22 -06:00
Todd C. Miller
d4211081c0
Add some debugging printfs when malloc fails and we don't have an
...
explicit call to sudo_warnx().
2015-07-14 15:28:01 -06:00
Todd C. Miller
0b241088b3
There's no need to conditionalize the #include <unistd.h>, we require
...
a POSIX system.
2015-07-02 09:08:28 -06:00
Todd C. Miller
887a76489a
malloc() sets errno to ENOMEM on failure so we don't need to set
...
it explicitly.
2015-06-20 19:26:43 -06:00
Todd C. Miller
4a07b472f0
Only include stddef.h where it is needed.
2015-06-20 05:34:35 -06:00
Todd C. Miller
c36415417f
Add function name to "unable to allocate memory" warnings.
2015-06-19 14:51:17 -06:00
Todd C. Miller
dc883f2454
We require ANSI C so stop using the obsolete STDC_HEADERS.
2015-06-19 14:29:27 -06:00
Todd C. Miller
d004b02fc6
Use non-exiting allocatings in the sudoers plugin.
2015-06-17 06:49:59 -06:00
Todd C. Miller
7a1cf7f539
Use a stack buffer for the validate_env_vars() error message.
2015-05-28 10:28:38 -06:00
Todd C. Miller
c75eb5bf0d
Use reallocarray where possible.
2015-05-14 10:21:58 -06:00
Todd C. Miller
caf5d45e0f
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.
2015-05-07 10:33:23 -06:00
Todd C. Miller
be4872f691
For sudoedit, run the editor with the user's original environment
...
as per the documentation (and as in sudo 1.7.x). Bug #688
2015-03-16 20:19:24 -06:00
Todd C. Miller
c3c28773f5
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.
2015-02-06 11:01:05 -07:00
Todd C. Miller
a9bf105eda
Use stdint.h to get SIZE_MAX as inttypes.h on some pre-C99 HP-UX
...
systems doesn't include stdint.h itself.
2015-02-03 10:00:30 -07:00
Todd C. Miller
59ab26dbcc
Go back to a 2 args debug_decl and just use the "default" instance,
...
now renamed "active".
2015-02-01 08:24:49 -07:00
Todd C. Miller
e9914a91b1
The sudoers plugin now defines its own list of debugging subsystem names
...
and defines.
2014-10-22 13:30:52 -06:00
Todd C. Miller
866cfc4fc3
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.
2014-10-22 13:23:05 -06:00
Todd C. Miller
7a901d4c07
Apple uses a different variant of the BASH_FUNC prefix for bash
...
functions.
2014-10-10 13:55:36 -06:00
Todd C. Miller
1890f0fcd6
Fix debugging printout output for env_should_keep()
2014-10-07 10:11:08 -06:00
Todd C. Miller
c823eb3ef9
Add BASH_FUNC_* to environment blacklist for newer-style bash functions.
2014-09-27 19:52:45 -06:00
Todd C. Miller
c49ca1d315
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.
2014-08-11 10:37:08 -06:00
Todd C. Miller
df0fd41530
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.
2014-08-06 16:45:57 -06:00
Todd C. Miller
36a5767e3e
efree -> sudo_efree for consistency
2014-07-10 15:35:04 -06:00
Todd C. Miller
2d61d38c23
Add sudo_ prefix to alloc.c functions and rename alloc.h -> sudo_alloc.h
2014-06-27 10:48:31 -06:00
Todd C. Miller
aecef4aa1d
Rename warning/fatal -> sudo_warn/sudo_fatal to avoid namespace
...
pollution in libsudo_util.so.
2014-06-27 09:30:52 -06:00
Todd C. Miller
b0f1fa7d05
Rename log_warning flags and only send mail if SLOG_SEND_MAIL is
...
set instead of mailing by default like we used to.
2014-05-02 20:54:01 -06:00
Todd C. Miller
954a3e77b1
Add log_warningx
2014-05-02 16:40:30 -06:00
Todd C. Miller
0a9a8d9562
Move SIZE_MAX compat define into missing.h where it belongs.
2014-05-01 08:38:43 -06:00
Todd C. Miller
5086194c67
Eliminate calls to fatal()/fatalx()/log_fatal() in env.c and just
...
pass back a return value.
2014-04-30 16:57:12 -06:00
Todd C. Miller
134b2a4228
Rename emalloc2() -> emallocarray() and erealloc3() -> ereallocarray().
2014-04-22 16:02:28 -06:00
Todd C. Miller
6a295400b7
Make "internal error, %s overflow" arguments consistent, using
...
__func__ where possible (when debugging is allowed).
2014-04-01 16:42:13 -06:00
Todd C. Miller
1017ad4e2c
Audit path too long errror. Add comments about non-audit events
...
and placeholders for future audit hooks.
2014-03-25 16:46:00 -06:00
Todd C. Miller
96eb2c4f8f
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().
2013-11-18 08:59:57 -07:00
Todd C. Miller
f85106ea67
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.
2013-10-22 09:08:09 -06:00
Todd C. Miller
7a76844d98
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.
2013-08-17 06:34:09 -06:00
Todd C. Miller
85fc5792d4
Change some fatalx(NULL) that should be fatal(NULL).
2013-08-15 13:06:49 -06:00