Merge tag 'v5.4-rc7' into android-mainline
Linux 5.4-rc7 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I505207a0a6f68ccc3519d7f190d8faf25d9d479a
This commit is contained in:
@@ -2568,7 +2568,35 @@ noinline static int copy_clone_args_from_user(struct kernel_clone_args *kargs,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool clone3_args_valid(const struct kernel_clone_args *kargs)
|
||||
/**
|
||||
* clone3_stack_valid - check and prepare stack
|
||||
* @kargs: kernel clone args
|
||||
*
|
||||
* Verify that the stack arguments userspace gave us are sane.
|
||||
* In addition, set the stack direction for userspace since it's easy for us to
|
||||
* determine.
|
||||
*/
|
||||
static inline bool clone3_stack_valid(struct kernel_clone_args *kargs)
|
||||
{
|
||||
if (kargs->stack == 0) {
|
||||
if (kargs->stack_size > 0)
|
||||
return false;
|
||||
} else {
|
||||
if (kargs->stack_size == 0)
|
||||
return false;
|
||||
|
||||
if (!access_ok((void __user *)kargs->stack, kargs->stack_size))
|
||||
return false;
|
||||
|
||||
#if !defined(CONFIG_STACK_GROWSUP) && !defined(CONFIG_IA64)
|
||||
kargs->stack += kargs->stack_size;
|
||||
#endif
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool clone3_args_valid(struct kernel_clone_args *kargs)
|
||||
{
|
||||
/*
|
||||
* All lower bits of the flag word are taken.
|
||||
@@ -2588,6 +2616,9 @@ static bool clone3_args_valid(const struct kernel_clone_args *kargs)
|
||||
kargs->exit_signal)
|
||||
return false;
|
||||
|
||||
if (!clone3_stack_valid(kargs))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user