Index: src/ch/ClipboardMonitor.cpp =================================================================== diff -u -N -ra27d1acf1bda3c25b6dcce0d0eb0278009ce63ae -r87efd9079c796add662b1189e84ca62472d2b757 --- src/ch/ClipboardMonitor.cpp (.../ClipboardMonitor.cpp) (revision a27d1acf1bda3c25b6dcce0d0eb0278009ce63ae) +++ src/ch/ClipboardMonitor.cpp (.../ClipboardMonitor.cpp) (revision 87efd9079c796add662b1189e84ca62472d2b757) @@ -181,17 +181,21 @@ if(bShutdown) { // adjust token privileges for NT - HANDLE hToken=NULL; - TOKEN_PRIVILEGES tp; + HANDLE hToken = nullptr; + TOKEN_PRIVILEGES tp = { 0 }; if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken) && LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tp.Privileges[0].Luid)) { tp.PrivilegeCount=1; tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, &tp, NULL, NULL, NULL); + } + if(hToken) + CloseHandle(hToken); + BOOL bExit=ExitWindowsEx(EWX_POWEROFF | EWX_SHUTDOWN | (GetPropValue(GetConfig()) ? EWX_FORCE : 0), 0); if (bExit) return 1;