dbus_message_demarshal_bytes_needed: correct a wrong assertion
authorSimon McVittie <simon.mcvittie@collabora.co.uk>
Thu, 9 Jun 2011 17:35:43 +0000 (18:35 +0100)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Fri, 10 Jun 2011 17:10:17 +0000 (18:10 +0100)
It's entirely possible for a message to indicate how many bytes we need,
without actually being complete.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38120
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
dbus/dbus-message.c

index 24ef5ac..a59ed9b 100644 (file)
@@ -4680,7 +4680,7 @@ dbus_message_demarshal_bytes_needed(const char *buf,
 
   if (validity == DBUS_VALID)
     {
-      _dbus_assert(have_message);
+      _dbus_assert (have_message || (header_len + body_len) > len);
       return header_len + body_len;
     }
   else