From e35599aa1e8562504525ad05b77f960ccd5c8cb5 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Thu, 5 Feb 2009 20:18:11 +0000 Subject: [PATCH] - Fix returned length for RGetServiceKeyNameW - Perform parameters check in right order in ROpenServiceW svn path=/trunk/; revision=39420 --- reactos/base/system/services/rpcserver.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/reactos/base/system/services/rpcserver.c b/reactos/base/system/services/rpcserver.c index 9d21e95b2cd..12df600d854 100644 --- a/reactos/base/system/services/rpcserver.c +++ b/reactos/base/system/services/rpcserver.c @@ -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; }