summaryrefslogtreecommitdiff
path: root/tools/include
diff options
context:
space:
mode:
authorThomas Weißschuh <linux@weissschuh.net>2026-05-14 14:05:13 +0200
committerThomas Weißschuh <linux@weissschuh.net>2026-05-14 17:41:14 +0200
commit219d120c195e53dd33076be05641fda0e36bff37 (patch)
tree0920950f65e0a3725d9df77f74bd0b2ebea596e8 /tools/include
parenta8856027e29c432b2889aad45580d430ca002c87 (diff)
tools/nolibc: always pass mode to open syscall
When O_TMPFILE is set, the open mode needs to be passed to the kernel as per the documentation. Currently this is not done. Instead of checking for O_TMPFILE explicitly and making the conditionals more complex, just always pass the mode to the kernel. If no value was passed the mode will be garbage, but the kernel will ignore it anyways. Fixes: a7604ba149e7 ("tools/nolibc/sys: make open() take a vararg on the 3rd argument") Suggested-by: Willy Tarreau <w@1wt.eu> Link: https://lore.kernel.org/lkml/afRfjdovT6pNtwtP@1wt.eu/ Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Acked-by: Willy Tarreau <w@1wt.eu> Link: https://patch.msgid.link/20260514-nolibc-open-tmpfile-v2-3-b4c6c5efa266@weissschuh.net
Diffstat (limited to 'tools/include')
-rw-r--r--tools/include/nolibc/fcntl.h13
1 files changed, 5 insertions, 8 deletions
diff --git a/tools/include/nolibc/fcntl.h b/tools/include/nolibc/fcntl.h
index d7ea02e1332d..d4b6af60d4cc 100644
--- a/tools/include/nolibc/fcntl.h
+++ b/tools/include/nolibc/fcntl.h
@@ -18,15 +18,12 @@
#define __nolibc_open_mode(_flags) \
({ \
- mode_t _mode = 0; \
+ mode_t _mode; \
+ va_list args; \
\
- if ((_flags) & O_CREAT) { \
- va_list args; \
- \
- va_start(args, (_flags)); \
- _mode = va_arg(args, mode_t); \
- va_end(args); \
- } \
+ va_start(args, (_flags)); \
+ _mode = va_arg(args, mode_t); \
+ va_end(args); \
\
_mode; \
})