mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-07-24 02:47:52 +02:00
gdbus: Ensure message matching always succeeds against path_namespace='/'
This copies the fix from upstream D-Bus bug https://bugs.freedesktop.org/show_bug.cgi?id=70799 to the GDBusDaemon implementation, ensuring that matching against path_namespace='/' succeeds for all keys (i.e. it’s a no-op). https://bugzilla.gnome.org/show_bug.cgi?id=710726
This commit is contained in:
@@ -596,9 +596,18 @@ match_matches (GDBusDaemon *daemon,
|
||||
break;
|
||||
case CHECK_TYPE_PATH_PREFIX:
|
||||
len = strlen (element->value);
|
||||
if (!(g_str_has_prefix (value, element->value) &&
|
||||
(value[len] == 0 || value[len] == '/')))
|
||||
|
||||
/* Make sure to handle the case of element->value == '/'. */
|
||||
if (len == 1)
|
||||
break;
|
||||
|
||||
/* Fail if there's no prefix match, or if the prefix match doesn't
|
||||
* finish at the end of or at a separator in the @value. */
|
||||
if (!g_str_has_prefix (value, element->value))
|
||||
return FALSE;
|
||||
if (value[len] != 0 && value[len] != '/')
|
||||
return FALSE;
|
||||
|
||||
break;
|
||||
case CHECK_TYPE_PATH_RELATED:
|
||||
len = strlen (element->value);
|
||||
|
Reference in New Issue
Block a user