diff --git a/Core/GameEngine/Source/GameClient/GUI/GameWindowManagerScript.cpp b/Core/GameEngine/Source/GameClient/GUI/GameWindowManagerScript.cpp index 2b37cc9c372..707a2af254e 100644 --- a/Core/GameEngine/Source/GameClient/GUI/GameWindowManagerScript.cpp +++ b/Core/GameEngine/Source/GameClient/GUI/GameWindowManagerScript.cpp @@ -2784,6 +2784,8 @@ GameWindow *GameWindowManager::winCreateFromScript( AsciiString filenameString, { DEBUG_LOG(( "WinCreateFromScript: Error parsing layout block" )); + inFile->close(); + inFile = nullptr; return nullptr; } diff --git a/Core/GameEngine/Source/GameClient/System/Image.cpp b/Core/GameEngine/Source/GameClient/System/Image.cpp index 887fb8a63d7..5d433a74b12 100644 --- a/Core/GameEngine/Source/GameClient/System/Image.cpp +++ b/Core/GameEngine/Source/GameClient/System/Image.cpp @@ -252,8 +252,10 @@ void ImageCollection::load( Int textureSize ) if(TheGlobalData) { userDataPath.format("%sINI\\MappedImages\\*.ini",TheGlobalData->getPath_UserData().str()); - if(FindFirstFile(userDataPath.str(), &findData) !=INVALID_HANDLE_VALUE) + HANDLE findHandle = FindFirstFile(userDataPath.str(), &findData); + if(findHandle != INVALID_HANDLE_VALUE) { + FindClose(findHandle); userDataPath.format("%sINI\\MappedImages",TheGlobalData->getPath_UserData().str()); ini.loadDirectory(userDataPath, INI_LOAD_OVERWRITE, nullptr ); } diff --git a/Core/GameEngine/Source/GameNetwork/GameSpy/MainMenuUtils.cpp b/Core/GameEngine/Source/GameNetwork/GameSpy/MainMenuUtils.cpp index f35a947ae0e..caad007a155 100644 --- a/Core/GameEngine/Source/GameNetwork/GameSpy/MainMenuUtils.cpp +++ b/Core/GameEngine/Source/GameNetwork/GameSpy/MainMenuUtils.cpp @@ -754,6 +754,7 @@ int asyncGethostbyname(char * szName) /* Thread finished */ stat = 0; s_asyncDNSLookupInProgress = FALSE; + CloseHandle(s_asyncDNSThreadHandle); s_asyncDNSThreadHandle = nullptr; return( (s_asyncDNSThreadSucceeded)?LOOKUP_SUCCEEDED:LOOKUP_FAILED ); } @@ -811,6 +812,7 @@ void StopAsyncDNSCheck() MAYBE_UNUSED Int res = TerminateThread(s_asyncDNSThreadHandle, 0); (void)res; DEBUG_ASSERTCRASH(res, ("Could not terminate the Async DNS Lookup thread!")); // Thread still not killed! + CloseHandle(s_asyncDNSThreadHandle); } s_asyncDNSThreadHandle = nullptr; s_asyncDNSLookupInProgress = FALSE;