[gnome-keyring/wip/cosimoc/gdbus-fixes: 8/11] dbus: fix marshalling of GkdSecretSecret



commit cb5c096854c2ade3747c6100341893e11e2881b7
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Sat Aug 29 09:52:05 2015 -0700

    dbus: fix marshalling of GkdSecretSecret
    
    We need to use g_variant_new_fixed_array(), as the parameter and value
    are not bytestrings. This fixes another regression from the GDBus port.

 daemon/dbus/gkd-secret-secret.c |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)
---
diff --git a/daemon/dbus/gkd-secret-secret.c b/daemon/dbus/gkd-secret-secret.c
index 691a535..5a59c2e 100644
--- a/daemon/dbus/gkd-secret-secret.c
+++ b/daemon/dbus/gkd-secret-secret.c
@@ -128,7 +128,6 @@ gkd_secret_secret_parse (GkdSecretService *service,
 GVariant *
 gkd_secret_secret_append (GkdSecretSecret *secret)
 {
-       GVariantBuilder builder;
        const gchar *content_type = "text/plain";
        const gchar *path;
        GVariant *parameter, *value;
@@ -136,13 +135,12 @@ gkd_secret_secret_append (GkdSecretSecret *secret)
        path = gkd_secret_dispatch_get_object_path (GKD_SECRET_DISPATCH (secret->session));
        g_return_val_if_fail (path, NULL);
 
-       g_variant_builder_init (&builder, G_VARIANT_TYPE ("ay"));
-       g_variant_builder_add (&builder, "y", secret->parameter);
-       parameter = g_variant_builder_end (&builder);
-
-       g_variant_builder_init (&builder, G_VARIANT_TYPE ("ay"));
-       g_variant_builder_add (&builder, "y", secret->value);
-       value = g_variant_builder_end (&builder);
+       parameter = g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE,
+                                              secret->parameter, secret->n_parameter,
+                                              sizeof (guchar));
+       value = g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE,
+                                          secret->value, secret->n_value,
+                                          sizeof (guchar));
 
        return g_variant_new ("(o ay@ays)", path, parameter, value, content_type);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]