Sebastian Lackner : services: Initialize service ref_count directly in service_create.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Mar 16 11:36:41 CDT 2016


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

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Wed Mar 16 04:30:56 2016 +0100

services: Initialize service ref_count directly in service_create.

Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/services/rpc.c      | 1 -
 programs/services/services.c | 2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/programs/services/rpc.c b/programs/services/rpc.c
index 933f18d..cdac948 100644
--- a/programs/services/rpc.c
+++ b/programs/services/rpc.c
@@ -507,7 +507,6 @@ static DWORD create_serviceW(
         return err;
     }
 
-    entry->ref_count = 1;
     entry->is_wow64 = is_wow64;
     entry->config.dwServiceType = entry->status.dwServiceType = dwServiceType;
     entry->config.dwStartType = dwStartType;
diff --git a/programs/services/services.c b/programs/services/services.c
index 9f7e889..03df852 100644
--- a/programs/services/services.c
+++ b/programs/services/services.c
@@ -107,6 +107,7 @@ DWORD service_create(LPCWSTR name, struct service_entry **entry)
         HeapFree(GetProcessHeap(), 0, *entry);
         return err;
     }
+    (*entry)->ref_count = 1;
     (*entry)->status.dwCurrentState = SERVICE_STOPPED;
     (*entry)->status.dwWin32ExitCode = ERROR_SERVICE_NEVER_STARTED;
     (*entry)->preshutdown_timeout = default_preshutdown_timeout;
@@ -557,6 +558,7 @@ static DWORD scmdatabase_load_services(struct scmdatabase *db)
         entry->db = db;
 
         list_add_tail(&db->services, &entry->entry);
+        release_service(entry);
     }
     return ERROR_SUCCESS;
 }




More information about the wine-cvs mailing list