diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2011-04-05 15:49:18 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2011-08-17 19:18:58 +0100 |
commit | cccf1e6672fba6b649fe02082c2f087cdf022dcd (patch) | |
tree | c5d5d5ba9a1f21f572ebff107411f75eea500c10 | |
parent | d09dfcb130be0a17f337bd198a9fb43aab7dfa28 (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.c | 14 |
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); |