
Heidi Eckhart wrote:
Heidi Eckhart wrote:
I will have a look into it and try to find out where it segfault.
After some testing and debugging, I figured out that sfcb seems to have a problem with a return result "no instance and status OK" for getInstance(). This should not cause a segfault in sfcb, but the behavior in general is correct, as this result is not valid for getInstance. If the requested instances was not found, then the status has to be set to something else than OK. I will send this issue to the sblim-devel mailing list.
Thanks for looking into this. =) Sounds like an interesting bug - good catch!
This patch fixes the getInstance() segfault with sfcb.
diff -r 84b0269e9994 src/Virt_AllocationCapabilities.c --- a/src/Virt_AllocationCapabilities.c Tue Dec 18 12:20:13 2007 +0100 +++ b/src/Virt_AllocationCapabilities.c Tue Dec 18 12:21:53 2007 +0100 @@ -118,8 +118,10 @@ static CMPIStatus alloc_cap_instances(co "Error fetching device pool InstanceID"); goto out; } - if (id && (!STREQ(inst_id, id))) + if (id && (!STREQ(inst_id, id))) { + inst_id = NULL; continue; + } s = ac_from_pool(broker, ref, device_pool_list.list[i], @@ -131,6 +133,13 @@ static CMPIStatus alloc_cap_instances(co
if (id && (STREQ(inst_id, id))) break; + } + + if (id && !inst_id) { + cu_statusf(broker, &s, + CMPI_RC_ERR_NOT_FOUND, + "Requested Object could not be found."); + goto out; }
if (names_only)
I can send out a re-worked patch. Thanks for coding this up. =) -- Kaitlin Rupert IBM Linux Technology Center karupert@us.ibm.com