HE> diff -r a479cec9721a -r 50b0c2bad1e3 src/Virt_ElementConformsToProfile.c
HE> --- a/src/Virt_ElementConformsToProfile.c Fri Nov 23 11:05:44 2007 +0100
HE> +++ b/src/Virt_ElementConformsToProfile.c Fri Nov 23 11:05:46 2007 +0100
HE> @@ -133,9 +133,14 @@ static CMPIStatus elem_to_prof(const CMP
HE> {
HE> CMPIStatus s = {CMPI_RC_OK, NULL};
HE> CMPIInstance *instance;
HE> + virConnectPtr conn = NULL;
You add a virConnectPtr here,
HE> + struct reg_prof *candidate;
HE> char *classname;
HE> - struct reg_prof *candidate;
HE> int i;
HE> +
HE> + conn = connect_by_classname(_BROKER, CLASSNAME(ref), &s);
HE> + if (conn == NULL)
HE> + goto out;
and open it here,
HE> classname = class_base_name(CLASSNAME(ref));
HE> if (classname == NULL) {
HE> @@ -151,10 +156,12 @@ static CMPIStatus elem_to_prof(const CMP
HE> instance = reg_prof_instance(_BROKER,
HE> "/root/interop",
HE> - NULL,
HE> + NULL,
HE> + conn,
HE> candidate);
HE> if (instance == NULL) {
HE> - CMSetStatusWithChars(_BROKER, &s, CMPI_RC_ERR_FAILED,
HE> + CMSetStatusWithChars(_BROKER, &s,
HE> + CMPI_RC_ERR_FAILED,
HE> "Can't create profile
instance.");
HE> goto error;
HE> }
But I don't see you close it anywhere before you exit the function, so
I think this leaks the connection.
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms(a)us.ibm.com