summaryrefslogtreecommitdiff
path: root/kern/thread.c
diff options
context:
space:
mode:
authorFlavio Cruz <flaviocruz@gmail.com>2024-02-25 01:46:38 -0500
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2024-02-28 13:21:54 +0100
commited1ca4b8c1db9b6578eab3ff8807bb1a174aaccc (patch)
treee42426702e2cc652135dd6446fd78aea33bb20cc /kern/thread.c
parente5872f2d6a0129dfc4a564b8af8a0f45dcdce86c (diff)
Check for null ports in task_set_essential, task_set_name and thread_set_name.
Otherwise, it is easy to crash the kernel if userland passes arbitrary port names. Message-ID: <ZdriTgNhPsfu7c2M@jupiter.tail36e24.ts.net>
Diffstat (limited to 'kern/thread.c')
-rw-r--r--kern/thread.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kern/thread.c b/kern/thread.c
index 2eab1ca4..eb73590c 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;