diff options
Diffstat (limited to 'bus')
-rw-r--r-- | bus/signals.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/bus/signals.c b/bus/signals.c index 960d846c..0fd4b514 100644 --- a/bus/signals.c +++ b/bus/signals.c @@ -586,6 +586,15 @@ bus_match_rule_parse (DBusConnection *matches_go_to, int i; _DBUS_ASSERT_ERROR_IS_CLEAR (error); + + if (_dbus_string_get_length (rule_text) > DBUS_MAXIMUM_MATCH_RULE_LENGTH) + { + dbus_set_error (error, DBUS_ERROR_LIMITS_EXCEEDED, + "Match rule text is %d bytes, maximum is %d", + _dbus_string_get_length (rule_text), + DBUS_MAXIMUM_MATCH_RULE_LENGTH); + return NULL; + } memset (tokens, '\0', sizeof (tokens)); |