unistd: protect clone3 via __ARCH_WANT_SYS_CLONE3

This lets us catch new architectures that implicitly make use of clone3
without setting __ARCH_WANT_SYS_CLONE3.
Failing on missing __ARCH_WANT_SYS_CLONE3 is a good indicator that they
either did not really want this syscall or haven't really thought about
whether it needs special treatment and just accidently included it in
their entrypoints by e.g. generating their syscall table automatically
via asm-generic/unistd.h

This patch has been compile-tested for the h8300 architecture which is
one of the architectures that does not yet implement clone3 and
generates its syscall table via asm-generic/unistd.h.
Signed-off-by: NChristian Brauner <christian@brauner.io>
Suggested-by: NArnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20190714192205.27190-3-christian@brauner.ioReviewed-by: NArnd Bergmann <arnd@arndb.de>
Signed-off-by: NChristian Brauner <christian@brauner.io>
上级 1a271a68
...@@ -846,8 +846,10 @@ __SYSCALL(__NR_fsmount, sys_fsmount) ...@@ -846,8 +846,10 @@ __SYSCALL(__NR_fsmount, sys_fsmount)
__SYSCALL(__NR_fspick, sys_fspick) __SYSCALL(__NR_fspick, sys_fspick)
#define __NR_pidfd_open 434 #define __NR_pidfd_open 434
__SYSCALL(__NR_pidfd_open, sys_pidfd_open) __SYSCALL(__NR_pidfd_open, sys_pidfd_open)
#ifdef __ARCH_WANT_SYS_CLONE3
#define __NR_clone3 435 #define __NR_clone3 435
__SYSCALL(__NR_clone3, sys_clone3) __SYSCALL(__NR_clone3, sys_clone3)
#endif
#undef __NR_syscalls #undef __NR_syscalls
#define __NR_syscalls 436 #define __NR_syscalls 436
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册