
Kaitlin Rupert wrote:
# HG changeset patch # User Kaitlin Rupert <karupert@us.ibm.com> # Date 1198261308 28800 # Node ID 40de750e13d37994bee0f7031e82f612d02ebe4d # Parent 97c1cab36073319f7cf78cbec70eec9eaee01a4d GetInstance() in DevicePool returns an instance for invalid refs.
If a ref with a correct InstanceID but non-matching classname is passed, GetInstance() returns an instance that matches the InstanceID. This should return an error.
Add cu_compare_ref() after retrieving the instance to make sure ref is valid.
Failing query: wbemcli gi 'http://localhost:5988/root/virt:Xen_ProcessorPool.InstanceID="MemoryPool/0"'
Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com>
inst = get_pool_by_id(_BROKER, conn, id, NAMESPACE(reference)); if (inst) { + prop = cu_compare_ref(reference, inst); + if (prop != NULL) { + cu_statusf(broker, &s, + CMPI_RC_ERR_NOT_FOUND, + "No such ResourcePool instance (%s)", prop); + }
Just want to make sure I understand something correctly. You don't need to free prop here because cu_compare_ref gets it using CMGetCharPtr, right? That memory is managed by the CIMOM for you? -- -Jay