https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5f4a4b35e63ccd6a39d054...
commit 5f4a4b35e63ccd6a39d054c29a44da3e6d8bea62 Author: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org AuthorDate: Sun Feb 25 16:09:21 2018 +0100 Commit: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org CommitDate: Sun Feb 25 16:11:00 2018 +0100
[ADVAPI32_APITEST] Open services & SCM handles with correct access rights; improve a check order. --- .../rostests/apitests/advapi32/LockServiceDatabase.c | 2 +- modules/rostests/apitests/advapi32/ServiceArgs.c | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/modules/rostests/apitests/advapi32/LockServiceDatabase.c b/modules/rostests/apitests/advapi32/LockServiceDatabase.c index 850cc4c70a..d52610a030 100644 --- a/modules/rostests/apitests/advapi32/LockServiceDatabase.c +++ b/modules/rostests/apitests/advapi32/LockServiceDatabase.c @@ -77,8 +77,8 @@ static void Test_LockUnlockServiceDatabase(void)
SetLastError(0xdeadbeef); hLock = LockServiceDatabase(hScm); - ok(hLock != NULL, "hLock = 0x%p, expected non-zero\n", hLock); ok_err(ERROR_SUCCESS); + ok(hLock != NULL, "hLock = 0x%p, expected non-zero\n", hLock);
/* Now unlock it */ if (hLock) diff --git a/modules/rostests/apitests/advapi32/ServiceArgs.c b/modules/rostests/apitests/advapi32/ServiceArgs.c index 18d9b82096..e50ca7bf9f 100644 --- a/modules/rostests/apitests/advapi32/ServiceArgs.c +++ b/modules/rostests/apitests/advapi32/ServiceArgs.c @@ -236,7 +236,7 @@ static SC_HANDLE register_service(PCWSTR extra_args)
trace("service_cmd "%ls"\n", service_cmd);
- service = CreateServiceW(scm_handle, service_nameW, service_nameW, GENERIC_ALL, + service = CreateServiceW(scm_handle, service_nameW, service_nameW, SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_DEMAND_START, SERVICE_ERROR_IGNORE, service_cmd, NULL, NULL, NULL, NULL, NULL); if (!service && GetLastError() == ERROR_ACCESS_DENIED) @@ -351,11 +351,11 @@ static void test_runner(BOOLEAN unicode, PCWSTR extra_args, int service_argc, vo thread = CreateThread(NULL, 0, pipe_thread, NULL, 0, NULL); ok(thread != NULL, "CreateThread failed: %lu\n", GetLastError()); if (!thread) - return; + goto Quit;
service_handle = register_service(extra_args); if (!service_handle) - return; + goto Quit;
//trace("starting...\n");
@@ -370,15 +370,20 @@ static void test_runner(BOOLEAN unicode, PCWSTR extra_args, int service_argc, vo CloseServiceHandle(service_handle);
ok(WaitForSingleObject(thread, 10000) == WAIT_OBJECT_0, "Timeout waiting for thread\n"); - CloseHandle(thread); - CloseHandle(pipe_handle); + +Quit: + if (thread) + CloseHandle(thread); + + if (pipe_handle != INVALID_HANDLE_VALUE) + CloseHandle(pipe_handle); }
START_TEST(ServiceArgs) { argc = winetest_get_mainargs(&argv);
- scm_handle = OpenSCManagerW(NULL, NULL, GENERIC_ALL); + scm_handle = OpenSCManagerW(NULL, NULL, SC_MANAGER_ALL_ACCESS); ok(scm_handle != NULL, "OpenSCManager failed: %lu\n", GetLastError()); if (!scm_handle) {