[NTMARTA]
authorThomas Faber <thomas.faber@reactos.org>
Sat, 8 Aug 2015 16:37:55 +0000 (16:37 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sat, 8 Aug 2015 16:37:55 +0000 (16:37 +0000)
- In AccpOpenNamedObject, immediately save the last error in case of OpenService failure instead of calling another function in between.
CORE-9990 #resolve

svn path=/trunk/; revision=68636

reactos/dll/win32/ntmarta/ntmarta.c

index 5549949..cc293b1 100644 (file)
@@ -1068,7 +1068,9 @@ ParseRegErr:
                                              (DWORD)DesiredAccess);
             if (*Handle2 == NULL)
             {
-                goto FailOpenService;
+                Ret = GetLastError();
+                ASSERT(Ret != ERROR_SUCCESS);
+                goto Cleanup;
             }
 
             DesiredAccess &= ~SC_MANAGER_CONNECT;
@@ -1077,13 +1079,11 @@ ParseRegErr:
                                           (DWORD)DesiredAccess);
             if (*Handle == NULL)
             {
-                if (*Handle2 != NULL)
-                {
-                    CloseServiceHandle((SC_HANDLE)(*Handle2));
-                }
-
-FailOpenService:
                 Ret = GetLastError();
+                ASSERT(Ret != ERROR_SUCCESS);
+                ASSERT(*Handle2 != NULL);
+                CloseServiceHandle((SC_HANDLE)(*Handle2));
+
                 goto Cleanup;
             }
             break;