diff options
author | Colin Walters <walters@verbum.org> | 2008-10-01 13:49:48 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2008-10-01 15:00:39 -0400 |
commit | f2922ce4bcf06aa8ee540accbd005c472c95d28f (patch) | |
tree | af09eaacfcfb8ba82aedee29fefde1efab5c1115 | |
parent | 008bca5a4e3600d56ac7c1fe984789110b83e1b2 (diff) |
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.
-rw-r--r-- | dbus/dbus-marshal-validate-util.c | 1 | ||||
-rw-r--r-- | dbus/dbus-marshal-validate.c | 1 |
2 files changed, 2 insertions, 0 deletions
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; |