_dbus_message_iter_open_signature: Clarify why this is not leaky
authorSimon McVittie <smcv@collabora.com>
Tue, 4 Jul 2017 12:33:30 +0000 (13:33 +0100)
committerSimon McVittie <smcv@collabora.com>
Wed, 5 Jul 2017 12:13:14 +0000 (13:13 +0100)
The same assertion appears closer to the top of the function, and there
is no opportunity for it to have become false here.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=101568

dbus/dbus-message.c

index 6d9dd55..f66ac1a 100644 (file)
@@ -2538,6 +2538,9 @@ _dbus_message_iter_open_signature (DBusMessageRealIter *real)
 
   real->sig_refcount = 1;
 
+  /* If this assertion failed, then str would be neither stored in u.writer
+   * nor freed by this function, resulting in a memory leak. */
+  _dbus_assert (real->u.writer.type_str == NULL);
   _dbus_type_writer_add_types (&real->u.writer,
                                str, _dbus_string_get_length (str));
   return TRUE;