diff options
author | Colin Walters <walters@verbum.org> | 2008-05-27 13:54:11 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2008-05-27 13:54:11 -0400 |
commit | d20c90aab3b0eca8715deaa59877f35a7d4e345e (patch) | |
tree | d0fd885b93f6ee98855c578ae95c2e296ef536a5 /dbus/dbus-gvalue.c | |
parent | fde77bff42fac9ed95869a69acff4f9daab23e04 (diff) |
Bug 12849: Fix use after free (Kimmo Hämäläinen)
Diffstat (limited to 'dbus/dbus-gvalue.c')
-rw-r--r-- | dbus/dbus-gvalue.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/dbus/dbus-gvalue.c b/dbus/dbus-gvalue.c index a580725..87e6409 100644 --- a/dbus/dbus-gvalue.c +++ b/dbus/dbus-gvalue.c @@ -766,7 +766,6 @@ demarshal_valuearray (DBusGValueMarshalCtx *context, current_sig = dbus_message_iter_get_signature (&subiter); elt_type = _dbus_gtype_from_signature (current_sig, TRUE); - dbus_free (current_sig); if (elt_type == G_TYPE_INVALID) { g_value_array_free (ret); @@ -774,8 +773,10 @@ demarshal_valuearray (DBusGValueMarshalCtx *context, DBUS_GERROR, DBUS_GERROR_INVALID_ARGS, _("Couldn't demarshal argument with signature \"%s\""), current_sig); + dbus_free (current_sig); return FALSE; } + dbus_free (current_sig); g_value_init (val, elt_type); |