[SERVICES]
authorEric Kohl <eric.kohl@reactos.org>
Sat, 16 Jun 2012 20:00:55 +0000 (20:00 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Sat, 16 Jun 2012 20:00:55 +0000 (20:00 +0000)
Improve a check in RQueryServiceConfig2W and RQueryServiceConfig2A
Patch by Hermès Bélusca.

See issue #7123 for more details.

svn path=/trunk/; revision=56739

reactos/base/system/services/rpcserver.c

index 634f1b1..71a5de3 100644 (file)
@@ -5268,7 +5268,7 @@ DWORD RQueryServiceConfig2A(
         }
 
         /* Now we can fill the buffer */
-        if (dwType == REG_BINARY)
+        if (dwError != ERROR_FILE_NOT_FOUND && dwType == REG_BINARY)
         {
             dwError = RegQueryValueExW(hServiceKey,
                                        L"FailureActions",
@@ -5284,7 +5284,11 @@ DWORD RQueryServiceConfig2A(
         }
         else
         {
-            dwError = ERROR_UNSUPPORTED_TYPE;
+            /*
+             * The value of the error doesn't really matter, the only
+             * important thing is that it must be != ERROR_SUCCESS .
+             */
+            dwError = ERROR_INVALID_DATA;
         }
 
         if (dwError == ERROR_SUCCESS)
@@ -5492,7 +5496,7 @@ DWORD RQueryServiceConfig2W(
         }
 
         /* Now we can fill the buffer */
-        if (dwType == REG_BINARY)
+        if (dwError != ERROR_FILE_NOT_FOUND && dwType == REG_BINARY)
         {
             dwError = RegQueryValueExW(hServiceKey,
                                        L"FailureActions",
@@ -5508,7 +5512,11 @@ DWORD RQueryServiceConfig2W(
         }
         else
         {
-            dwError = ERROR_UNSUPPORTED_TYPE;
+            /*
+             * The value of the error doesn't really matter, the only
+             * important thing is that it must be != ERROR_SUCCESS .
+             */
+            dwError = ERROR_INVALID_DATA;
         }
 
         if (dwError == ERROR_SUCCESS)