X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fjournal%2Fjournald-native.c;h=d3735ec73c598706516355aae48239c81afc7bb4;hp=6a9ae8a6ceabbce87cbf548c4844bedb0e60802f;hb=73843b52585d42cc1a970a1c664818ece6942e9e;hpb=c79e98eadd3056a36a662699fa650db5b1bca0c3 diff --git a/src/journal/journald-native.c b/src/journal/journald-native.c index 6a9ae8a6c..d3735ec73 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;