From: Lennart Poettering Date: Fri, 13 Dec 2024 17:55:00 +0000 (+0100) Subject: memfd-util: simplify memfd_new_and_seal() X-Git-Tag: v258-rc1~1831^2~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=db5381c49c671df28136a7025454bf85e555c0d9;p=thirdparty%2Fsystemd.git memfd-util: simplify memfd_new_and_seal() Let's use pwrite() to write the contents of the memfd. This has the benefit of not moving the file offset, which means we don't have to reset it after at all. --- diff --git a/src/basic/memfd-util.c b/src/basic/memfd-util.c index 0ae9a4f777f..9ceb18cc2f3 100644 --- a/src/basic/memfd-util.c +++ b/src/basic/memfd-util.c @@ -171,8 +171,6 @@ int memfd_new_and_map(const char *name, size_t sz, void **p) { int memfd_new_and_seal(const char *name, const void *data, size_t sz) { _cleanup_close_ int fd = -EBADF; - ssize_t n; - off_t f; int r; assert(data || sz == 0); @@ -185,15 +183,11 @@ int memfd_new_and_seal(const char *name, const void *data, size_t sz) { return fd; if (sz > 0) { - n = write(fd, data, sz); + ssize_t n = pwrite(fd, data, sz, 0); if (n < 0) return -errno; if ((size_t) n != sz) return -EIO; - - f = lseek(fd, 0, SEEK_SET); - if (f != 0) - return -errno; } r = memfd_set_sealed(fd);