summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-marshal-validate.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2005-02-11 01:13:45 +0000
committerHavoc Pennington <hp@redhat.com>2005-02-11 01:13:45 +0000
commit71f3b461b371d6bf7c7bc4e92578420b78d5c0d8 (patch)
tree79ee6992bcea7df9d484feb61999b22ecf4c54ff /dbus/dbus-marshal-validate.c
parentdf0c6408805341f1ac673430ce6e92f352a473e6 (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-marshal-validate.c')
-rw-r--r--dbus/dbus-marshal-validate.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/dbus/dbus-marshal-validate.c b/dbus/dbus-marshal-validate.c
index 1639fb83..8315bcce 100644
--- a/dbus/dbus-marshal-validate.c
+++ b/dbus/dbus-marshal-validate.c
@@ -155,6 +155,10 @@ _dbus_validate_signature_with_reason (const DBusString *type_str,
array_depth = 0;
}
+ if (last == DBUS_DICT_ENTRY_BEGIN_CHAR &&
+ !_dbus_type_is_basic (*p))
+ return DBUS_INVALID_DICT_KEY_MUST_BE_BASIC_TYPE;
+
last = *p;
++p;
}