summaryrefslogtreecommitdiffstats
path: root/src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c')
-rw-r--r--src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c40
1 files changed, 26 insertions, 14 deletions
diff --git a/src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c b/src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c
index bbd04bc..ebd3da7 100644
--- a/src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c
+++ b/src/software-dbus/LMI_MemberOfSoftwareCollectionProvider.c
@@ -109,14 +109,14 @@ static CMPIStatus LMI_MemberOfSoftwareCollectionEnumInstances(
done:
g_clear_error(&gerror);
- if (task) {
- g_object_unref(task);
+ if (array) {
+ g_ptr_array_unref(array);
}
if (results) {
g_object_unref(results);
}
- if (array) {
- g_ptr_array_unref(array);
+ if (task) {
+ g_object_unref(task);
}
if (*error_msg) {
@@ -133,8 +133,12 @@ static CMPIStatus LMI_MemberOfSoftwareCollectionGetInstance(
const CMPIObjectPath* cop,
const char** properties)
{
+ PkPackage *pk_pkg = NULL;
+ SwPackage sw_pkg;
char instance_id[INSTANCE_ID_LEN] = "";
+ init_sw_package(&sw_pkg);
+
create_instance_id(SYSTEM_SW_COLLECTION_CLASS_NAME, NULL, instance_id,
INSTANCE_ID_LEN);
@@ -146,11 +150,19 @@ static CMPIStatus LMI_MemberOfSoftwareCollectionGetInstance(
CMReturn(CMPI_RC_ERR_NOT_FOUND);
}
- if (!is_valid_sw_pkg_elem_name(get_str_property_from_op(w.Member.value,
- "InstanceID") + strlen(ORGID ":" ORGID "_" SW_IDENTITY_CLASS_NAME ":"))) {
+ if (create_sw_package_from_elem_name(get_str_property_from_op(w.Member.value,
+ "InstanceID") + strlen(ORGID ":" ORGID "_" SW_IDENTITY_CLASS_NAME ":"),
+ &sw_pkg) != 0) {
CMReturn(CMPI_RC_ERR_NOT_FOUND);
}
+ get_pk_pkg_from_sw_pkg(&sw_pkg, &pk_pkg);
+ if (!pk_pkg) {
+ CMReturn(CMPI_RC_ERR_NOT_FOUND);
+ }
+ g_object_unref(pk_pkg);
+ free_sw_package(&sw_pkg);
+
KReturnInstance(cr, w);
CMReturn(CMPI_RC_OK);
}
@@ -313,14 +325,14 @@ static CMPIStatus associators(
done:
g_clear_error(&gerror);
- if (task) {
- g_object_unref(task);
+ if (array) {
+ g_ptr_array_unref(array);
}
if (results) {
g_object_unref(results);
}
- if (array) {
- g_ptr_array_unref(array);
+ if (task) {
+ g_object_unref(task);
}
if (*error_msg) {
@@ -462,14 +474,14 @@ static CMPIStatus references(
done:
g_clear_error(&gerror);
- if (task) {
- g_object_unref(task);
+ if (array) {
+ g_ptr_array_unref(array);
}
if (results) {
g_object_unref(results);
}
- if (array) {
- g_ptr_array_unref(array);
+ if (task) {
+ g_object_unref(task);
}
if (*error_msg) {