# HG changeset patch
# User Heidi Eckhart <heidieck(a)linux.vnet.ibm.com>
# Date 1202215071 -3600
# Node ID 360734df2cd2eabbc2a2a9095a95d022f6c4130f
# Parent 9163192a3407b4b0f02ab15d291830f52b5261fa
SD: does not check client given object path
wbemrin -arc CIM_SystemDevice
'http://localhost/root/virt:KVM_ComputerSystem.CreationClassName="KVM_ComputerSystem",Name="wrong"'
returns nothing instead of NOT_FOUND.
The object path for devices is also not checked.
Signed-off-by: Heidi Eckhart <heidieck(a)linux.vnet.ibm.com>
diff -r 9163192a3407 -r 360734df2cd2 src/Virt_SystemDevice.c
--- a/src/Virt_SystemDevice.c Tue Feb 05 13:33:41 2008 +0100
+++ b/src/Virt_SystemDevice.c Tue Feb 05 13:37:51 2008 +0100
@@ -134,10 +134,15 @@ static CMPIStatus sys_to_dev(const CMPIO
{
const char *host = NULL;
CMPIStatus s = {CMPI_RC_OK, NULL};
+ CMPIInstance *inst = NULL;
int ret;
if (!match_hypervisor_prefix(ref, info))
return s;
+
+ s = get_domain(_BROKER, ref, &inst);
+ if (s.rc != CMPI_RC_OK)
+ goto out;
if (cu_get_str_path(ref, "Name", &host) != CMPI_RC_OK) {
cu_statusf(_BROKER, &s,
@@ -171,10 +176,15 @@ static CMPIStatus dev_to_sys(const CMPIO
char *host = NULL;
char *dev = NULL;
CMPIInstance *sys;
+ CMPIInstance *inst = NULL;
CMPIStatus s = {CMPI_RC_OK, NULL};
if (!match_hypervisor_prefix(ref, info))
return s;
+
+ s = get_device(_BROKER, ref, &inst);
+ if (s.rc != CMPI_RC_OK)
+ goto out;
if (cu_get_str_path(ref, "DeviceID", &devid) != CMPI_RC_OK) {
cu_statusf(_BROKER, &s,