diff options
author | Scott James Remnant <scott@ubuntu.com> | 2009-07-09 16:35:13 +0100 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2009-07-14 15:39:19 -0400 |
commit | 951b0c8007fca2a5add7402cb1e260bdefaf0461 (patch) | |
tree | 585896b7357365ec0eea016e8d5764ebcadccc93 | |
parent | 2ff4bc2513db5a0c64297fbf4c5a8486c737a12a (diff) | |
download | dbus-951b0c8007fca2a5add7402cb1e260bdefaf0461.tar.gz |
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>
(cherry picked from commit 3f070088232f82fafce97c4fb3015da098fe00bf)
-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; } } |