From f2922ce4bcf06aa8ee540accbd005c472c95d28f Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Wed, 1 Oct 2008 13:49:48 -0400 Subject: Bug 17803: Panic from dbus_signature_validate * dbus/dbus-marshal-validate.c: Ensure we validate a basic type before calling is_basic on it. * dbus-marshal-validate-util.c: Test. --- dbus/dbus-marshal-validate-util.c | 1 + dbus/dbus-marshal-validate.c | 1 + 2 files changed, 2 insertions(+) diff --git a/dbus/dbus-marshal-validate-util.c b/dbus/dbus-marshal-validate-util.c index f2901d74..5365d6d3 100644 --- a/dbus/dbus-marshal-validate-util.c +++ b/dbus/dbus-marshal-validate-util.c @@ -228,6 +228,7 @@ _dbus_marshal_validate_test (void) "123", ".", "(" + "a{(ii)i}" /* https://bugs.freedesktop.org/show_bug.cgi?id=17803 */ }; /* Signature with reason */ diff --git a/dbus/dbus-marshal-validate.c b/dbus/dbus-marshal-validate.c index e63a463b..b24b5bc2 100644 --- a/dbus/dbus-marshal-validate.c +++ b/dbus/dbus-marshal-validate.c @@ -247,6 +247,7 @@ _dbus_validate_signature_with_reason (const DBusString *type_str, } if (last == DBUS_DICT_ENTRY_BEGIN_CHAR && + _dbus_type_is_valid (*p) && !dbus_type_is_basic (*p)) { result = DBUS_INVALID_DICT_KEY_MUST_BE_BASIC_TYPE; -- cgit