chiark / gitweb /
nspawn: support ephemeral boots from images
[elogind.git] / src / basic / smack-util.c
index 6d5c205117ba5b9845edceb77bcb984ff74fd4e0..9bcc4a3a200171f9a6f36367ebc99b52959977f3 100644 (file)
@@ -1,5 +1,3 @@
-/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-
 /***
   This file is part of systemd.
 
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include <errno.h>
+#include <string.h>
+#include <sys/stat.h>
 #include <sys/xattr.h>
+#include <unistd.h>
 
-#include "util.h"
-#include "process-util.h"
-#include "path-util.h"
+#include "alloc-util.h"
 #include "fileio.h"
+#include "log.h"
+#include "macro.h"
+#include "path-util.h"
+#include "process-util.h"
 #include "smack-util.h"
-
-#define SMACK_FLOOR_LABEL "_"
-#define SMACK_STAR_LABEL  "*"
+#include "string-table.h"
+#include "xattr-util.h"
 
 #ifdef HAVE_SMACK
 bool mac_smack_use(void) {
@@ -42,6 +45,7 @@ bool mac_smack_use(void) {
         return cached_use;
 }
 
+#if 0 /// UNNEEDED by elogind
 static const char* const smack_attr_table[_SMACK_ATTR_MAX] = {
         [SMACK_ATTR_ACCESS]     = "security.SMACK64",
         [SMACK_ATTR_EXEC]       = "security.SMACK64EXEC",
@@ -129,6 +133,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) {
 
         return r;
 }
+#endif // 0
 
 int mac_smack_fix(const char *path, bool ignore_enoent, bool ignore_erofs) {
         struct stat st;
@@ -185,12 +190,32 @@ int mac_smack_fix(const char *path, bool ignore_enoent, bool ignore_erofs) {
         return r;
 }
 
+#if 0 /// UNNEEDED by elogind
+int mac_smack_copy(const char *dest, const char *src) {
+        int r = 0;
+        _cleanup_free_ char *label = NULL;
+
+        assert(dest);
+        assert(src);
+
+        r = mac_smack_read(src, SMACK_ATTR_ACCESS, &label);
+        if (r < 0)
+                return r;
+
+        r = mac_smack_apply(dest, SMACK_ATTR_ACCESS, label);
+        if (r < 0)
+                return r;
+
+        return r;
+}
+#endif // 0
 
 #else
 bool mac_smack_use(void) {
         return false;
 }
 
+#if 0 /// UNNEEDED by elogind
 int mac_smack_read(const char *path, SmackAttr attr, char **label) {
         return -EOPNOTSUPP;
 }
@@ -210,8 +235,15 @@ int mac_smack_apply_fd(int fd, SmackAttr attr, const char *label) {
 int mac_smack_apply_pid(pid_t pid, const char *label) {
         return 0;
 }
+#endif // 0
 
 int mac_smack_fix(const char *path, bool ignore_enoent, bool ignore_erofs) {
         return 0;
 }
+
+#if 0 /// UNNEEDED by elogind
+int mac_smack_copy(const char *dest, const char *src) {
+        return 0;
+}
+#endif // 0
 #endif