diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2014-01-14 11:22:34 +0000 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2014-01-14 11:24:22 +0000 |
commit | ee0f90d5d619ef53f30edbbeb19c7b6a5055a84b (patch) | |
tree | 38fc3efc70f716d45be739e89bcd4d22d7a82c6f /dbus/dbus-gidl.c | |
parent | f1311ce39c6bcab1e25de20eb684bb78cce56e59 (diff) | |
download | dbus-glib-ee0f90d5d619ef53f30edbbeb19c7b6a5055a84b.tar.gz |
dbus-binding-tool: check for valid interface, member and property names
Properties are currently allowed to be arbitrary UTF-8 since this matches
dbus-glib's runtime behaviour, although ideally new interfaces should
use the more restrictive member naming rules (leading to names like
MyProperty) for interop with QtDBus.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=7909
Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>
Diffstat (limited to 'dbus/dbus-gidl.c')
-rw-r--r-- | dbus/dbus-gidl.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/dbus/dbus-gidl.c b/dbus/dbus-gidl.c index b5293bd..cde4d79 100644 --- a/dbus/dbus-gidl.c +++ b/dbus/dbus-gidl.c @@ -26,6 +26,8 @@ #include "dbus-gidl.h" +#include <gio/gio.h> + struct BaseInfo { unsigned int refcount : 28; @@ -342,6 +344,8 @@ interface_info_new (const char *name) { InterfaceInfo *info; + g_return_val_if_fail (g_dbus_is_interface_name (name), NULL); + info = g_new0 (InterfaceInfo, 1); info->base.refcount = 1; info->base.name = g_strdup (name); @@ -467,6 +471,8 @@ method_info_new (const char *name) { MethodInfo *info; + g_return_val_if_fail (g_dbus_is_member_name (name), NULL); + info = g_new0 (MethodInfo, 1); info->base.refcount = 1; info->base.name = g_strdup (name); @@ -573,6 +579,8 @@ signal_info_new (const char *name) { SignalInfo *info; + g_return_val_if_fail (g_dbus_is_member_name (name), NULL); + info = g_new0 (SignalInfo, 1); info->base.refcount = 1; info->base.name = g_strdup (name); @@ -637,6 +645,9 @@ property_info_new (const char *name, { PropertyInfo *info; + g_return_val_if_fail (g_utf8_validate (name, -1, NULL), NULL); + g_return_val_if_fail (g_variant_is_signature (type), NULL); + info = g_new0 (PropertyInfo, 1); info->base.refcount = 1; info->base.name = g_strdup (name); |