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:37 -0800
commit20b9a7560c62433db2ac77160b5ce49da24a4eda (patch)
tree85b0e9b5727c2f1f0cf0cb132be06d84c94adc70
parent258b0ac4b136493245be5c691a6c1243db531790 (diff)
downloadpacrunner-20b9a7560c62433db2ac77160b5ce49da24a4eda.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);