From: Lukasz Skalski Date: Wed, 6 May 2015 10:35:47 +0000 (+0000) Subject: [kdbus] Fix problem with receiving messages without body X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Fglib.git;a=commitdiff_plain;h=35a53bbb6b02e9e6dc09c03d55b1ffbeeb61c8fb;ds=sidebyside [kdbus] Fix problem with receiving messages without body --- diff --git a/gio/gkdbus.c b/gio/gkdbus.c index dcaf2a1..d0b0881 100644 --- a/gio/gkdbus.c +++ b/gio/gkdbus.c @@ -1991,7 +1991,6 @@ g_kdbus_decode_dbus_msg (GKDBusWorker *worker, GVariant *value; guint64 serial; - message = g_dbus_message_new (); body_vectors = g_array_new (FALSE, FALSE, sizeof (GVariantVector)); @@ -2162,12 +2161,13 @@ g_kdbus_decode_dbus_msg (GKDBusWorker *worker, g_dbus_message_set_serial (message, serial); g_dbus_message_set_message_type (message, type); - if (g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE) != NULL) - { - body = g_variant_get_variant (parts[1]); - g_dbus_message_set_body (message, body); - g_variant_unref (body); - } + body = g_variant_get_variant (parts[1]); + if (!g_variant_is_of_type (body, G_VARIANT_TYPE ("()"))) + g_dbus_message_set_body (message, body); + else + g_dbus_message_set_body (message, NULL); + + g_variant_unref (body); g_variant_unref (parts[1]); //g_print ("Received:\n%s\n", g_dbus_message_print (message, 2));