X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fsmack-setup.c;h=d0fd1809f9a54aa879c3ccfb7c5ed9ae85b34e2e;hb=8573b68fecc65a0cd285e4c5e288831856948e62;hp=611bfdb2df155b20e51bf84ff95a478246c50ec9;hpb=8b197c3a8a57c3f7c231b39e5660856fd9580c80;p=elogind.git diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c index 611bfdb2d..d0fd1809f 100644 --- a/src/core/smack-setup.c +++ b/src/core/smack-setup.c @@ -87,7 +87,7 @@ static int write_rules(const char* dstpath, const char* srcdir) { if (!policy) { if (r == 0) r = -errno; - close_nointr_nofail(fd); + safe_close(fd); log_error("Failed to open %s: %m", entry->d_name); continue; } @@ -116,12 +116,14 @@ static int write_rules(const char* dstpath, const char* srcdir) { #endif -int smack_setup(void) { +int mac_smack_setup(bool *loaded_policy) { #ifdef HAVE_SMACK int r; + assert(loaded_policy); + r = write_rules("/sys/fs/smackfs/load2", SMACK_CONFIG); switch(r) { case -ENOENT: @@ -156,13 +158,15 @@ int smack_setup(void) { return 0; case 0: log_info("Successfully loaded Smack/CIPSO policies."); - return 0; + break; default: log_warning("Failed to load Smack/CIPSO access rules: %s, ignoring.", strerror(abs(r))); return 0; } + *loaded_policy = true; + #endif return 0;