[3/4] advapi32: Hold lock while handling service thread shutdown.
Sebastian Lackner
sebastian at fds-team.de
Wed Aug 17 02:36:59 CDT 2016
Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---
dlls/advapi32/service.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/advapi32/service.c b/dlls/advapi32/service.c
index 11186c5..d6bd14c 100644
--- a/dlls/advapi32/service.c
+++ b/dlls/advapi32/service.c
@@ -625,8 +625,11 @@ static BOOL service_run_main_thread(void)
}
else if (ret < n)
{
- services[wait_services[ret]]->thread = 0;
- CloseHandle( wait_handles[ret] );
+ i = wait_services[ret];
+ EnterCriticalSection( &service_cs );
+ CloseHandle( services[i]->thread );
+ services[i]->thread = NULL;
+ LeaveCriticalSection( &service_cs );
}
else return FALSE;
}
--
2.9.0
More information about the wine-patches
mailing list