[2/4] advapi32: Hold lock while processing service controls.
Sebastian Lackner
sebastian at fds-team.de
Wed Aug 17 02:36:13 CDT 2016
Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---
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 );
}
--
2.9.0
More information about the wine-patches
mailing list