From: Mike Yuan Date: Fri, 14 Nov 2025 20:32:51 +0000 (+0100) Subject: fd-util: do not block O_TMPFILE with -EISDIR X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0cb7dd5b96310604fc10222b1dc3f675a772f5b9;p=thirdparty%2Fsystemd.git fd-util: do not block O_TMPFILE with -EISDIR Follow-up for 7cf4f075670a81babf1501f063f6841cc4e866dd --- diff --git a/src/basic/fd-util.c b/src/basic/fd-util.c index 310f5b82b5b..e0dcbcecd18 100644 --- a/src/basic/fd-util.c +++ b/src/basic/fd-util.c @@ -978,7 +978,10 @@ int fd_vet_accmode(int fd, int mode) { if (flags < 0) return -errno; - if (FLAGS_SET(flags, O_DIRECTORY)) + /* O_TMPFILE in userspace is defined with O_DIRECTORY OR'ed in, so explicitly permit it. + * + * C.f. https://elixir.bootlin.com/linux/v6.17.7/source/include/uapi/asm-generic/fcntl.h#L92 */ + if (FLAGS_SET(flags, O_DIRECTORY) && !FLAGS_SET(flags, O_TMPFILE)) return -EISDIR; if (FLAGS_SET(flags, O_PATH))