From 0cb7dd5b96310604fc10222b1dc3f675a772f5b9 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Fri, 14 Nov 2025 21:32:51 +0100 Subject: [PATCH] fd-util: do not block O_TMPFILE with -EISDIR Follow-up for 7cf4f075670a81babf1501f063f6841cc4e866dd --- src/basic/fd-util.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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)) -- 2.47.3