Piotr Caban : services: Don't double release process in service_start.
Alexandre Julliard
julliard at winehq.org
Mon Nov 25 09:12:27 CST 2019
Module: wine
Branch: stable
Commit: beeadfb055c17887b16bc38295f3fe735dd16193
URL: https://source.winehq.org/git/wine.git/?a=commit;h=beeadfb055c17887b16bc38295f3fe735dd16193
Author: Piotr Caban <piotr at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 496380709dfdeccd2ff12358e5bdb5b7b8338ac2)
Signed-off-by: Michael Stefaniuc <mstefani at 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);
}
More information about the wine-cvs
mailing list