mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-26 03:09:08 +00:00
Kernel: Use get_syscall_path_argument() in sys$execve()
Paths passed to sys$execve() should certainly be subject to all the usual path validation checks.
This commit is contained in:
@@ -1114,12 +1114,13 @@ int Process::sys$execve(const Syscall::SC_execve_params* user_params)
|
||||
if (params.arguments.length > ARG_MAX || params.environment.length > ARG_MAX)
|
||||
return -E2BIG;
|
||||
|
||||
auto path = validate_and_copy_string_from_user(params.path);
|
||||
if (path.is_null())
|
||||
return -EFAULT;
|
||||
|
||||
if (path.is_empty())
|
||||
return -ENOENT;
|
||||
String path;
|
||||
{
|
||||
auto path_arg = get_syscall_path_argument(params.path);
|
||||
if (path_arg.is_error())
|
||||
return path_arg.error();
|
||||
path = path_arg.value();
|
||||
}
|
||||
|
||||
auto copy_user_strings = [&](const auto& list, auto& output) {
|
||||
if (!list.length)
|
||||
|
||||
Reference in New Issue
Block a user