summaryrefslogtreecommitdiff
path: root/daemon
diff options
context:
space:
mode:
authorDmitry Shachnev <mitya57@ubuntu.com>2015-10-21 16:17:14 +0300
committerStef Walter <stefw@gnome.org>2015-10-23 13:33:41 +0200
commit2f5e4db43492c8c15577ca18081d06d1bf38ae60 (patch)
tree4be409017049490270111d816a105e23ab12af1d /daemon
parenta4b6f789a7b53315e6824d29bd5f858b37144800 (diff)
downloadgnome-keyring-2f5e4db43492c8c15577ca18081d06d1bf38ae60.tar.gz
dbus: Correctly handle alias paths in lookup_collection
https://bugzilla.gnome.org/show_bug.cgi?id=756865
Diffstat (limited to 'daemon')
-rw-r--r--daemon/dbus/gkd-secret-objects.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/daemon/dbus/gkd-secret-objects.c b/daemon/dbus/gkd-secret-objects.c
index 995c930a..90493df7 100644
--- a/daemon/dbus/gkd-secret-objects.c
+++ b/daemon/dbus/gkd-secret-objects.c
@@ -1047,6 +1047,7 @@ gkd_secret_objects_lookup_collection (GkdSecretObjects *self, const gchar *calle
GList *objects;
GckSession *session;
gchar *identifier;
+ const gchar *real_identifier;
g_return_val_if_fail (GKD_SECRET_IS_OBJECTS (self), NULL);
g_return_val_if_fail (path, NULL);
@@ -1054,6 +1055,11 @@ gkd_secret_objects_lookup_collection (GkdSecretObjects *self, const gchar *calle
if (!gkd_secret_util_parse_path (path, &identifier, NULL))
return NULL;
+ if (g_str_has_prefix (path, SECRET_ALIAS_PREFIX))
+ real_identifier = gkd_secret_service_get_alias (self->service, identifier);
+ else
+ real_identifier = identifier;
+
/* The session we're using to access the object */
if (caller == NULL)
session = gkd_secret_service_internal_pkcs11_session (self->service);
@@ -1062,7 +1068,7 @@ gkd_secret_objects_lookup_collection (GkdSecretObjects *self, const gchar *calle
g_return_val_if_fail (session, NULL);
gck_builder_add_ulong (&builder, CKA_CLASS, CKO_G_COLLECTION);
- gck_builder_add_string (&builder, CKA_ID, identifier);
+ gck_builder_add_string (&builder, CKA_ID, real_identifier);
objects = gck_session_find_objects (session, gck_builder_end (&builder), NULL, &error);