mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-01-11 13:20:22 +01:00
Merge branch 'dbus_msg_iter_fix_memleak' into 'master'
dbus_message_iter_get_signature: Fix two memory leaks See merge request dbus/dbus!403
This commit is contained in:
commit
16232bdd33
1 changed files with 8 additions and 4 deletions
|
|
@ -2293,7 +2293,7 @@ dbus_message_iter_get_signature (DBusMessageIter *iter)
|
|||
{
|
||||
const DBusString *sig;
|
||||
DBusString retstr;
|
||||
char *ret;
|
||||
char *ret = NULL;
|
||||
int start, len;
|
||||
DBusMessageRealIter *real = (DBusMessageRealIter *)iter;
|
||||
|
||||
|
|
@ -2307,9 +2307,13 @@ dbus_message_iter_get_signature (DBusMessageIter *iter)
|
|||
if (!_dbus_string_append_len (&retstr,
|
||||
_dbus_string_get_const_data (sig) + start,
|
||||
len))
|
||||
return NULL;
|
||||
if (!_dbus_string_steal_data (&retstr, &ret))
|
||||
return NULL;
|
||||
goto oom;
|
||||
|
||||
/* This is correct whether it succeeds or fails: on success it sets `ret`,
|
||||
* and on failure it leaves `ret` set to NULL. */
|
||||
_dbus_string_steal_data (&retstr, &ret);
|
||||
|
||||
oom:
|
||||
_dbus_string_free (&retstr);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue