diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index 114bd35c86..1dd119ecf5 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -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)