JG> My guess is that adding the const makes it so that callers can't
JG> modify the resulting string,
Right, which makes free() choke on it, thus indicating all the
free()'s that I needed to remove in this case :)
JG> which means that we can just hand them all pointers to the same
JG> string, so there is no need to strdup, so they don't have to free?
No. The const doesn't really have anything to do with not needing to
free() it. The reason it doesn't need to be free()'d is because it's
memory from a broker-managed object, which will be freed when the
current provider returns back to the CIMOM. The same reason you don't
need to free() a CMPIInstance or CMPIObjectPath.
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms(a)us.ibm.com