The introduction of clone3 syscall accidentally broke CLONE_PIDFD support in traditional clone syscall on compat x86 and those architectures that use do_fork to implement clone syscall. This bug was found by strace test suite.
Showing the changes to include/linux (1 of 3 files). Show all
Unified · Split
| @@ -89,6 +89,7 @@ extern void exit_files(struct task_struct *); · 88 unmodified lines | |||
| 89 | extern void exit_itimers(struct signal_struct *); | 89 | extern void exit_itimers(struct signal_struct *); |
| 90 | 90 | ||
| 91 | extern long _do_fork(struct kernel_clone_args *kargs); | 91 | extern long _do_fork(struct kernel_clone_args *kargs); |
| 92 | extern bool legacy_clone_args_valid(const struct kernel_clone_args *kargs); | ||
| 92 | extern long do_fork(unsigned long, unsigned long, unsigned long, int __user *, int __user *); | 93 | extern long do_fork(unsigned long, unsigned long, unsigned long, int __user *, int __user *); |
| 93 | struct task_struct *fork_idle(int); | 94 | struct task_struct *fork_idle(int); |
| 94 | struct mm_struct *copy_init_mm(void); | 95 | struct mm_struct *copy_init_mm(void); |