aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2012-12-28 14:51:03 +0200
committerMarcel Holtmann <marcel@holtmann.org>2012-12-30 10:50:22 -0800
commit1ef88acbdd449758921d4df87827c8729cc10553 (patch)
tree2025e8ff2cda1e64704f19bb923e944580b00c2b
parentdeb07de9e917e10846653cfa170f05a62c9575c9 (diff)
downloadmmsd-1ef88acbdd449758921d4df87827c8729cc10553.tar.gz
gdbus: Call check_signals when sending signals with g_dbus_send_message
If message passed to g_dbus_send_message is a signal verify if it is a valid and there really exists an interface with respective signal name.
-rw-r--r--gdbus/object.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gdbus/object.c b/gdbus/object.c
index c6bdd59..b9cb284 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -1511,6 +1511,15 @@ gboolean g_dbus_send_message(DBusConnection *connection, DBusMessage *message)
if (dbus_message_get_type(message) == DBUS_MESSAGE_TYPE_METHOD_CALL)
dbus_message_set_no_reply(message, TRUE);
+ else if (dbus_message_get_type(message) == DBUS_MESSAGE_TYPE_SIGNAL) {
+ const char *path = dbus_message_get_path(message);
+ const char *interface = dbus_message_get_interface(message);
+ const char *name = dbus_message_get_member(message);
+ const GDBusArgInfo *args;
+
+ if (!check_signal(connection, path, interface, name, &args))
+ return FALSE;
+ }
result = dbus_connection_send(connection, message, NULL);