summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2011-04-05 15:49:18 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2011-08-17 19:18:58 +0100
commitcccf1e6672fba6b649fe02082c2f087cdf022dcd (patch)
treec5d5d5ba9a1f21f572ebff107411f75eea500c10
parentd09dfcb130be0a17f337bd198a9fb43aab7dfa28 (diff)
export_signals: check interface, signal names for validity
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=35766 Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>
-rw-r--r--dbus/dbus-gobject.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/dbus/dbus-gobject.c b/dbus/dbus-gobject.c
index 92aae58..4b1c007 100644
--- a/dbus/dbus-gobject.c
+++ b/dbus/dbus-gobject.c
@@ -2336,6 +2336,20 @@ export_signals (const GList *info_list, GObject *object)
sigdata = signal_iterate (sigdata, &iface, &signame);
+ if (!g_dbus_is_interface_name (iface))
+ {
+ g_critical ("invalid interface name found in %s: %s",
+ g_type_name (gtype), iface);
+ continue;
+ }
+
+ if (!g_dbus_is_member_name (signame))
+ {
+ g_critical ("invalid signal name found in %s: %s",
+ g_type_name (gtype), signame);
+ continue;
+ }
+
s = _dbus_gutils_wincaps_to_uscore (signame);
id = g_signal_lookup (s, gtype);