From aef44b5a71d6d2bd8e399d2cb35bce6d6023fbf8 Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Fri, 7 Sep 2018 07:05:32 +0200 Subject: [PATCH] Cppcheck: release the handle that CreateThread returns Change-Id: I4d6d04873d69d2ff1e5409372b353e0bb9a5d68d Reviewed-on: https://gerrit.libreoffice.org/60120 Reviewed-by: Noel Grandin Tested-by: Jenkins Reviewed-by: Mike Kaganski --- dtrans/test/win32/dnd/atlwindow.cxx | 2 +- sal/osl/w32/dllentry.cxx | 6 +++++- sfx2/source/appl/shutdowniconw32.cxx | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/dtrans/test/win32/dnd/atlwindow.cxx b/dtrans/test/win32/dnd/atlwindow.cxx index 7aa0df7ce0ac..9e1e2e1fc693 100644 --- a/dtrans/test/win32/dnd/atlwindow.cxx +++ b/dtrans/test/win32/dnd/atlwindow.cxx @@ -181,7 +181,7 @@ LRESULT AWindow::OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled data.evtThreadReady= CreateEvent( NULL, FALSE, FALSE, NULL); - HANDLE hThread= CreateThread( NULL, 0, MTAFunc, &data, 0, &mtaThreadId); + CloseHandle(CreateThread(NULL, 0, MTAFunc, &data, 0, &mtaThreadId)); // We must wait until the thread copied the ThreadData structure WaitForSingleObject( data.evtThreadReady, INFINITE); CloseHandle( data.evtThreadReady); diff --git a/sal/osl/w32/dllentry.cxx b/sal/osl/w32/dllentry.cxx index 8e8c0feda62c..e9323248e3db 100644 --- a/sal/osl/w32/dllentry.cxx +++ b/sal/osl/w32/dllentry.cxx @@ -221,13 +221,17 @@ BOOL WINAPI DllMain( HINSTANCE, DWORD fdwReason, LPVOID ) { // No error check, it works or it does not // Thread should only be started for headless mode, see desktop/win32/source/officeloader.cxx - CreateThread( nullptr, 0, ParentMonitorThreadProc, reinterpret_cast(dwParentProcessId), 0, &dwThreadId ); + HANDLE hThread + = CreateThread(nullptr, 0, ParentMonitorThreadProc, + reinterpret_cast(dwParentProcessId), 0, &dwThreadId); // Note: calling CreateThread in DllMain is discouraged // but this is only done in the headless mode and in // that case no other threads should be running at startup // when sal3.dll is loaded; also there is no // synchronization with the spawned thread, so there // does not appear to be a real risk of deadlock here + if (hThread) + CloseHandle(hThread); } } diff --git a/sfx2/source/appl/shutdowniconw32.cxx b/sfx2/source/appl/shutdowniconw32.cxx index 8ff9c621009d..47fb95c37f4a 100644 --- a/sfx2/source/appl/shutdowniconw32.cxx +++ b/sfx2/source/appl/shutdowniconw32.cxx @@ -528,7 +528,7 @@ void win32_init_sys_tray() ); DWORD dwThreadId; - CreateThread( nullptr, 0, SystrayThread, nullptr, 0, &dwThreadId ); + CloseHandle(CreateThread(nullptr, 0, SystrayThread, nullptr, 0, &dwThreadId)); } } -- 2.18.1