summaryrefslogtreecommitdiffstats
path: root/gdbus
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2013-01-04 20:28:07 -0800
committerMarcel Holtmann <marcel@holtmann.org>2013-01-05 00:45:35 -0800
commit3143ea126e9a97241b54af0f0e36ff9f7c17e08d (patch)
treee50be83ebb5eee05286a3e38c56c9c334025959c /gdbus
parenta39520e1be30b62e0f537dd7dfaf9c553c179bc9 (diff)
downloadofono-3143ea126e9a97241b54af0f0e36ff9f7c17e08d.tar.bz2
gdbus: Check signature of property value before calling setter
Diffstat (limited to 'gdbus')
-rw-r--r--gdbus/object.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdbus/object.c b/gdbus/object.c
index e569acb9..688cd059 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -896,6 +896,11 @@ static DBusMessage *properties_set(DBusConnection *connection,
DBUS_ERROR_UNKNOWN_PROPERTY,
"No such property '%s'", name);
+ if (strcmp(dbus_message_iter_get_signature(&sub), property->type))
+ return g_dbus_create_error(message,
+ DBUS_ERROR_INVALID_SIGNATURE,
+ "Invalid signature for '%s'", name);
+
propdata = g_new(struct property_data, 1);
propdata->id = next_pending_property++;
propdata->message = dbus_message_ref(message);