diff options
author | Scott James Remnant <scott@ubuntu.com> | 2009-07-09 16:35:13 +0100 |
---|---|---|
committer | Scott James Remnant <scott@ubuntu.com> | 2009-07-09 16:35:13 +0100 |
commit | 3f070088232f82fafce97c4fb3015da098fe00bf (patch) | |
tree | f2d90a7cc115cb0aa65130acf1681090819ef734 /dbus | |
parent | e57a368c440aec39caf6c3b491cf76ef615dc2e8 (diff) |
dbus_message_append_args_valist - abandon container
In case of OOM when constructing an array, we should abandon the
container to free the resources.
Signed-off-by: Scott James Remnant <scott@ubuntu.com>
Diffstat (limited to 'dbus')
-rw-r--r-- | dbus/dbus-message.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index 30b5d6c0..98c284ed 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -1567,8 +1567,10 @@ dbus_message_append_args_valist (DBusMessage *message, if (!dbus_message_iter_append_fixed_array (&array, element_type, value, - n_elements)) + n_elements)) { + dbus_message_iter_abandon_container (&iter, &array); goto failed; + } } else if (element_type == DBUS_TYPE_STRING || element_type == DBUS_TYPE_SIGNATURE || @@ -1589,8 +1591,10 @@ dbus_message_append_args_valist (DBusMessage *message, { if (!dbus_message_iter_append_basic (&array, element_type, - &value[i])) + &value[i])) { + dbus_message_iter_abandon_container (&iter, &array); goto failed; + } ++i; } } |