diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2016-02-15 14:58:59 +0000 |
---|---|---|
committer | Simon McVittie <smcv@debian.org> | 2016-03-02 18:15:36 +0000 |
commit | 338cfa15992b73d2cd43a50c84bf5ebc4eeda04f (patch) | |
tree | 46edfbde971605c6dd9f2c0500a68bf2fbaabf5c | |
parent | ca9ea25e1122b33eaf15c63e4c34ebc157c39f6f (diff) |
DBusMessage: assert the properties we need DBusMessageIter to have
We already asserted that DBusMessageIter must be at least as large
as DBusMessageRealIter (so that casting DBusMessageIter * to
DBusMessageRealIter * does not result in overflowing the stack
variable). Also assert that it must have alignment requirements at
least as strict as those of DBusMessageRealIter * (so that casting
does not increase the required alignment).
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Thiago Macieira <thiago@kde.org>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=94136
-rw-r--r-- | dbus/dbus-message.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index 699e022b..50e87cae 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -2025,7 +2025,10 @@ _dbus_message_iter_init_common (DBusMessage *message, DBusMessageRealIter *real, int iter_type) { + /* If these static assertions fail on your platform, report it as a bug. */ _DBUS_STATIC_ASSERT (sizeof (DBusMessageRealIter) <= sizeof (DBusMessageIter)); + _DBUS_STATIC_ASSERT (_DBUS_ALIGNOF (DBusMessageRealIter) <= + _DBUS_ALIGNOF (DBusMessageIter)); /* Since the iterator will read or write who-knows-what from the * message, we need to get in the right byte order |