aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-10-08selinux build fixWilliam Hubbs
2021-10-07checkpath: fix allocation size of path bufferSam James
strlen's return value isn't enough to be used directly for (x)malloc; it doesn't include the null byte at the end of the string. X-Gentoo-Bug: 816900 X-Gentoo-Bug-URL: https://bugs.gentoo.org/816900 Fixes: #459 Fixes: #462
2021-10-04fix build for selinuxWilliam Hubbs
2021-10-02build: fix pam and pam_misc dependenciesWilliam Hubbs
Pam generates pkgconfig files now, so meson can use them to find the pam dependencies.
2021-09-21move rc_bindir and rc_sbindir definitions to the top levelWilliam Hubbs
2021-09-18link runscript with auditWilliam Hubbs
2021-09-18link openrc-run with audit and libpam_miscWilliam Hubbs
2021-09-09Fix undeclared UT_LINESIZEJakub Jirutka
Fix the following error: broadcast.c:41:21: error: '__UT_LINESIZE' undeclared (first use in this function); did you mean 'UT_LINESIZE'? #define UT_LINESIZE __UT_LINESIZE ^~~~~~~~~~ Constant UT_LINESIZE is defined in <utmp.h> provided by musl.
2021-09-09fix build under musl 1.2 on 32 bit systemsAriadne Conill
Since musl 1.2 time_t is a 64 bit value, even on 32 bit systems. A hotfix for printing the value is simply using PRIu64 from inttypes.h in the format string. This fixes #446.
2021-09-08meson: typo fixWilliam Hubbs
2021-09-06build: change root_prefix to rootprefixWilliam Hubbs
2021-09-04add meson build filesWilliam Hubbs
Closes #116. Closes #171. Closes #172. Closes #175.
2021-08-17supervise-daemon: implement SSD_IONICELEVELMatt Whitlock
supervise-daemon was apparently overlooked when support for the SSD_IONICELEVEL environment variable was added. This commit brings supervise-daemon up to parity with start-stop-daemon with respect to this environment variable.
2021-08-13move supervise-daemon out of experimental statuskyoreln
supervise-daemon is no longer experimental so remove the statements to that affect. This fixes #434.
2021-08-13Revert "openrc-init: ignore an empty string in argv[1]"William Hubbs
This reverts commit dec9ef200b0d7e96993e2725792a9e7abe9c5f1f. This check is no longer needed since rc_runlevel_exists() is fixed. X-Gentoo-Bug: 803536 X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536 Closes: https://github.com/OpenRC/openrc/pull/431
2021-08-13librc: fix rc_runlevel_exists return for empty stringWilliam Hubbs
This function should return false if the runlevel is an empty string. X-Gentoo-Bug: 803536 X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536 Closes: https://github.com/OpenRC/openrc/pull/431
2021-08-12openrc-init: ignore an empty string in argv[1]Mike Gilbert
X-Gentoo-Bug: 803536 X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536 Closes: https://github.com/OpenRC/openrc/pull/431
2021-04-15checkpath: fix code to walk the directory pathWilliam Hubbs
X-Gentoo-Bug: 782808 X-Gentoo-Bug-URL: https://bugs.gentoo.org/782808
2021-04-13checkpath: remove extra slashes from pathsWilliam Hubbs
This fixes #418.
2021-04-13style fixWilliam Hubbs
2021-03-22stop namespaced services with specified pidsWilliam Hubbs
The previous fix excludes PIDs of processes running in a different namespace regardless of whether the PID has been explicitly stored in a PID file mentioned in the --pidfile parameter. The correct behavior is to only exclude the pid if it is not stored in a pidfile. X-Gentoo-Bug: 776010 X-Gentoo-Bug-URL: https://bugs.gentoo.org/776010
2021-02-22start-stop-daemon: Fix off by ones when checking for RC_* envvarsDisconnect3d
The same as https://github.com/OpenRC/openrc/pull/361 This fixes #362.
2021-02-22supervise-daemon: Fix off by ones when checking for RC_* envvarsDisconnect3d
Fixes strncmp size argument off by one as the current implementation didn't match the `=` character. This fixes #361.
2021-02-22Support docker and lxc stopRin Cat
This fixes #398.
2020-12-20rc-status: Remove noise from ini-formatted outputManuel Rüger
Otherwise this would create the following output: rc-status -f ini * Caching service dependencies ... [ ok ] [default] dbus = started NetworkManager = started syslog-ng = started ... This fixes #364.
2020-11-29supervise-daemon: do not spawn a process if we are exitingWilliam Hubbs
This fixes #375 and allows us to not add another level of indentation in the supervisor loop.
2020-11-27src/rc/checkpath.c: replace mkdir() with mkdirat().Michael Orlitzky
The do_check() function recently gained some defenses against symlink replacement attacks that involve the use of *at functions in place of their vanilla counterparts; openat() instead of open(), for example. One opportunity to replace mkdir() with mkdirat() was missed, however, and this commit replaces it. This fixes #386.
2020-11-27src/rc/checkpath.c: fix typo "synbolic" -> "symbolic".Michael Orlitzky
2020-11-27start-stop-daemon, supervise-daemon: fix parsing of usernames passed via ↵Johannes Heimansberg
--user that start with a number start-stop-daemon and supervise-daemon parse usernames and group names passed via the --user argument as numeric UID/GID if they start with a number (e.g. user "4foo" will be treated as UID 4). This results in the process that is being started to run under a totally unexpected user if that UID exists. Even though the result of the sscanf calls are tested for a result of exactly 1, which means exactly one value was extracted, because sscanf's format string only contains only one placeholder, it will never return a value greater than 1, even if there are still characters left to be parsed. This causes start-stop-daemon and supervise-daemon to assume that usernames starting with a number are just that number. Adding a second placeholder "%1s" to the format string, which matches a string of length 1, makes sure that sscanf can distinguish between pure numbers (in which case it will return 1) and strings either starting with a number (in which case it will return 2) and any other string (in which case it will return 0). This fixes #379. This fixes #380.
2020-11-20start-stop-daemon: Don't segfault if --exec was given a non-existing file nameLars Wendler
Starting program: /sbin/start-stop-daemon --start --exec i-dont-exist Program received signal SIGSEGV, Segmentation fault. 0x0000555555559053 in main (argc=1, argv=0x7fffffffdc20) at start-stop-daemon.c:631 631 *exec_file ? exec_file : exec); This fixes #385.
2020-11-20checkpath: fix CVE-2018-21269William Hubbs
This walks the directory path to the file we are going to manipulate to make sure that when we create the file and change the ownership and permissions we are working on the same file. Also, all non-terminal symbolic links must be owned by root. This will keep a non-root user from making a symbolic link as described in the bug. If root creates the symbolic link, it is assumed to be trusted. On non-linux platforms, we no longer follow non-terminal symbolic links by default. If you need to do that, add the -s option on the checkpath command line, but keep in mind that this is not secure. This fixes #201.
2020-09-25supervise-daemon: only log debug logs when verbose mode is activeWilliam Hubbs
2020-01-19src/rc/rc-logger.h: fix build failure against gcc-10Sergei Trofimovich
On gcc-10 (and gcc-9 -fno-common) build fails as: ``` cc -L../librc -L../libeinfo -O2 -g -std=c99 -Wall -Wextra -Wimplicit -Wshadow \ -Wformat=2 -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn \ -Wmissing-format-attribute -Wnested-externs -Winline -Wwrite-strings \ -Wcast-align -Wcast-qual -Wpointer-arith -Wdeclaration-after-statement \ -Wsequence-point -Werror=implicit-function-declaration \ -Wl,-rpath=/lib -o openrc rc.o rc-logger.o rc-misc.o rc-plugin.o _usage.o -lutil -lrc -leinfo -Wl,-Bdynamic -ldl ld: rc-logger.o:/home/slyfox/dev/git/openrc/src/rc/rc-logger.h:16: multiple definition of `rc_logger_pid'; rc.o:openrc/src/rc/rc-logger.h:16: first defined here ld: rc-logger.o:/home/slyfox/dev/git/openrc/src/rc/rc-logger.h:17: multiple definition of `rc_logger_tty'; rc.o:openrc/src/rc/rc-logger.h:17: first defined here ``` gcc-10 will change the default from -fcommon to fno-common: https://gcc.gnu.org/PR85678. The error also happens if CFLAGS=-fno-common passed explicitly. This fixes #348.
2020-01-11supervise-daemon: Fix segfault when executable does not existWolf
When executable is provided just by name (and therefore searched in a path), exec_file is reset to NULL every time. exists() handles it being NULL just fine, but dereferencing it in eerror does not work. Fixes #326 Fixes #327
2019-12-05openrc-shutdown.c: typo fixWilliam Hubbs
2019-08-20fix clang buildWilliam Hubbs
2019-08-19fix single user modeWilliam Hubbs
2019-08-15fix sysvinit compatibilityWilliam Hubbs
This allows openrc to direct sysvinit to shut down the system by setting the INIT_HALT environment variable appropriately. Also, we do not try to communicate with sysvinit if its fifo does not exist.
2019-07-25add ability for openrc-shutdown to communicate with sysvinitWilliam Hubbs
This fixes #315.
2019-07-24Fix build with ClangMartin Wilke
This fixes #313.
2019-03-29supervise-daemon: allow --respawn-max to be zeroWilliam Hubbs
2019-02-26remove hidden-visibility.hWilliam Hubbs
I am removing this on the advice of a member of the Gentoo toolchain team. It was explained to me that this doesn't offer any significant benefits to OpenRC. If anyone ffeels differently, please open a pull request reverting this and adding an explanation of what it does and how to know which functions to mark hidden in the future. This fixes #301.
2019-02-25openrc-init: fix waitpid checksWilliam Hubbs
The do_openrc() function was not waiting properly for the child process which started the runlevel to return. We need to repeatedly call waitpid() until its return value matches the pid of the child process or the child process does not exist. This fixes #216. This fixes #300.
2019-02-23librc: fix potential buffer overflow in pid_is_argvWilliam Hubbs
This fixes #299.
2019-02-23Revert "src/librc/librc-daemon.c: fix buffer overrun in pid_is_argv"William Hubbs
This reverts commit 084877eb52971faf8f52c780ddd08ed9af140eb6. The mentioned commit caused some systems to have some services reported as crashed. This fixes #297. This fixes #298.
2019-02-22combine test directoriesWilliam Hubbs
This fixes #295.
2019-02-22remove unused test ignore patternsWilliam Hubbs
2019-02-22remove unused test data filesWilliam Hubbs
2019-02-21librc/librc-depend.c: fix NULL pointer dereferenceGeorgy Yakovlev
In some cases deptree or depinfo can be NULL, check before dereferencing. Fixes https://github.com/OpenRC/openrc/issues/293 Fixes https://github.com/OpenRC/openrc/pulls/294 X-Gentoo-Bug: 659906 X-Gentoo-Bug-URL: https://bugs.gentoo.org/659906
2019-02-19src/test/runtests.sh: drop 'readelf'-based testsSergei Trofimovich
The 'readelf'-based tests cover a few situations: 1. undefined symbols in shared libraries 2. unexpected exports in shared libraries Bug #575958 shows that [2.] implementation is too simplistic in assuming that presence of relocation equals to export presence. It is incorrect for PLT stubs and local symbols. Let's just drop these tests. If one needs to cover [1.] it is better to use LDFLAGS=-Wl,--no-undefined. This closes #292. X-Reported-by: Benda Xu X-Gentoo-Bug: https://bugs.gentoo.org/575958 X-Gentoo-Bug-URL: https://bugs.gentoo.org/575958