X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fselinux-setup.c;h=dc101b13bae1d5efc24c1a21c14606072502142c;hp=fdc316048add74cf1844f6d570219576286e0611;hb=4ef31082884e1c8df8887a8f53c428a894d53fb7;hpb=0b3325e79eb98f2e5bc19a1b0efd99e693b31a99 diff --git a/src/selinux-setup.c b/src/selinux-setup.c index fdc316048..dc101b13b 100644 --- a/src/selinux-setup.c +++ b/src/selinux-setup.c @@ -30,6 +30,7 @@ #endif #include "selinux-setup.h" +#include "mount-setup.h" #include "macro.h" #include "util.h" #include "log.h" @@ -45,6 +46,9 @@ int selinux_setup(bool *loaded_policy) { assert(loaded_policy); + /* Make sure getcon() works, which needs /proc and /sys */ + mount_setup_early(); + /* Already initialized by somebody else? */ r = getcon_raw(&con); if (r == 0) { @@ -71,7 +75,7 @@ int selinux_setup(bool *loaded_policy) { /* Transition to the new context */ r = label_get_create_label_from_exe(SYSTEMD_BINARY_PATH, &label); - if (r < 0) { + if (r < 0 || label == NULL) { log_open(); log_error("Failed to compute init label, ignoring."); } else {