X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fmain.c;h=f7d76a2941d6b9af3816ab8cc6d3980d5b4dc6e3;hb=a84f519214bf245052ad6be7b57fb68ac817cb7e;hp=7dad015e3034ed86ad23508d1270185b5c86162b;hpb=87d1969bb35564b6b5851cc9fef81c297e247306;p=elogind.git diff --git a/src/main.c b/src/main.c index 7dad015e3..f7d76a294 100644 --- a/src/main.c +++ b/src/main.c @@ -39,6 +39,7 @@ #include "loopback-setup.h" #include "kmod-setup.h" #include "locale-setup.h" +#include "selinux-setup.h" #include "load-fragment.h" #include "fdset.h" #include "special.h" @@ -180,20 +181,6 @@ static void install_crash_handler(void) { sigaction_many(&sa, SIGNALS_CRASH_HANDLER, -1); } -static int make_null_stdio(void) { - int null_fd, r; - - if ((null_fd = open("/dev/null", O_RDWR|O_NOCTTY)) < 0) { - log_error("Failed to open /dev/null: %m"); - return -errno; - } - - if ((r = make_stdio(null_fd)) < 0) - log_warning("Failed to dup2() device: %s", strerror(-r)); - - return r; -} - static int console_setup(bool do_reset) { int tty_fd, r; @@ -909,6 +896,11 @@ int main(int argc, char *argv[]) { arg_running_as = MANAGER_SYSTEM; log_set_target(LOG_TARGET_SYSLOG_OR_KMSG); + /* This might actually not return, but cause a + * reexecution */ + if (selinux_setup(argv) < 0) + goto finish; + if (label_init() < 0) goto finish; } else {