services: Change scmdatabase_remove_service to a void function.

Sebastian Lackner sebastian at fds-team.de
Wed Apr 20 03:14:34 CDT 2016


Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---

Not calling list_remove() might corrupt the list structure.

 programs/services/services.c |   11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/programs/services/services.c b/programs/services/services.c
index 234c0ac..ab80812 100644
--- a/programs/services/services.c
+++ b/programs/services/services.c
@@ -282,18 +282,11 @@ DWORD scmdatabase_add_service(struct scmdatabase *db, struct service_entry *serv
     return ERROR_SUCCESS;
 }
 
-static DWORD scmdatabase_remove_service(struct scmdatabase *db, struct service_entry *service)
+static void scmdatabase_remove_service(struct scmdatabase *db, struct service_entry *service)
 {
-    int err;
-
-    err = RegDeleteTreeW(db->root_key, service->name);
-
-    if (err != 0)
-        return err;
-
+    RegDeleteTreeW(db->root_key, service->name);
     list_remove(&service->entry);
     service->entry.next = service->entry.prev = NULL;
-    return ERROR_SUCCESS;
 }
 
 static void scmdatabase_autostart_services(struct scmdatabase *db)
-- 
2.7.1



More information about the wine-patches mailing list