diff --git a/Kernel/Syscalls/mmap.cpp b/Kernel/Syscalls/mmap.cpp index dd0cc61204..3a44c41b1c 100644 --- a/Kernel/Syscalls/mmap.cpp +++ b/Kernel/Syscalls/mmap.cpp @@ -578,12 +578,18 @@ KResultOr Process::sys$allocate_tls(Userspace initial_data return EFAULT; Thread* main_thread = nullptr; - for_each_thread([&main_thread](auto& thread) { + bool multiple_threads = false; + for_each_thread([&main_thread, &multiple_threads](auto& thread) { + if (main_thread) + multiple_threads = true; main_thread = &thread; return IterationDecision::Break; }); VERIFY(main_thread); + if (multiple_threads) + return EINVAL; + auto range = space().allocate_range({}, size); if (!range.has_value()) return ENOMEM;