X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd%2Fsd-bus%2Fbus-message.c;h=be36d9f417cac8e47306930921a1258e1bb506a1;hb=9cbfc66c621c42aa6e58e9e0da0adfb01efa7537;hp=1362a60f0869cb49a6f0fa16166a12b792f73571;hpb=53a83f4bc037379b48a078b748287d333569ccfb;p=elogind.git diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c index 1362a60f0..be36d9f41 100644 --- a/src/libsystemd/sd-bus/bus-message.c +++ b/src/libsystemd/sd-bus/bus-message.c @@ -28,7 +28,7 @@ #include "strv.h" #include "time-util.h" #include "cgroup-util.h" -#include "memfd.h" +#include "memfd-util.h" #include "sd-bus.h" #include "bus-message.h" @@ -1097,10 +1097,10 @@ static int part_make_space( uint64_t new_allocated; new_allocated = PAGE_ALIGN(sz > 0 ? 2 * sz : 1); - r = ftruncate(part->memfd, new_allocated); + r = memfd_set_size(part->memfd, new_allocated); if (r < 0) { m->poisoned = true; - return -errno; + return r; } part->allocated = new_allocated; @@ -2820,11 +2820,12 @@ int bus_message_seal(sd_bus_message *m, uint64_t cookie, usec_t timeout) { /* Then, sync up real memfd size */ sz = part->size; - if (ftruncate(part->memfd, sz) < 0) - return -errno; + r = memfd_set_size(part->memfd, sz); + if (r < 0) + return r; /* Finally, try to seal */ - if (fcntl(part->memfd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE) >= 0) + if (memfd_set_sealed(part->memfd) >= 0) part->sealed = true; } }