From c1f0e189030ceb2bafea0bc30d6b72a0fa381ddc Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Fri, 10 Oct 2003 03:56:30 +0000 Subject: 2003-10-09 Havoc Pennington * configure.in: define DBUS_HAVE_GCC33_GCOV if we have gcc 3.3. Not that we do anything about it yet. * bus/signals.c (bus_match_rule_parse): impose max length on the match rule text * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH --- bus/signals.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'bus/signals.c') 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)); -- cgit