From a2e50fc2abd2d544ca2d2a884067bcd2e3b4b35b Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 21 Dec 2008 02:34:34 +0000 Subject: [PATCH] close the handle returned by OpenProcessToken() (fixes #10129) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/utils.cpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp index f6097b5801..328839265a 100644 --- a/src/msw/utils.cpp +++ b/src/msw/utils.cpp @@ -944,18 +944,23 @@ bool wxShutdown(int WXUNUSED_IN_WINCE(flags)) TOKEN_PRIVILEGES tkp; // Get the LUID for the shutdown privilege. - ::LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, - &tkp.Privileges[0].Luid); + bOK = ::LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, + &tkp.Privileges[0].Luid) != 0; - tkp.PrivilegeCount = 1; // one privilege to set - tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; + if ( bOK ) + { + tkp.PrivilegeCount = 1; // one privilege to set + tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; + + // Get the shutdown privilege for this process. + ::AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, + (PTOKEN_PRIVILEGES)NULL, 0); - // Get the shutdown privilege for this process. - ::AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, - (PTOKEN_PRIVILEGES)NULL, 0); + // Cannot test the return value of AdjustTokenPrivileges. + bOK = ::GetLastError() == ERROR_SUCCESS; + } - // Cannot test the return value of AdjustTokenPrivileges. - bOK = ::GetLastError() == ERROR_SUCCESS; + ::CloseHandle(hToken); } } -- 2.50.0