From 7e1506ff23d6a363d8972841c78b57e947cdccf1 Mon Sep 17 00:00:00 2001 From: Gliniak <153369+Gliniak@users.noreply.github.com> Date: Sat, 31 Jan 2026 18:32:52 +0100 Subject: [PATCH] [Kernel] XThread: Added mutex to set_name. There is a small chance that game will spam requests for thread name change which will cause invalid free --- src/xenia/kernel/xthread.cc | 1 + src/xenia/kernel/xthread.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/xenia/kernel/xthread.cc b/src/xenia/kernel/xthread.cc index 06e1db001..88523c80a 100644 --- a/src/xenia/kernel/xthread.cc +++ b/src/xenia/kernel/xthread.cc @@ -136,6 +136,7 @@ void XThread::set_last_error(uint32_t error_code) { } void XThread::set_name(const std::string_view name) { + std::lock_guard lock(thread_lock_); thread_name_ = fmt::format("{} ({:08X})", name, handle()); if (thread_) { diff --git a/src/xenia/kernel/xthread.h b/src/xenia/kernel/xthread.h index 4884ba3e5..d4ec9e848 100644 --- a/src/xenia/kernel/xthread.h +++ b/src/xenia/kernel/xthread.h @@ -465,6 +465,8 @@ class XThread : public XObject, public cpu::Thread { bool running_ = false; int32_t priority_ = 0; + + std::mutex thread_lock_; }; class XHostThread : public XThread {