On 2015-02-13 00:35, hbelusca(a)svn.reactos.org wrote:
+ if (LSData->Session->UserToken != NULL
&&
+ !ImpersonateLoggedOnUser(LSData->Session->UserToken))
+ {
+ ERR("ImpersonateLoggedOnUser() failed with error %lu\n",
GetLastError());
+ return 0;
+ }
+
+ /* Attempt to kill remaining processes. No notifications needed. */
+ if (!ExitWindowsEx(EWX_CALLER_WINLOGON | EWX_NONOTIFY | EWX_FORCE | EWX_LOGOFF, 0))
+ {
+ ERR("Unable to kill COM apps, error %lu\n", GetLastError());
+ RevertToSelf();
+ return 0;
+ }
+
+ if (LSData->Session->UserToken)
+ RevertToSelf();
Sounds like the RevertToSelf() call in the error case should not be
unconditional.