diff --git a/src/core/libraries/kernel/threads/thread_state.cpp b/src/core/libraries/kernel/threads/thread_state.cpp index d5ca475fe..614955b97 100644 --- a/src/core/libraries/kernel/threads/thread_state.cpp +++ b/src/core/libraries/kernel/threads/thread_state.cpp @@ -100,7 +100,9 @@ Pthread* ThreadState::Alloc(Pthread* curthread) { tcb = TcbCtor(thread, 1 /* initial tls */); } if (tcb != nullptr) { - memset(thread, 0, sizeof(Pthread)); + // Initialize thread struct memory to 0. This is safe since it will be constructed + // immediately after. + std::memset(static_cast(thread), 0, sizeof(Pthread)); std::construct_at(thread); thread->tcb = tcb; thread->sleepqueue = new SleepQueue{};