[PATCH v2] fork: check exit_signal passed in clone3() call
From: Eugene Syromiatnikov
Date: Tue Sep 10 2019 - 13:59:16 EST
After some consideration, I've decided to utilise Oleg's proposal
"(args.exit_signal & ~((u64)CSIGNAL))" as a check. I still don't like
it, as it mixes argument copy check (I'm not sure if it's ever needed,
however, as I'm not sure if there's a reason for exit_signal field
of struct kernel_clone_args to have int type) with argument sanity
check; moreover, it covers only clone3 case, and the code in
copy_process is still error-prone in the long run. Ideally, the check
should be somewhere in the one place, but as of now this one place
is likely _do_fork, but it's kinda weir to have argument check there
as of now.
Changes since v1:
- Check changed to comparison against negated CSIGNAL to address
the bug reported by Oleg.
- Added a comment to _do_fork that exit_signal has to be checked
by the caller.
Eugene Syromiatnikov (1):
fork: check exit_signal passed in clone3() call
kernel/fork.c | 12 ++++++++++++
1 file changed, 12 insertions(+)