Piotr Caban : services: Don't double release process in service_start.
Module: wine Branch: stable Commit: beeadfb055c17887b16bc38295f3fe735dd16193 URL: https://source.winehq.org/git/wine.git/?a=commit;h=beeadfb055c17887b16bc3829... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Mon May 27 17:36:17 2019 +0200 services: Don't double release process in service_start. Fixes a crash while running ntoskrnl tests. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 496380709dfdeccd2ff12358e5bdb5b7b8338ac2) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- programs/services/services.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/programs/services/services.c b/programs/services/services.c index 3de46bd200..8bb4567798 100644 --- a/programs/services/services.c +++ b/programs/services/services.c @@ -1066,10 +1066,13 @@ DWORD service_start(struct service_entry *service, DWORD service_argc, LPCWSTR * if (err != ERROR_SUCCESS) { service_lock(service); - service->status.dwCurrentState = SERVICE_STOPPED; - service->process = NULL; - if (!--process->use_count) process_terminate(process); - release_process(process); + if (service->process) + { + service->status.dwCurrentState = SERVICE_STOPPED; + service->process = NULL; + if (!--process->use_count) process_terminate(process); + release_process(process); + } service_unlock(service); }
participants (1)
-
Alexandre Julliard