Todd C. Miller
ad4dc22d5a
Automatically migrate lecture file path from name-based to uid-based.
...
GitHub issue #342 .
2023-12-22 09:39:24 -07:00
Todd C. Miller
a85494b5c4
Add ttydev to sudoers_user_context and use for timestamp file.
...
GitHub issue #329
2023-11-25 16:26:45 -07:00
Todd C. Miller
45e3c0dd17
timestamp_open: add some debugging
2023-11-02 09:10:49 -06:00
Todd C. Miller
e343e07543
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.
2023-09-25 10:13:28 -06:00
Todd C. Miller
7363ad7b32
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.
2023-09-11 10:27:35 -06:00
Todd C. Miller
38ddbb14f1
Parse pid and ppid from sudo front-end.
...
We can now use the stored ppid in ts_init_key().
2023-09-13 12:29:40 -06:00
Todd C. Miller
75209e2718
Rename check.h -> timestamp.h and add remaining timestamp.c prototypes.
2023-08-29 11:16:23 -06:00
ken
60e5842014
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
2023-08-23 08:37:09 -06:00
Todd C. Miller
091051125b
Move timestampowner sudoers callback to timestamp.c.
2023-08-22 17:04:08 -06:00
Todd C. Miller
2440174954
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.
2023-08-21 09:21:49 -06:00
Todd C. Miller
2d2529a15e
Add a sudoers_context struct that embeds the user and runas structs.
2023-08-20 16:27:08 -06:00
Todd C. Miller
d8b28dad97
Expand the user_* (and more) macros to user_ctx.foo.
2023-08-12 10:39:59 -06:00
Todd C. Miller
930ca00252
Pass explicit struct passwd * to create_admin_success_flag().
2023-08-12 10:39:49 -06:00
Todd C. Miller
bd8cccb5dd
Rename struct sudo_user -> struct sudo_user_context.
...
Also rename the sudo_user global to user_ctx.
2023-08-12 10:39:47 -06:00
Todd C. Miller
a38b714667
sudoers plugin: silence most -Wconversion warnings.
2023-07-07 15:07:04 -06:00
Rose
cbed9daa46
Fixed even more signedness and conversion issues
...
This should be the last of them.
2023-07-03 22:07:35 -04:00
Todd C. Miller
72489d7a83
Make timestamp_uid and timestamp_gid private to timestamp.c.
...
Add getter (for set_perms.c) and setter (for sudoers.c).
2023-05-04 13:08:23 -06:00
Todd C. Miller
3940020c94
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.
2022-10-04 09:33:44 -06:00
Todd C. Miller
88ac5e09b6
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().
2022-09-21 19:08:10 -06:00
Todd C. Miller
cbd52e705c
Fix potential TOCTOU when creating time stamp directory and file.
2022-09-21 19:08:09 -06:00
Todd C. Miller
f5ac1317c4
Make sudo pass -Wmissing-prototypes
2022-06-27 12:48:03 -06:00
Todd C. Miller
2911c31dd7
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.
2022-02-21 19:34:06 -07:00
Todd C. Miller
c13b21c199
Avoid TOCTOU in sudo_mkdir_parents() using openat(2) and mkdirat(2).
...
This also allows us to make path const as it should be.
2021-12-11 08:35:18 -07:00
Todd C. Miller
c2909e20ee
Sanity check struct timespec in timestamp file.
...
Coverity CID 220564
2021-04-07 11:10:17 -06:00
Todd C. Miller
394673cbf5
Check lseek(fd, 0, SEEK_CUR) for -1 return value.
...
Not actually possible in practice. Coverity CID 220568.
2021-04-07 10:59:12 -06:00
Todd C. Miller
a5504148a5
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
2021-02-16 13:20:02 -07:00
Todd C. Miller
776c57a81e
Move create_admin_success_flag() to timestamp.c.
2021-02-13 15:48:21 -07:00
Todd C. Miller
0754533d24
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.
2021-01-23 08:44:00 -07:00
Todd C. Miller
6e1986e915
Remove #ifdefs around code using pread(3) and pwrite(3).
2021-01-02 10:43:34 -07:00
Todd C. Miller
e0c2635fb3
Apply Google inclusive language guidelines.
...
Also replace backwards with backward.
2020-10-30 10:15:30 -06:00
Todd C. Miller
03ad96e445
Use the fallthrough attribute instead of /* FALLTHROUGH */ comments.
2020-08-01 13:10:50 -06:00
Todd C. Miller
446ae3f507
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.
2020-05-18 07:59:24 -06:00
Todd C. Miller
dd88460800
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.
2020-05-18 06:47:04 -06:00
Todd C. Miller
586b418ad8
Sanity check size when converting the first record to TS_LOCKEXCL
...
Coverity CID 206591
2020-01-05 09:37:09 -07:00
Todd C. Miller
486ee2b71f
debug_decl and debug_decl_vars now require a semicolon at the end.
2019-12-22 08:48:16 -07:00
Todd C. Miller
9d8f374397
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.
2019-06-25 09:45:10 -06:00
Todd C. Miller
1e1ef61902
Add SPDX-License-Identifier to files.
2019-04-29 07:21:51 -06:00
Todd C. Miller
985600e7f0
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
2019-01-20 07:49:48 -07:00
Todd C. Miller
6c3d20cb41
Convert PVS-Studio comment to ANSI C.
2018-10-26 08:39:09 -06:00
Todd C. Miller
64e5d34c57
Add comments in .c files so PVS-Studio will check them.
2018-10-21 08:46:05 -06:00
Todd C. Miller
6786d53d45
In timestamp_open() no need to free cookie on error, it is NULL.
...
Found by PVS-Studio.
2018-10-19 13:32:24 -06:00
Todd C. Miller
fe58062547
Cast uid/gid to unsigned int before printing.
2018-08-22 12:58:24 -06:00
Todd C. Miller
aaefdd7575
Include stddef.h for offsetof() definition.
2018-08-22 10:27:33 -06:00
Todd C. Miller
dcf168e702
fix compiler warnings on Solaris 11
2018-08-22 10:40:11 -06:00
Todd C. Miller
7a929ce135
Add debugging info so we can tell why a timestamp record doesn't match.
2018-08-15 09:19:50 -06:00
Todd C. Miller
07d9cec271
Remove extraneous break statement and fix some whitespace.
2018-01-30 11:12:38 -07:00
Todd C. Miller
b3601253e6
Fall back to ppid time stamps if timestamp_type == kernel and no
...
tty is present. This is consistent with timestamp_type == tty.
2018-01-23 11:18:18 -07:00
Todd C. Miller
52409b9c72
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.
2018-01-23 11:05:41 -07:00
Todd C. Miller
4c0c225062
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.
2018-01-22 12:18:48 -07:00
Todd C. Miller
a885b952fb
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.
2018-01-17 09:52:15 -07:00