server: Make sure that last error doesn't get set during thread cleanup.
This commit is contained in:
parent
60efdd55ea
commit
e4faa12900
|
@ -30,6 +30,7 @@
|
|||
#define WIN32_NO_STATUS
|
||||
#include "request.h"
|
||||
#include "object.h"
|
||||
#include "process.h"
|
||||
#include "user.h"
|
||||
#include "winuser.h"
|
||||
#include "winternl.h"
|
||||
|
@ -112,9 +113,10 @@ static struct clipboard *get_process_clipboard(void)
|
|||
void cleanup_clipboard_thread(struct thread *thread)
|
||||
{
|
||||
struct clipboard *clipboard;
|
||||
struct winstation *winstation = get_process_winstation( thread->process, WINSTA_ACCESSCLIPBOARD );
|
||||
struct winstation *winstation;
|
||||
|
||||
if (!winstation) return;
|
||||
if (!thread->process->winstation) return;
|
||||
if (!(winstation = get_process_winstation( thread->process, WINSTA_ACCESSCLIPBOARD ))) return;
|
||||
|
||||
if ((clipboard = winstation->clipboard))
|
||||
{
|
||||
|
|
|
@ -114,9 +114,10 @@ static struct hook_table *alloc_hook_table(void)
|
|||
static struct hook_table *get_global_hooks( struct thread *thread )
|
||||
{
|
||||
struct hook_table *table;
|
||||
struct desktop *desktop = get_thread_desktop( thread, 0 );
|
||||
struct desktop *desktop;
|
||||
|
||||
if (!desktop) return NULL;
|
||||
if (!thread->desktop) return NULL;
|
||||
if (!(desktop = get_thread_desktop( thread, 0 ))) return NULL;
|
||||
table = desktop->global_hooks;
|
||||
release_object( desktop );
|
||||
return table;
|
||||
|
|
|
@ -632,6 +632,8 @@ static void process_killed( struct process *process )
|
|||
handles = process->handles;
|
||||
process->handles = NULL;
|
||||
if (handles) release_object( handles );
|
||||
process->winstation = 0;
|
||||
process->desktop = 0;
|
||||
|
||||
/* close the console attached to this process, if any */
|
||||
free_console( process );
|
||||
|
|
Loading…
Reference in New Issue