add some more error checking

svn path=/trunk/; revision=39434
This commit is contained in:
Christoph von Wittich 2009-02-06 08:51:51 +00:00
parent 18922ff0a4
commit ead9dcbd31

View file

@ -770,6 +770,12 @@ CreateServiceW(SC_HANDLE hSCManager,
TRACE("%p %S %S\n", hSCManager, TRACE("%p %S %S\n", hSCManager,
lpServiceName, lpDisplayName); lpServiceName, lpDisplayName);
if (!hSCManager)
{
SetLastError(ERROR_INVALID_HANDLE);
return NULL;
}
/* Calculate the Dependencies length*/ /* Calculate the Dependencies length*/
if (lpDependencies != NULL) if (lpDependencies != NULL)
{ {
@ -1132,6 +1138,12 @@ EnumServicesStatusW(SC_HANDLE hSCManager,
TRACE("EnumServicesStatusW() called\n"); TRACE("EnumServicesStatusW() called\n");
if (!hSCManager)
{
SetLastError(ERROR_INVALID_HANDLE);
return FALSE;
}
RpcTryExcept RpcTryExcept
{ {
dwError = REnumServicesStatusW((SC_RPC_HANDLE)hSCManager, dwError = REnumServicesStatusW((SC_RPC_HANDLE)hSCManager,
@ -1398,6 +1410,12 @@ GetServiceDisplayNameW(SC_HANDLE hSCManager,
TRACE("GetServiceDisplayNameW() called\n"); TRACE("GetServiceDisplayNameW() called\n");
if (!hSCManager)
{
SetLastError(ERROR_INVALID_HANDLE);
return FALSE;
}
if (!lpDisplayName) if (!lpDisplayName)
*lpcchBuffer = 0; *lpcchBuffer = 0;
@ -1497,7 +1515,22 @@ GetServiceKeyNameW(SC_HANDLE hSCManager,
TRACE("GetServiceKeyNameW() called\n"); TRACE("GetServiceKeyNameW() called\n");
if (!hSCManager)
{
SetLastError(ERROR_INVALID_HANDLE);
return FALSE;
}
if (!lpDisplayName) if (!lpDisplayName)
{
SetLastError(ERROR_INVALID_ADDRESS);
if (!lpServiceName)
*lpcchBuffer = 1;
return FALSE;
}
if (!lpServiceName)
*lpcchBuffer = 0; *lpcchBuffer = 0;
RpcTryExcept RpcTryExcept
@ -1757,6 +1790,12 @@ OpenServiceW(SC_HANDLE hSCManager,
TRACE("OpenServiceW(%p, %S, %lx)\n", TRACE("OpenServiceW(%p, %S, %lx)\n",
hSCManager, lpServiceName, dwDesiredAccess); hSCManager, lpServiceName, dwDesiredAccess);
if (!hSCManager)
{
SetLastError(ERROR_INVALID_HANDLE);
return NULL;
}
RpcTryExcept RpcTryExcept
{ {
/* Call to services.exe using RPC */ /* Call to services.exe using RPC */