diff options
Diffstat (limited to 'src/journal/journald-native.c')
-rw-r--r-- | src/journal/journald-native.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/journal/journald-native.c b/src/journal/journald-native.c index 6a9ae8a6ce..d3735ec73c 100644 --- a/src/journal/journald-native.c +++ b/src/journal/journald-native.c @@ -33,6 +33,7 @@ #include "journald-console.h" #include "journald-syslog.h" #include "journald-wall.h" +#include "memfd.h" bool valid_user_field(const char *p, size_t l, bool allow_protected) { const char *a; @@ -319,9 +320,7 @@ void server_process_native_file( /* If it's a memfd, check if it is sealed. If so, we can just * use map it and use it, and do not need to copy the data * out. */ - r = fcntl(fd, F_GET_SEALS); - sealed = r >= 0 && - (r & (F_SEAL_SHRINK|F_SEAL_GROW|F_SEAL_WRITE|F_SEAL_SEAL)) == (F_SEAL_SHRINK|F_SEAL_GROW|F_SEAL_WRITE|F_SEAL_SEAL); + sealed = memfd_get_sealed(fd) > 0; if (!sealed && (!ucred || ucred->uid != 0)) { _cleanup_free_ char *sl = NULL, *k = NULL; |