From 96d00358954807095418da56421467f2f93dd905 Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Tue, 26 May 2026 16:32:00 -0400 Subject: [Windows] Fix x64 platform view init race condition This mirrors the fix that was performed on the x86 platform --- platform/windows/platform_windows.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/platform/windows/platform_windows.cpp b/platform/windows/platform_windows.cpp index b4b7c55d..612e5cf5 100644 --- a/platform/windows/platform_windows.cpp +++ b/platform/windows/platform_windows.cpp @@ -92,6 +92,7 @@ class WindowsX64Platform: public Platform { uint32_t m_gsbase; Ref m_teb; + std::mutex m_tebMutex; public: WindowsX64Platform(Architecture* arch): Platform(arch, "windows-x86_64") @@ -113,6 +114,8 @@ public: virtual void BinaryViewInit(BinaryView* view) override { + // Locking here so that if we have two views in BinaryViewInit at once we don't race to init m_teb. + std::lock_guard lock(m_tebMutex); if (!m_teb) m_teb = Type::PointerType(GetArchitecture()->GetAddressSize(), Type::NamedType(QualifiedName("TEB"), GetTypeByName(QualifiedName("TEB")))); } -- cgit v1.3.1