Commit Graph

121 Commits

Author SHA1 Message Date
Jesse Smith 828c2704a1 Removed old LSM file.
Added .gitignore files to avoid git tracking object files.
Removed old start-stop-daemon from contrib directory.
2018-05-04 22:08:38 -03:00
Jesse Smith e0cfd39728 Added "Fall through" comments to some switch statements where multiple
approaches are tried in order to prevent warnings from GCC 7 (and newer).

Added includes on Linux for sys/sysmacros.h as the old defines in
the sys/types.h file will be removed in the future.
2018-05-04 14:51:40 -03:00
Jesse Smith cfb39b573f Updated init.c to remove some old notes and answer questions
that were flagged in comments or FIXME labels.
2018-04-23 00:09:49 -03:00
Jesse Smith 272f112c98 Added new signal handler for SIGUSR2. When init receives SIGUSR2
it closes (and leaves closed) the named pipe /run/initctl. This
can be used to make sure init does not have any files open. However,
it also means we cannot switch run levels or bring down the system.
The pipe can be re-opened by sending init the SIGUSR1 signal.

Updated the man pages for initctl and init to include this information.
2018-04-17 19:44:50 -03:00
Jesse Smith f09da9cb55 Add check to make sure /run/initctl is open before we try to close
it when receiving SIGUSR1. Avoids crashing upon receiving signal.
2018-04-15 14:09:33 -03:00
Jesse Smith aee28b3292 Updated init page to reference the initctl manual page instead of
telling people to read the source code to learn how to use
the /run/initctl named pipe. Updated Makefile to install
the initctl.5 manual page.
2018-04-14 19:19:18 -03:00
Jesse Smith a4508479f5 Updated shutdown to check if time has lapsed when we did not
notice. For example if the computer was in sleep mode pending
a shutdown. The shutdown command now notices time has past
and adjusts its countdown clock to compensate. Accurate
to the nearest minute.
Closes Savannah bug #36279
2018-04-04 23:12:25 -03:00
Jesse Smith d9b6475d85 Removed unneeded "count" variable in utmpdump.c.
Fixed typo in accidental wrote_wtmp_rlevel == 0 || wrote_wtmp_rlevel
comparison so the latter is wrote_utmp_rlevel.

Simplified logic in mountpoint.c when testing for same device or same inode.

Thanks to David Binderman for pointing out the above three issues.
2018-03-30 22:15:04 -03:00
Jesse Smith 8c8172349e Updated mountpoint to search for circular mount points when using
the -p parameter. This works around mountpoint not recognizing
circular mounts where /a/b/c/d and /a/b are the same location
(ie the same device and same inode).
Closes Savannah bug #37114.
2018-03-07 16:25:53 -04:00
Jesse Smith 2e1f87635e Removed extra sleep() calls from shutting down process since we use
sync() anyway to pause and make sure data is written out to disk.
2018-02-22 21:07:51 -04:00
Jesse Smith 2b651b469e Fixed Clang compiler warning when calling sprintf() with
variable number of data parameters.
2018-02-21 18:05:58 -04:00
Jesse Smith c6f29e96c0 Cleared up compiler warnings from unused variables and findtty()
function in bootlogd.c
2018-02-20 19:40:14 -04:00
Jesse Smith 1d24d576f1 Add fscanf checks to init.c to warn us if calls fail.
Mostly to clean up compiler warnings.
2018-02-20 19:38:40 -04:00
Jesse Smith d21c8fc44b Perform error check on setuid() call in shutdown as manual page suggests. 2018-02-20 19:37:29 -04:00
Jesse Smith 6a8a216449 Fix typo in killall5.c and move initscript.sample file
from source tree into "doc" directory.
2018-02-20 19:36:21 -04:00
Jesse Smith 986bee63c0 Allow multiple console output
When booting a kernel with multiple serial console support, or multuiple
console arguments ala "console=tty1 console=ttyS0,9600" the kernel will output
messages to all consoles, init however will not. It will only send output to,
and accept input from, the last of the consoles.
This patch fixes it.

