Module: wine Branch: master Commit: 13bb213aeb65b657a57adbf486ddb73da78dffbc URL: http://source.winehq.org/git/wine.git/?a=commit;h=13bb213aeb65b657a57adbf486...
Author: Sebastian Lackner sebastian@fds-team.de Date: Wed Aug 17 09:36:59 2016 +0200
advapi32: Hold lock while handling service thread shutdown.
Signed-off-by: Sebastian Lackner sebastian@fds-team.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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; }