diff --git a/reactos/dll/win32/advapi32/service/scm.c b/reactos/dll/win32/advapi32/service/scm.c index bb10b4f4a6c..a451184daa1 100644 --- a/reactos/dll/win32/advapi32/service/scm.c +++ b/reactos/dll/win32/advapi32/service/scm.c @@ -487,6 +487,12 @@ CloseServiceHandle(SC_HANDLE hSCObject) TRACE("CloseServiceHandle() called\n"); + if (!hSCObject) + { + SetLastError(ERROR_INVALID_HANDLE); + return FALSE; + } + RpcTryExcept { /* Call to services.exe using RPC */ @@ -1212,6 +1218,19 @@ EnumServicesStatusExA(SC_HANDLE hSCManager, TRACE("EnumServicesStatusExA() called\n"); + if (InfoLevel != SC_ENUM_PROCESS_INFO) + { + SetLastError(ERROR_INVALID_LEVEL); + return FALSE; + } + + if (!hSCManager) + { + SetLastError(ERROR_INVALID_HANDLE); + return FALSE; + } + + RpcTryExcept { dwError = REnumServicesStatusExA((SC_RPC_HANDLE)hSCManager,