- Fix returned length for RGetServiceKeyNameW

- Perform parameters check in right order in ROpenServiceW

svn path=/trunk/; revision=39420
This commit is contained in:
Johannes Anderwald 2009-02-05 20:18:11 +00:00
parent c6c028fe41
commit e35599aa1e

View file

@ -2445,12 +2445,6 @@ DWORD ROpenServiceW(
if (ScmShutdown)
return ERROR_SHUTDOWN_IN_PROGRESS;
if (!lpServiceHandle)
return ERROR_INVALID_PARAMETER;
if (!lpServiceName)
return ERROR_INVALID_ADDRESS;
hManager = (PMANAGER_HANDLE)hSCManager;
if (!hManager || hManager->Handle.Tag != MANAGER_TAG)
{
@ -2458,6 +2452,12 @@ DWORD ROpenServiceW(
return ERROR_INVALID_HANDLE;
}
if (!lpServiceHandle)
return ERROR_INVALID_PARAMETER;
if (!lpServiceName)
return ERROR_INVALID_ADDRESS;
/* FIXME: Lock the service list */
/* Get service database entry */
@ -2872,7 +2872,7 @@ DWORD RGetServiceKeyNameW(
dwError = (*lpcchBuffer > dwLength) ? ERROR_SUCCESS : ERROR_INSUFFICIENT_BUFFER;
*lpcchBuffer = dwLength * 2;
*lpcchBuffer = dwLength;
return dwError;
}