Todd C. Miller
5f2a0a70e5
Fix printf format string mismatch now that 'i' is size_t.
2023-08-07 11:31:04 -06:00
Todd C. Miller
77f94f291a
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.
2023-08-07 08:43:13 -06:00
Todd C. Miller
7cb1f7f3a9
Cast TIOCSWINSZ to int to avoid overflow warning on 64-bit AIX.
2023-07-31 09:58:13 -06:00
Todd C. Miller
432ac12128
Pass TEST_VERBOSE to all test programs.
2023-07-20 10:13:40 -06:00
Todd C. Miller
4b5480cf76
Quiet a warning false positive with older versions of gcc.
2023-07-17 11:23:04 -06:00
Todd C. Miller
625653de08
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).
2023-07-14 13:12:51 -06:00
Todd C. Miller
a432aed4f0
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.
2023-07-10 15:52:16 -06:00
Todd C. Miller
db6baf2caf
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.
2023-07-10 14:30:38 -06:00
Todd C. Miller
2d12a41940
Fix sudo_debug_exit_uint_v1 declaration for fuzzers.
2023-07-10 11:27:28 -06:00
Todd C. Miller
eff4e1c0c5
Add missing sudo_debug_exit_uint_v1 stub for fuzzers.
2023-07-10 11:23:06 -06:00
Todd C. Miller
4f097eebd3
libsudo_util: make more bit flags unsigned.
2023-07-10 11:06:04 -06:00
Rose
5d758264ab
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.
2023-07-07 20:23:20 -04:00
Todd C. Miller
5768d374cc
libsudo_util: silence most -Wconversion warnings.
2023-07-07 15:07:04 -06:00
Todd C. Miller
bced0a7786
Make the remaining instances of digest_type unsigned.
2023-07-06 08:01:15 -06:00
Todd C. Miller
2d1b3c369f
Change sudo_strtomode() to return mode_t.
2023-07-05 09:54:22 -06:00
Todd C. Miller
1f0f6b7c78
Fix some indentation.
2023-07-04 18:03:47 -06:00
Todd C. Miller
bfb6132d9c
Add configure tests for __builtin_clz/__builtin_clzl
2023-07-04 12:39:31 -06:00
Todd C. Miller
0f69939d71
Add fallback for compilers without __builtin_clz/__builtin_clzl
2023-07-04 12:29:52 -06:00
Todd C. Miller
3a7ca0a834
sudo_pow2_roundup: fix 64-bit version when shifting 31 or more places
...
Shift 1UL instead of 1 to avoid overflowing an int.
2023-07-04 08:21:21 -06:00
Rose
8c3e4a33cd
Optimize sudo_pow2_roundup_v1
...
No need to call sudo_pow2_roundup_v2.
2023-07-03 22:32:02 -04:00
Todd C. Miller
fa69ee5e1b
Merge pull request #285 from AtariDreams/bug
...
Remove comment about algorithm being from bit-twiddling hacks
2023-07-03 20:26:20 -06:00
Rose
76d7aefb33
Remove comment about algorithm being from bit-twiddling hacks
...
Said comment no longer applies.
2023-07-03 22:24:55 -04:00
Rose
732110428e
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.
2023-07-03 22:20:05 -04:00
Todd C. Miller
f5eb1e0550
sudo_lbuf_expand: limit allocation to UINT_MAX
2023-07-03 19:46:37 -06:00
Todd C. Miller
d3dc70ab62
sudo_parseln: use sudo_pow2_roundup() instead of hand-rolling it.
2023-07-03 17:17:47 -06:00
Todd C. Miller
56a431f7ea
Make sudo_pow2_roundup() operate on size_t.
2023-07-03 16:51:05 -06:00
Todd C. Miller
b926df1df2
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.
2023-07-01 16:14:50 -06:00
Rose
45fdfa18f1
Mark functions not returning as sudo_noreturn
...
We also put NOTREACHED where it applies.
2023-07-01 17:40:16 -04:00
Rose
22079c3072
Avoid compiler casting warnings Part 2
...
This saves instructions that are related to casting as well as compiler warnings.
2023-06-29 13:10:27 -04:00
Todd C. Miller
1ba61cd13a
No need to round up to page size with sudo_mmap_alloc().
2023-06-29 10:17:39 -06:00
Rose
e54ba33ea0
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.
2023-06-28 17:25:26 -04:00
Rose
7fd680c983
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.
2023-06-15 15:25:17 -04:00
Todd C. Miller
8fbdd414ce
Avoid use of variable length arrays and add ctype(3) casts.
2023-06-10 10:48:53 -06:00
Brilliant Hanabi
932339ed9f
Add %n$s support for sudo_lbuf_append_v1
2023-06-09 23:20:39 +08:00
Todd C. Miller
95cd409079
Make suspend_parent.c out of lib/util and into src.
...
Nothing else uses it now.
2023-06-04 19:08:52 -06:00
Todd C. Miller
cda03ed13f
Back out last change, len must be int, not size_t, for %.*s.
2023-05-03 13:36:07 -06:00
Rose
459a49b1fe
Prefer size_t over int, as casting can take extra instructions
2023-05-03 15:18:05 -04:00
Todd C. Miller
d4c6ef1222
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.
2023-05-02 10:37:39 -06:00
Todd C. Miller
4363d03ef7
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.
2023-05-02 10:37:38 -06:00
Todd C. Miller
80b85bdd50
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.
2023-04-17 07:27:05 -06:00
Todd C. Miller
cc22cca34f
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.
2023-04-16 15:45:19 -06:00
Todd C. Miller
5650b436e6
Check whether stderr is a tty before trying TIOCGWINSZ.
2023-04-16 15:31:14 -06:00
Todd C. Miller
3e734fa51b
Correct a comment.
2023-03-23 08:20:48 -06:00
Todd C. Miller
f5d0b7abf7
Remove portable getcwd.c, nothing uses it anymore.
...
Any operating system supported by sudo already includes getcwd(3).
2023-03-16 15:01:41 -06:00
Todd C. Miller
708cdc61ba
nanosleep: clear remainder on successful completion
...
Also switch to doing everything in terms of struct timespec except
for the actual select(2) call.
2023-03-15 13:50:33 -06:00
Todd C. Miller
cb7b1dd89c
Pass closure to callback, not the callback pointer itself.
2023-03-10 11:19:37 -07:00
bin-ly
ec255dca1e
fix command error for lib/util/Makefile.in
2023-03-09 10:10:45 +08:00
Todd C. Miller
dea110a848
Add tests for SHA2 digest support.
...
This uses the NIST byte-oriented short message test vectors.
2023-03-07 12:45:13 -07:00
Todd C. Miller
0be5a51918
Add missing include of errno.h.
2023-02-23 09:14:28 -07:00
Todd C. Miller
3281d0eec4
sudo_lbuf_expand: check for overflow when rounding to the nearest power of 2.
...
Problem deteced by oss-fuzz using the fuzz_sudoers fuzzer.
2023-02-23 08:19:18 -07:00