summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-marshal-validate.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2005-01-17 19:49:52 +0000
committerHavoc Pennington <hp@redhat.com>2005-01-17 19:49:52 +0000
commit62e465339a306fa564b69935da494dad6e1b474a (patch)
tree0c75e656937e148983dbf3ea313b0bb9efb9f6c6 /dbus/dbus-marshal-validate.c
parent7bf62e31a3c820852271768fafc04ba95c31a19f (diff)
2005-01-17 Havoc Pennington <hp@redhat.com>
* dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead of an 8-bit type. Now dbus_bool_t is the type to use whenever you are marshaling/unmarshaling a boolean.
Diffstat (limited to 'dbus/dbus-marshal-validate.c')
-rw-r--r--dbus/dbus-marshal-validate.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/dbus/dbus-marshal-validate.c b/dbus/dbus-marshal-validate.c
index d3507739..05148604 100644
--- a/dbus/dbus-marshal-validate.c
+++ b/dbus/dbus-marshal-validate.c
@@ -159,11 +159,6 @@ validate_body_helper (DBusTypeReader *reader,
break;
case DBUS_TYPE_BOOLEAN:
- if (!(*p == 0 || *p == 1))
- return DBUS_INVALID_BOOLEAN_NOT_ZERO_OR_ONE;
- ++p;
- break;
-
case DBUS_TYPE_INT32:
case DBUS_TYPE_UINT32:
case DBUS_TYPE_INT64:
@@ -179,6 +174,15 @@ validate_body_helper (DBusTypeReader *reader,
return DBUS_INVALID_ALIGNMENT_PADDING_NOT_NUL;
++p;
}
+
+ if (current_type == DBUS_TYPE_BOOLEAN)
+ {
+ dbus_uint32_t v = _dbus_unpack_uint32 (byte_order,
+ p);
+ if (!(v == 0 || v == 1))
+ return DBUS_INVALID_BOOLEAN_NOT_ZERO_OR_ONE;
+ }
+
p += alignment;
break;