Sebastian Lackner : advapi32: Hold lock while handling service thread shutdown.
Module: wine Branch: master Commit: 13bb213aeb65b657a57adbf486ddb73da78dffbc URL: http://source.winehq.org/git/wine.git/?a=commit;h=13bb213aeb65b657a57adbf486... Author: Sebastian Lackner <sebastian(a)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(a)fds-team.de> Signed-off-by: Alexandre Julliard <julliard(a)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; }
participants (1)
-
Alexandre Julliard