aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2023-02-05seedrng: fix memory leak reported by clang-tidyNRK
`seed_dir` gets allocated via xstrdup but never gets freed - which clang-tidy flags as a memory leak. instead of free-ing the allocation, just don't allocate to begin with since there's no need for it. also bump the copyright year.
2023-01-30start-stop-daemon: avoid malloc inside sig-handlerNRK
same rational as 459783bb Bug: https://github.com/OpenRC/openrc/issues/589
2023-01-30openrc-run: avoid malloc inside sig-handlerNRK
same rational as 459783bb Bug: https://github.com/OpenRC/openrc/issues/589
2023-01-29value: missing includes from IWYUSam James
2023-01-29swclock: missing includes from IWYUSam James
2023-01-29supervise-daemon: missing includes from IWYUSam James
2023-01-29start-stop-daemon: missing includes from IWYUSam James
2023-01-29shell_var: missing includes from IWYUSam James
2023-01-29shared: missing includes from IWYUSam James
2023-01-29service: missing includes from IWYUSam James
2023-01-29seedrng: missing includes from IWYUSam James
2023-01-29rc-update: missing includes from IWYUSam James
2023-01-29rc-status: missing includes from IWYUSam James
2023-01-29rc-service: missing includes from IWYUSam James
2023-01-29rc-depend: missing includes from IWYUSam James
2023-01-29rc-abort: missing includes from IWYUSam James
2023-01-29openrc-shutdown: missing includes from IWYUSam James
2023-01-29openrc-run: missing includes from IWYUSam James
2023-01-29openrc: missing includes from IWYUSam James
2023-01-29openrc-init: missing includes from IWYUSam James
2023-01-29mountinfo: missing includes from IWYUSam James
2023-01-29mark_service: missing includes from IWYUSam James
2023-01-29librc: missing includes from IWYUSam James
2023-01-29libeinfo: missing includes from IWYUSam James
2023-01-29kill_all: missing includes from IWYUSam James
2023-01-29is_older_than: missing includes from IWYUSam James
2023-01-29is_newer_than: missing includes from IWYUSam James
2023-01-29fstabinfo: missing includes from IWYUSam James
2023-01-29einfo: missing includes from IWYUSam James
2023-01-29checkpath: missing includes from IWYUSam James
2023-01-28src: shared: schedules: add missing includes to headerSam James
Needed for clang-tidy prep work, as it requires headers to work standalone (which is useful anyway).
2023-01-28src: shared: plugin: add missing includes to headerSam James
Needed for clang-tidy prep work, as it requires headers to work standalone (which is useful anyway).
2023-01-28src: shared: misc: add missing includes to headerSam James
Needed for clang-tidy prep work, as it requires headers to work standalone (which is useful anyway).
2023-01-28src: shared: helpers: add missing includes to headerSam James
Needed for clang-tidy prep work, as it requires headers to work standalone (which is useful anyway).
2023-01-28openrc: rc-logger: add missing includes to headerSam James
Needed for clang-tidy prep work, as it requires headers to work standalone (which is useful anyway).
2023-01-28swclock: fix codeql warning and upgrade to futimensNRK
this was reported by codeql's scan as a TOCTOU bug. while that's true in theory, i don't believe it would've had any practical effect. a better justification for this change might be the fact that it upgrades from `utime` (which is depreciated by POSIX [0]) to `futimens`. [0]: https://www.man7.org/linux/man-pages/man3/utime.3p.html#FUTURE_DIRECTIONS
2023-01-28openrc: avoid unnecessary malloc inside sig-handlerNRK
malloc (called by xasprintf) is not async-signal-safe. beside, the string here is constant, so there's no need to malloc it all. eerrorx isn't async-signal-safe either (due to calling fprintf and exit) but consequence of them are _typically_ not as grave as calling malloc while it's internal state is inconsistent. Bug: https://github.com/OpenRC/openrc/issues/589
2023-01-25openrc-shutdown: mark handler as noreturn, use _unused macroSam James
2023-01-25openrc: mark handle_bad_signal as noreturnSam James
For -Wmissing-noreturn.
2023-01-25supervise-daemon: mark various functions as noreturnSam James
For -Wmissing-noreturn.
2023-01-25openrc-shutdown: mark stop_shutdown as noreturn, fix typo/indentationSam James
For -Wmissing-noreturn.
2023-01-25shared: move _noreturn definition into helpers.hSam James
2023-01-25libeinfo: fix -Wunused-but-set-variableSam James
2023-01-25librc: fix 'init' memory leakSam James
From scan-build w/ clang-16.0.0_pre20230107: ``` ../src/librc/librc.c:759:14: warning: Potential leak of memory pointed to by 'init' [unix.Malloc] return false; ^~~~~ ```
2023-01-25openrc-run: drop strlen dead storeSam James
2023-01-25openrc-shutdown: fix need_warning dead storeSam James
It's already initialised to false at the start and it's clear when reading what the flow is. While at it, fix some indentation and adjust whitespace to make more readable.
2023-01-25openrc-run: fix -Wunused-but-set-variableSam James
2023-01-25openrc: fix double-assignment to dirSam James
This one is a bit odd, it didn't get fixed in e273b4e08ee0ebc1a001d60e2a5b65a9553a8a8a, and goes all the way back to cb9da6a262b60255cd037f20b4cde3ab2c8a1e6a.
2023-01-25openrc, openrc-run: Fix -Wstrict-prototypesSam James
These become fine with C23 because () starts to mean (void) then, but for previous language versions, it's deprecated, and it causes an annoying warning when building with Clang by default. Plus, GCC lacks specific flags to trigger what C23 *does* ban, so a lot of people are going around building with -Wstrict-prototypes, so let's just fix this to be consistent with the rest of the codebase anyway to fend off false positive reports.
2023-01-20start-stop-daemon, supervise-daemon: use closefrom()/close_range()Matt Whitlock
On systems with a very large RLIMIT_NOFILE, calling close() in a loop from 3 to getdtablesize() effects an enormous number of system calls. There are better alternatives. Both BSD and Linux have the closefrom() system call that closes all file descriptors with indices not less than a specified minimum. Have start-stop-daemon call closefrom() on systems where it's implemented, falling back to the old loop elsewhere. Likewise, calling fcntl(i, F_SETFD, FD_CLOEXEC) in a loop from 3 to getdtablesize() raises a similar performance concern. Linux 5.11 and onward has a close_range() system call with a CLOSE_RANGE_CLOEXEC flag that sets the FD_CLOEXEC flag on all file descriptors in a specified range. Have supervise-daemon utilize this feature on systems where it's implemented, falling back to the old loop elsewhere.