diff options
author | Havoc Pennington <hp@redhat.com> | 2005-02-11 01:13:45 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2005-02-11 01:13:45 +0000 |
commit | 71f3b461b371d6bf7c7bc4e92578420b78d5c0d8 (patch) | |
tree | 79ee6992bcea7df9d484feb61999b22ecf4c54ff /dbus/dbus-message-factory.c | |
parent | df0c6408805341f1ac673430ce6e92f352a473e6 (diff) |
2005-02-10 Havoc Pennington <hp@redhat.com>
* dbus/dbus-message-factory.c (generate_special): modify test to
avoid using a non-basic dict key
* dbus/dbus-marshal-validate-util.c: add test for the below
* doc/dbus-specification.xml: require that dict keys are a basic
type
* dbus/dbus-marshal-validate.c
(_dbus_validate_signature_with_reason): require that dict key is a
basic type
Diffstat (limited to 'dbus/dbus-message-factory.c')
-rw-r--r-- | dbus/dbus-message-factory.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/dbus/dbus-message-factory.c b/dbus/dbus-message-factory.c index 37c3d38d..39df92f2 100644 --- a/dbus/dbus-message-factory.c +++ b/dbus/dbus-message-factory.c @@ -623,7 +623,7 @@ generate_special (DBusMessageDataIter *iter, } else if (item_seq == 16) { - char long_sig[DBUS_MAXIMUM_TYPE_RECURSION_DEPTH*3+6]; + char long_sig[DBUS_MAXIMUM_TYPE_RECURSION_DEPTH*4+8]; const char *v_STRING; int i; int n_begins; @@ -637,19 +637,19 @@ generate_special (DBusMessageDataIter *iter, _dbus_assert_not_reached ("oom"); i = 0; - while (i <= (DBUS_MAXIMUM_TYPE_RECURSION_DEPTH*2 + 2)) + while (i <= (DBUS_MAXIMUM_TYPE_RECURSION_DEPTH*3 + 3)) { long_sig[i] = DBUS_TYPE_ARRAY; ++i; long_sig[i] = DBUS_DICT_ENTRY_BEGIN_CHAR; ++i; + long_sig[i] = DBUS_TYPE_INT32; + ++i; } - n_begins = i / 2; + n_begins = i / 3; long_sig[i] = DBUS_TYPE_INT32; ++i; - long_sig[i] = DBUS_TYPE_INT32; - ++i; while (n_begins > 0) { |