aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2023-04-24rc: avoid calling free inside SIGCHLD handlerNRK
`free` is not async-signal-safe and calling it inside a signal handler can have bad effects, as reported in the musl ML: https://www.openwall.com/lists/musl/2023/01/23/1 the solution: - keep track of weather remove_pid() is being called from inside a signal handler or not. - if it's inside a signal handler then DO NOT call free - instead put that pointer into a "to be freed later" list. - if it's not inside a signal handler then take the "to be freed later" list and free anything in it. Bug: https://github.com/OpenRC/openrc/issues/589 Reported-by: Dominique MARTINET <dominique.martinet@atmark-techno.com>
2023-04-24fstabinfo: deal with EINTR in waitpid callNRK
2023-04-24fstabinfo: replace vfork with posix_spawnpNRK
problem: * vfork has been removed from POSIX [0]. * clang-tidy flags the `strerror` and `eerror` call inside the vfork-ed child as undefined behavior. solution: use posix_spawnp, which is serves similar purpose and is specified in posix. and as an added bonus, it's also easier to use and less lines of code. [0]: https://www.man7.org/linux/man-pages/man2/vfork.2.html#CONFORMING_TO
2023-04-23einfo.h: fix EINFO_RESTRICT macro usageOskari Pirhonen
Make function declarations use the EINFO_RESTRICT macro instead of __EINFO_RESTRICT which gets treated as the name of the argument.
2023-04-20shared: fix pointer type in UNCONSTSam James
Thanks to vapier for noticing.
2023-04-19Rename attribute macros to namespaced RC_*Sam James
This conflicts with linux-headers which uses __unused for some padding members on ppc64le at least. Closes: https://github.com/OpenRC/openrc/issues/622
2023-02-16seedrng: fix copyright yearNRK
this was mistakenly changed to 2023 instead of 2022-2023 in 63a5ee3d
2023-02-15rc-status: comment consistecyanon
2023-02-15rc-status: all flags respect '-f'anon
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.