Applied, thanks!
Flavio Cruz, le dim. 25 févr. 2024 01:46:38 -0500, a ecrit:
> Otherwise, it is easy to crash the kernel if userland passes arbitrary port
> names.
> ---
> kern/task.c | 6 ++++++
> kern/thread.c | 3 +++
> 2 files changed, 9 insertions(+)
>
> diff --git a/kern/task.c b/kern/task.c
> index 60ab4d7..dfba04d 100644
> --- a/kern/task.c
> +++ b/kern/task.c
> @@ -1165,6 +1165,9 @@ task_set_name(
> task_t task,
> const_kernel_debug_name_t name)
> {
> + if (task == TASK_NULL)
> + return KERN_INVALID_ARGUMENT;
> +
> strncpy(task->name, name, sizeof task->name - 1);
> task->name[sizeof task->name - 1] = '\0';
> return KERN_SUCCESS;
> @@ -1181,6 +1184,9 @@ task_set_essential(
> task_t task,
> boolean_t essential)
> {
> + if (task == TASK_NULL)
> + return KERN_INVALID_ARGUMENT;
> +
> task->essential = !!essential;
> return KERN_SUCCESS;
> }
> diff --git a/kern/thread.c b/kern/thread.c
> index 2eab1ca..eb73590 100644
> --- a/kern/thread.c
> +++ b/kern/thread.c
> @@ -2640,6 +2640,9 @@ thread_set_name(
> thread_t thread,
> const_kernel_debug_name_t name)
> {
> + if (thread == THREAD_NULL)
> + return KERN_INVALID_ARGUMENT;
> +
> strncpy(thread->name, name, sizeof thread->name - 1);
> thread->name[sizeof thread->name - 1] = '\0';
> return KERN_SUCCESS;
> --
> 2.39.2