Sebastian Lackner : advapi32: Hold lock while handling service thread shutdown.

Alexandre Julliard julliard at winehq.org
Wed Aug 17 10:24:24 CDT 2016


Module: wine
Branch: master
Commit: 13bb213aeb65b657a57adbf486ddb73da78dffbc
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=13bb213aeb65b657a57adbf486ddb73da78dffbc

Author: Sebastian Lackner <sebastian at 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 at fds-team.de>
Signed-off-by: Alexandre Julliard <julliard at 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;
     }




More information about the wine-cvs mailing list