advapi32/service: Handle is checked before servicename.

This commit is contained in:
Paul Vriens 2007-07-23 21:07:55 +02:00 committed by Alexandre Julliard
parent fc4c73902a
commit 83d8cbcc48
2 changed files with 12 additions and 13 deletions

View File

@ -2273,12 +2273,6 @@ BOOL WINAPI GetServiceDisplayNameA( SC_HANDLE hSCManager, LPCSTR lpServiceName,
TRACE("%p %s %p %p\n", hSCManager,
debugstr_a(lpServiceName), lpDisplayName, lpcchBuffer);
if (!lpServiceName)
{
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
hscm = sc_handle_get_handle_data(hSCManager, SC_HTYPE_MANAGER);
if (!hscm)
{
@ -2286,6 +2280,12 @@ BOOL WINAPI GetServiceDisplayNameA( SC_HANDLE hSCManager, LPCSTR lpServiceName,
return FALSE;
}
if (!lpServiceName)
{
SetLastError(ERROR_INVALID_ADDRESS);
return FALSE;
}
size = *lpcchBuffer;
ret = RegGetValueA(hscm->hkey, lpServiceName, "DisplayName", RRF_RT_REG_SZ, &type, lpDisplayName, &size);
if (!ret && !lpDisplayName && size)
@ -2320,12 +2320,6 @@ BOOL WINAPI GetServiceDisplayNameW( SC_HANDLE hSCManager, LPCWSTR lpServiceName,
TRACE("%p %s %p %p\n", hSCManager,
debugstr_w(lpServiceName), lpDisplayName, lpcchBuffer);
if (!lpServiceName)
{
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
hscm = sc_handle_get_handle_data(hSCManager, SC_HTYPE_MANAGER);
if (!hscm)
{
@ -2333,6 +2327,12 @@ BOOL WINAPI GetServiceDisplayNameW( SC_HANDLE hSCManager, LPCWSTR lpServiceName,
return FALSE;
}
if (!lpServiceName)
{
SetLastError(ERROR_INVALID_ADDRESS);
return FALSE;
}
size = *lpcchBuffer * sizeof(WCHAR);
ret = RegGetValueW(hscm->hkey, lpServiceName, szDisplayName, RRF_RT_REG_SZ, &type, lpDisplayName, &size);
if (!ret && !lpDisplayName && size)

View File

@ -392,7 +392,6 @@ static void test_get_displayname(void)
SetLastError(0xdeadbeef);
ret = GetServiceDisplayNameA(NULL, NULL, NULL, &displaysize);
ok(!ret, "Expected failure\n");
todo_wine
ok(GetLastError() == ERROR_INVALID_HANDLE,
"Expected ERROR_INVALID_HANDLE, got %d\n", GetLastError());