chiark / gitweb /
shared: create files even if the SELinux policy has no context for them
[elogind.git] / src / shared / selinux-util.c
index 1eddd17d2797ff797254aab1faf43c34f58affb4..6bd3bf1c8027c651a928692b2773e21a32c7b63e 100644 (file)
@@ -332,9 +332,13 @@ int mac_selinux_create_file_prepare(const char *path, mode_t mode) {
                 r = selabel_lookup_raw(label_hnd, &filecon, newpath, mode);
         }
 
-        if (r < 0 && errno != ENOENT)
+        /* No context specified by the policy? Proceed without setting it. */
+        if (r < 0 && errno == ENOENT)
+                return 0;
+
+        if (r < 0)
                 r = -errno;
-        else if (r == 0) {
+        else {
                 r = setfscreatecon(filecon);
                 if (r < 0) {
                         log_enforcing("Failed to set SELinux security context %s for %s: %m", filecon, path);