wbemprox: Return an empty object if the path is NULL or empty.
This commit is contained in:
parent
6da3ce276b
commit
07197a19f2
|
@ -1015,8 +1015,8 @@ HRESULT create_class_object( const WCHAR *name, IEnumWbemClassObject *iter, UINT
|
|||
|
||||
co->IWbemClassObject_iface.lpVtbl = &class_object_vtbl;
|
||||
co->refs = 1;
|
||||
co->name = heap_strdupW( name );
|
||||
if (!co->name)
|
||||
if (!name) co->name = NULL;
|
||||
else if (!(co->name = heap_strdupW( name )))
|
||||
{
|
||||
heap_free( co );
|
||||
return E_OUTOFMEMORY;
|
||||
|
|
|
@ -352,11 +352,9 @@ static HRESULT WINAPI wbem_services_GetObject(
|
|||
|
||||
if (lFlags) FIXME("unsupported flags 0x%08x\n", lFlags);
|
||||
|
||||
if (!strObjectPath)
|
||||
{
|
||||
FIXME("no support for creating new classes\n");
|
||||
return WBEM_E_FAILED;
|
||||
}
|
||||
if (!strObjectPath || !strObjectPath[0])
|
||||
return create_class_object( NULL, NULL, 0, NULL, ppObject );
|
||||
|
||||
return get_object( strObjectPath, ppObject );
|
||||
}
|
||||
|
||||
|
|
|
@ -146,7 +146,8 @@ static void test_Win32_Service( IWbemServices *services )
|
|||
static const WCHAR stoppedW[] = {'S','t','o','p','p','e','d',0};
|
||||
static const WCHAR serviceW[] = {'W','i','n','3','2','_','S','e','r','v','i','c','e','.',
|
||||
'N','a','m','e','=','"','S','p','o','o','l','e','r','"',0};
|
||||
BSTR class = SysAllocString( serviceW ), method;
|
||||
static const WCHAR emptyW[] = {0};
|
||||
BSTR class = SysAllocString( serviceW ), empty = SysAllocString( emptyW ), method;
|
||||
IWbemClassObject *service, *out;
|
||||
VARIANT state, retval;
|
||||
CIMTYPE type;
|
||||
|
@ -219,6 +220,18 @@ static void test_Win32_Service( IWbemServices *services )
|
|||
}
|
||||
VariantClear( &state );
|
||||
IWbemClassObject_Release( service );
|
||||
|
||||
service = NULL;
|
||||
hr = IWbemServices_GetObject( services, NULL, 0, NULL, &service, NULL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
if (service) IWbemClassObject_Release( service );
|
||||
|
||||
service = NULL;
|
||||
hr = IWbemServices_GetObject( services, empty, 0, NULL, &service, NULL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
if (service) IWbemClassObject_Release( service );
|
||||
|
||||
SysFreeString( empty );
|
||||
SysFreeString( class );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue