Kaitlin Rupert wrote:
# HG changeset patch
# User Kaitlin Rupert <karupert(a)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(a)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