(Author is Martin Buck.)
2018-02-20 19:34:45 -04:00
Jesse Smith f52d703c8e Updated bootlogd and init to better compile and run on GNU/kFreeBSD. 2018-02-20 19:30:46 -04:00
Jesse Smith 80dbcf3de3 Moved the named communication pipe from /dev/initctl to /run/initctl. This
patch was supplied by Robert Millan from Debian. FreeBSD apparently does not
like named piped in /dev, so we move it to /run for better cross-platform
compatibility.
2018-02-20 19:29:08 -04:00
Jesse Smith efa6fefa8e Applied Debian patches to update init Makefile, halt and init documentation. 2018-02-20 19:26:09 -04:00
Jesse Smith 6e3e87bf32 Patch to automatically spawn agetty on kernel consoles
The feature is useful for developers and admins that occasionally need
to boot with e.g. console=ttyS0.
The built in default can be overridden via inittab for each device. An
entry like "S0::off:" turns off the getty on ttyS0.
2018-02-20 19:18:58 -04:00
Jesse Smith e80878c555 Imported patches from Arch Linux's bootlogd to avoid special
characters in log file. Also makes parsing easier.
2018-02-20 19:16:42 -04:00
Jesse Smith 3e43bb7ccd Applied patches provided in Savannah bug report 49991. Fix tabs in
bootlogd and avoid printing unitialized "buf" variable when
consolename() fails.
2018-02-20 19:14:36 -04:00
Petter Reinholdtsen d972463609 Include -Wunreachable-code when building. 2014-02-28 13:18:49 +00:00
Petter Reinholdtsen ca4561271e Check exit code from dup() in spawn() and log error if it fail.
Patch from Michał Kulling.
2014-02-10 22:47:27 +00:00
Petter Reinholdtsen d53cccb542 Use narrowly scoped file descriptor for handling opened TTY in
spawn().  Patch from Michał Kulling.
2014-02-10 22:44:15 +00:00
Petter Reinholdtsen da988bb28e Make it possible to specify the initctl path as a compile time define INIT_FIFO. 2014-02-07 23:27:39 +00:00
Petter Reinholdtsen 303f3465f6 Port ifdown.c to FreeBSD. Patch from Guillem Jover and Debian. 2014-02-07 17:55:37 +00:00
Petter Reinholdtsen a05987e281 Document length limit for the process field in the inittab. Patch
from Johannes Truschnigg and Debian.
2014-02-07 17:41:58 +00:00
Petter Reinholdtsen 1b91c378b9 Adapt bootlogd TIOCCONS call to kfreebsd. Patch from Mats Erik
Andersson and Debian.
2014-02-07 17:03:04 +00:00
Petter Reinholdtsen 3f08c42b06 Make sure to report an error if chdir(/) fail. 2014-02-07 13:45:06 +00:00
Petter Reinholdtsen de1344feb8 Rewrite findtty() in bootlogd.c to not chance working directory, to
reduce the amount of failure that can happin in that function.
2014-02-07 11:06:57 +00:00
Petter Reinholdtsen cc3a4e2f9e Avoid reusing open file descriptor to make it easier to pinpoint Coverity CID 1164479 resource leak. 2014-02-07 09:50:14 +00:00
Petter Reinholdtsen 6ba8311144 Get more help from gcc, add -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 and -fstack-protector. 2014-02-07 08:00:58 +00:00
Petter Reinholdtsen a7bf0bf7e9 Remove unused variable realuid from main(). 2014-02-07 06:57:11 +00:00
Petter Reinholdtsen fb143cdcb9 Remove unused variable serial from tcfinal(). 2014-02-07 06:55:53 +00:00
Petter Reinholdtsen b547736c2c Avoid setting unused value and trick scan-build from clang into not warn about apparenly unused value. 2014-02-05 13:24:18 +00:00
Petter Reinholdtsen b8e970ca10 Explain why maxsymlinks() exist. 2014-02-05 13:23:08 +00:00
Petter Reinholdtsen 992c7a70d7 No use checkinf if env is true in the branch where it is false (Coverity CID 1164462). 2014-01-28 22:29:30 +00:00
Petter Reinholdtsen 8478327498 Adjust makefile to make it easier to link all binaries statically.
Patch from Matias A. Fonzo and Dragora.
2014-01-28 22:11:34 +00:00
Petter Reinholdtsen 5421d713ae Adjust more included headers to be compatible with the musl C
library.  Patch from Matias A. Fonzo and Dragora.
2014-01-28 22:07:30 +00:00
Petter Reinholdtsen 834bcebcaf Use sysconf(_SC_SYMLOOP_MAX) instead of MAXSYMLINKS. If sysconf
returns an error, fall back to MAXSYMLINKS on platforms that
define it.  Fixes build on Hurd.  Patch from Justus Winter and
Debian.
2014-01-28 10:13:10 +00:00
Petter Reinholdtsen c26aaa4410 Define _XOPEN_SOURCE when building to get crypt() from <unistd.h> instead of using <crypt.h> in sulogin.c, to get the source building with the musl C library. 2014-01-27 22:05:54 +00:00
Petter Reinholdtsen 52b92185de Move dovoid() macro from #ifdef__GLIBC__ to #ifdef __linux__, to match the condutions of the place where it is used. Thanks to Matias A. Fonzo for noticing. 2014-01-27 21:55:57 +00:00
Petter Reinholdtsen f11cdf9554 Adjust included headers to be compatible with the musl C library. Patch from Matias A. Fonzo and Dragora. 2014-01-26 22:00:42 +00:00
Petter Reinholdtsen 2d0b513b8a Make sure FILE pointer returned by hdopen() is not leaked even if the
pointer returned can be casted to a negative long value (Coverity CIDs
1164478 and 1164477).
2014-01-26 16:40:03 +00:00
Petter Reinholdtsen 7d6e3683b0 Make sure logintime string can never overflow (Coverity CID 1164485). 2014-01-26 13:38:51 +00:00
Petter Reinholdtsen ae7c73ec7f Make sure cmdline string always is null terminated, even if it is very long (Coverity CID 1164484). 2014-01-26 13:29:43 +00:00
Petter Reinholdtsen 1c9808ec42 Close open file descriptor if the version is wrong (Coverity CID 1164481). 2014-01-26 09:58:04 +00:00
Petter Reinholdtsen 568c01bbb5 Document a fall through case block (Coverity CID 1164467). 2014-01-26 09:41:51 +00:00
Petter Reinholdtsen d2f82534cf Try harder to find libcrypt.*, even if there is no static library
available.  Also look in /usr/lib/*/ for the library, to handle
Debian multiarch systems.  Based on patch from Andrew Gregory.
2014-01-25 21:57:25 +00:00