X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fselinux-setup.c;fp=src%2Fcore%2Fselinux-setup.c;h=9a5d6b2a9ddd655d3329c8d1a07f9e8e22740530;hb=37f78db2f4a33474fc349f406b0a0a48e9c573a2;hp=7a32ed59a0a8020c3f1b9431e119242eafc1d07d;hpb=fdc8509fb61965698b7a54e3d0ac094650f21cad;p=elogind.git diff --git a/src/core/selinux-setup.c b/src/core/selinux-setup.c index 7a32ed59a..9a5d6b2a9 100644 --- a/src/core/selinux-setup.c +++ b/src/core/selinux-setup.c @@ -58,6 +58,13 @@ int selinux_setup(bool *loaded_policy) { cb.func_log = null_log; selinux_set_callback(SELINUX_CB_LOG, cb); + /* Don't load policy in the initrd if we don't appear to have + * it. For the real root, we check below if we've already + * loaded policy, and return gracefully. + */ + if (in_initrd() && access(selinux_path(), F_OK) < 0) + return 0; + /* Already initialized by somebody else? */ r = getcon_raw(&con); if (r == 0) {