Module: wine Branch: master Commit: 63c36da6da2f1da6fc4b184b5101503ad2996f81 URL: http://source.winehq.org/git/wine.git/?a=commit;h=63c36da6da2f1da6fc4b184b51...
Author: Sebastian Lackner sebastian@fds-team.de Date: Wed Aug 17 09:36:13 2016 +0200
advapi32: Hold lock while processing service controls.
Signed-off-by: Sebastian Lackner sebastian@fds-team.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/advapi32/service.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/dlls/advapi32/service.c b/dlls/advapi32/service.c index ccca721..11186c5 100644 --- a/dlls/advapi32/service.c +++ b/dlls/advapi32/service.c @@ -461,6 +461,8 @@ static DWORD WINAPI service_control_dispatcher(LPVOID arg) } }
+ EnterCriticalSection( &service_cs ); + /* validate service name */ name = (WCHAR *)data; if (!info.name_size || data_size < info.name_size * sizeof(WCHAR) || name[info.name_size - 1]) @@ -504,6 +506,7 @@ static DWORD WINAPI service_control_dispatcher(LPVOID arg) }
done: + LeaveCriticalSection( &service_cs ); WriteFile( disp->pipe, &result, sizeof(result), &count, NULL ); heap_free( data ); }