chiark / gitweb /
util: rework rm_rf() logic
[elogind.git] / src / shared / memfd-util.c
index 21ecf4b32bb606f228a7d3c012c3ccbb5a604fca..e99a738e1f88a79af71c8ad899c556da5fdd2b9c 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <stdio.h>
 #include <fcntl.h>
-#include <sys/ioctl.h>
 #include <sys/mman.h>
 #include <sys/prctl.h>
 
@@ -30,7 +29,6 @@
 #endif
 
 #include "util.h"
-#include "bus-label.h"
 #include "memfd-util.h"
 #include "utf8.h"
 #include "missing.h"
@@ -101,7 +99,7 @@ int memfd_set_sealed(int fd) {
 
         assert(fd >= 0);
 
-        r = fcntl(fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE);
+        r = fcntl(fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE | F_SEAL_SEAL);
         if (r < 0)
                 return -errno;
 
@@ -117,8 +115,7 @@ int memfd_get_sealed(int fd) {
         if (r < 0)
                 return -errno;
 
-        return (r & (F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE)) ==
-                    (F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE);
+        return r == (F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE | F_SEAL_SEAL);
 }
 
 int memfd_get_size(int fd, uint64_t *sz) {