aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-06-12scripts/Makefile: respect SBINDIR with MKSYSVINITudeved
This is for #142.
2017-06-08kill_all: include limits.h for PATH_MAXJory A. Pratt
2017-06-08version 0.28William Hubbs
2017-06-08fix compile issue for muslWilliam Hubbs
2017-06-07Update ChangeLogWilliam Hubbs
2017-06-07man: update openrc-shutdown man pageWilliam Hubbs
Add the new wtmp options and fix some cross references.
2017-06-07scripts/shutdown: pass --single to openrc-shutdownWilliam Hubbs
Sysvinit shutdown has a default of single user mode, but openrc-shutdown makes you choose a default action. Because of this, the shutdown wrapper needs to pass --single to openrc-shutdown.
2017-06-05openrc-shutdown: add --single option and clean up option processingWilliam Hubbs
2017-06-05init.d/bootmisc: use openrc-shutdown instead of halt to write halt recordWilliam Hubbs
This fixes #139 and fixes #128. and fixes #124.
2017-06-04add support for writing reboot and shutdown records to wtmpWilliam Hubbs
2017-05-31openrc-init: add optional sysvinit compatibilityWilliam Hubbs
2017-05-30Change killprocs to use kill_all instead of killall5William Hubbs
X-Gentoo-Bug:376977 X-Gentoo-Bug-URL:https://bugs.gentoo.org/show_bug.cgi?id=376977
2017-05-30openrc-init: fix buffer overflow in init.ctlSergei Trofimovich
How to reproduce 1-byte overflow: ``` $ FEATURES=-test CFLAGS="-fsanitize=address -O0 -ggdb3" emerge -1 openrc ================================================================= ==1==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fff0efd8710 at pc 0x000000402076 bp 0x7fff0efd7d50 sp 0x7fff0efd7d40 WRITE of size 1 at 0x7fff0efd8710 thread T0 #0 0x402075 (/sbin/openrc-init+0x402075) #1 0x3cf6e2070f in __libc_start_main (/lib64/libc.so.6+0x3cf6e2070f) #2 0x4013b8 (/sbin/openrc-init+0x4013b8) Address 0x7fff0efd8710 is located in stack of thread T0 at offset 2432 in frame #0 0x401cfb (/sbin/openrc-init+0x401cfb) This frame has 3 object(s): [32, 160) 'signals' [192, 344) 'sa' [384, 2432) 'buf' <== Memory access at offset 2432 overflows this variable HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext (longjmp and C++ exceptions *are* supported) SUMMARY: AddressSanitizer: stack-buffer-overflow ??:0 ?? ``` The problem here is in the code handling reads from 'init.ctl': ``` int main(int argc, char **argv) { ... char buf[2048]; for (;;) { /* This will block until a command is sent down the pipe... */ fifo = fopen(RC_INIT_FIFO, "r"); count = fread(buf, 1, 2048, fifo); buf[count] = 0; ... } ``` `buf[count] = 0;` writes outside the buffer when `fread()` returns non-truncated read. This fixes #138.
2017-05-30mk/cc.mk: make implicit function declarations fatal (#136)Sergei Trofimovich
Avoids issues with missing prototypes causing truncation of pointers. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2017-05-30rc-logger.c: fix crash on fclose(NULL) (#137)Sergei Trofimovich
Only close the log if we successfully opened it. Reported-by: Brian Evans <grknight@gentoo.org> Tested-by: Brian Evans <grknight@gentoo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2017-05-22typo fixWilliam Hubbs
X-Gentoo-Bug: 618888 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=618888
2017-05-22openrc-shutdown: add dry-run optionWilliam Hubbs
2017-05-22openrc-shutdown: move to single user mode by defaultWilliam Hubbs
To be more compatible with sysvinit, move to single user mode if no options are specified on the command line.
2017-05-22init: add ability to switch to single user modeWilliam Hubbs
2017-05-19add kill_all helperWilliam Hubbs
This is similar to the sysvinit killall5 utility. It should only be used in service scripts, so it will not be installed in the path. This closes #129.
2017-05-15rc_status: calculate time differences in time_t and display seconds in uptimeWilliam Hubbs
2017-05-12supervise-daemon: save start time and respawn count before dropping privsWilliam Hubbs
2017-05-12version 0.27William Hubbs
2017-05-11update ChangeLogWilliam Hubbs
2017-05-11man/rc-status: document changes for supervised daemonsWilliam Hubbs
rc-status now shows the amount of time a supervised daemon has been active as well as the number of times it has been respawned during the current respawn period.
2017-05-11rc-status: show uptimes and respawn counts for supervised daemonsWilliam Hubbs
2017-05-11fix to_time_t to honor dstWilliam Hubbs
2017-05-11fix from_time_t functionWilliam Hubbs
2017-05-11Move time_t conversions to rc-misc.c so they can be sharedWilliam Hubbs
2017-05-11supervise-daemon: save start time and respawn countWilliam Hubbs
This will allow rc-status to display an uptime and restart count for supervised processes.
2017-05-11supervise-daemon: fix our status when we give up on the child processWilliam Hubbs
2017-05-10supervise-daemon:create multiple options from --respawn-limitWilliam Hubbs
This creates --respawn-delay, --respawn-max and --respawn-period. It was suggested that it would be easier to follow if the options were separated. This is for #126.
2017-05-09supervise-daemon: add a --respawn-limit optionWilliam Hubbs
Allow limiting the number of times supervise-daemon will attempt to respawn a daemon once it has died to prevent infinite respawning. Also, set a reasonable default limit (10 times in a 5 second period). This is for issue #126.
2017-04-29supervise-daemon: mark all open file descriptors FD_CLOEXECWilliam Hubbs
2017-04-29supervise-daemon:remove the controlling tty in the supervisorWilliam Hubbs
2017-04-29supervise-daemon: fix access to tty_fd and devnull_fdWilliam Hubbs
Both the child and supervisor need access to these file descriptors.
2017-04-29supervise-daemon: mark the service started when the supervisor is activeWilliam Hubbs
2017-04-19version 0.26William Hubbs
2017-04-17update ChangeLogWilliam Hubbs
2017-04-17init: send term/kill signals as final step of shutdownWilliam Hubbs
2017-04-14reword the bugs section of the openrc-init man pageWilliam Hubbs
2017-04-13init: fix signal handlingWilliam Hubbs
The only signals we handle are SIGINT and SIGCHLD, so block all others and unblock them in the child process before we start a rurnlevel.
2017-04-12init: add re-exec capabilityWilliam Hubbs
This will allow the re-execution of the init process after upgrading OpenRC.
2017-04-10bootmisc: do not remove ld-elf32.so.hintsi.Dark_Templar
File /var/run/ld-elf32.so.hints is used on FreeBSD 64bit multilib This fixes #125.
2017-04-07Add attribution to openrc-init.c and openrc-shutdown.cWilliam Hubbs
2017-04-06add init processWilliam Hubbs
openrc-init.c and openrc-shutdown.c are based on code which was written by James Hammons <jlhamm@acm.org>, so I would like to publically thank him for his work.
2017-04-05Fix make install on FreeBSD: don't try to install /etc/init.d/modules twicei.Dark_Templar
2017-04-03start-stop-daemon: warn if calling --start with --retry or --stop with --waitAustin English
This fixes #122
2017-03-31init.d/agetty.in: add -prefix keywordWilliam Hubbs
2017-03-31init.d/mount-ro: change dependency on killprocs and savecache to afterWilliam Hubbs
killprocs always succeeds and savecache is not required by mount-ro, so we can just start after both of these have run.