summaryrefslogtreecommitdiff
path: root/libappstream-glib/as-store.c
diff options
context:
space:
mode:
Diffstat (limited to 'libappstream-glib/as-store.c')
-rw-r--r--libappstream-glib/as-store.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libappstream-glib/as-store.c b/libappstream-glib/as-store.c
index 6c8fdb2..82eb15a 100644
--- a/libappstream-glib/as-store.c
+++ b/libappstream-glib/as-store.c
@@ -463,7 +463,7 @@ _as_app_new_from_unique_id (const gchar *unique_id)
g_autoptr(AsApp) app = as_app_new ();
split = g_strsplit (unique_id, "/", -1);
- if (g_strv_length (split) != 7)
+ if (g_strv_length (split) != 8)
return NULL;
if (g_strcmp0 (split[0], AS_APP_UNIQUE_WILDCARD) != 0)
as_app_set_scope (app, as_app_scope_from_string (split[1]));
@@ -489,6 +489,8 @@ _as_app_new_from_unique_id (const gchar *unique_id)
as_app_add_arch (app, split[5]);
if (g_strcmp0 (split[6], AS_APP_UNIQUE_WILDCARD) != 0)
as_app_set_branch (app, split[6]);
+ if (g_strcmp0 (split[7], AS_APP_UNIQUE_WILDCARD) != 0)
+ as_app_set_version (app, split[7]);
return g_steal_pointer (&app);
}
@@ -537,6 +539,8 @@ as_store_get_app_by_unique_id (AsStore *store,
/* create virtual app using scope/system/origin/kind/id/arch/branch */
app_tmp = _as_app_new_from_unique_id (unique_id);
+ if (app_tmp == NULL)
+ return NULL;
return as_store_get_app_by_app (store, app_tmp);
}