[SERVICES]
authorThomas Faber <thomas.faber@reactos.org>
Thu, 19 May 2016 13:01:04 +0000 (13:01 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Thu, 19 May 2016 13:01:04 +0000 (13:01 +0000)
- On service stop, set Service->lpImage to NULL after calling ScmDereferenceServiceImage, so the same image is not dereferenced again on service deletion
- Do not call ScmDereferenceServiceImage in CreateServiceListEntry, as the service should never have an image there
CORE-11273 #resolve

svn path=/trunk/; revision=71355

reactos/base/system/services/database.c

index 98917d5..6af37cb 100644 (file)
@@ -566,8 +566,7 @@ done:;
 
     if (lpService != NULL)
     {
-        if (lpService->lpImage != NULL)
-            ScmDereferenceServiceImage(lpService->lpImage);
+        ASSERT(lpService->lpImage == NULL);
     }
 
     return dwError;
@@ -1085,6 +1084,7 @@ Done:
         dwControl == SERVICE_CONTROL_STOP)
     {
         ScmDereferenceServiceImage(Service->lpImage);
+        Service->lpImage = NULL;
     }
 
     LeaveCriticalSection(&ControlServiceCriticalSection);