summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <philip@tecnocode.co.uk>2024-05-08 14:46:08 +0000
committerPhilip Withnall <philip@tecnocode.co.uk>2024-05-08 14:46:08 +0000
commitc1fdfeddab95d8149d341725a896ccd540702795 (patch)
treea811e3cdc0ce9459c1de0203807ef083f9e91319
parentdb28af7da6b04a18aa7bd79ecfb3ffa72c4b3c4d (diff)
parent7d65f6c5a20f67aa9a857d0f7b0bf5de4d75be9b (diff)
downloadglib-c1fdfeddab95d8149d341725a896ccd540702795.tar.gz
Merge branch 'wip/smcv/issue3353' into 'main'
gdbusconnection: Allow name owners to have the syntax of a well-known name Closes #3353 See merge request GNOME/glib!4053
-rw-r--r--gio/gdbusconnection.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gio/gdbusconnection.c b/gio/gdbusconnection.c
index ee994cecc..72e58fd77 100644
--- a/gio/gdbusconnection.c
+++ b/gio/gdbusconnection.c
@@ -2380,7 +2380,10 @@ name_watcher_deliver_name_owner_changed_unlocked (SignalData *name_watcher,
/* Our caller already checked this */
g_assert (g_strcmp0 (name_watcher->arg0, name) == 0);
- if (G_LIKELY (new_owner[0] == '\0' || g_dbus_is_unique_name (new_owner)))
+ /* FIXME: This should be validating that `new_owner` is a unique name,
+ * but IBus’ implementation of a message bus is not compliant with the spec.
+ * See https://gitlab.gnome.org/GNOME/glib/-/issues/3353 */
+ if (G_LIKELY (new_owner[0] == '\0' || g_dbus_is_name (new_owner)))
name_watcher_set_name_owner_unlocked (name_watcher, new_owner);
else
g_warning ("Received NameOwnerChanged signal with invalid owner \"%s\" for \"%s\"",
@@ -2432,7 +2435,10 @@ name_watcher_deliver_get_name_owner_reply_unlocked (SignalData *name_watcher,
g_variant_get (body, "(&s)", &new_owner);
- if (G_LIKELY (g_dbus_is_unique_name (new_owner)))
+ /* FIXME: This should be validating that `new_owner` is a unique name,
+ * but IBus’ implementation of a message bus is not compliant with the spec.
+ * See https://gitlab.gnome.org/GNOME/glib/-/issues/3353 */
+ if (G_LIKELY (g_dbus_is_name (new_owner)))
name_watcher_set_name_owner_unlocked (name_watcher, new_owner);
else
g_warning ("Received GetNameOwner reply with invalid owner \"%s\" for \"%s\"",