File tree Expand file tree Collapse file tree
GeneralsMD/Code/GameEngine/Source/GameNetwork/GeneralsOnline Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -195,9 +195,6 @@ void HTTPManager::Initialize()
195195{
196196 CHECK_MAIN_THREAD;
197197
198- // Initialize libcurl global state
199- curl_global_init (CURL_GLOBAL_DEFAULT);
200-
201198 m_pCurl = curl_multi_init ();
202199 m_bProxyEnabled = DeterminePlatformProxySettings ();
203200}
Original file line number Diff line number Diff line change @@ -987,6 +987,11 @@ void NGMP_OnlineServicesManager::Tick()
987987
988988void NGMP_OnlineServicesManager::InitSentry ()
989989{
990+ // Initialize libcurl global state here, before any plugins (e.g. EasyAntiCheat) are loaded.
991+ // This ensures libcurl's internal mutexes are fully initialized before the EAC plugin
992+ // attempts to use them, preventing an access violation in mtx_do_lock on null mutex state.
993+ curl_global_init (CURL_GLOBAL_DEFAULT);
994+
990995#if !_DEBUG
991996 std::string strDumpPath = std::format (" {}/GeneralsOnlineCrashData/" , TheGlobalData->getPath_UserData ().str ());
992997 if (!std::filesystem::exists (strDumpPath))
You can’t perform that action at this time.
0 commit comments