GDBusMessage: fix leak of GError

As part of the deserialisation process of a zero-length array in the
DBus wire format, parse_value_from_blob() recursively calls itself with
the expectation of failing (as can be seen by the assert immediately
following).

It passes &local_error to this always-failing call and then fails to
free it (indeed, to use it at all).  The result is that the GError is
leaked.

Fix it by passing in NULL instead, so that the GError is never created
in the first place.

https://bugzilla.gnome.org/show_bug.cgi?id=662411
This commit is contained in:
Ryan Lortie 2011-10-21 14:05:10 -04:00
parent 87b2c723f7
commit ad6cb36ee2

View File

@ -1340,7 +1340,7 @@ parse_value_from_blob (GMemoryInputStream *mis,
element_type,
TRUE,
indent + 2,
&local_error);
NULL);
g_assert (item == NULL);
}
else