summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott James Remnant <scott@ubuntu.com>2009-07-09 16:35:13 +0100
committerColin Walters <walters@verbum.org>2009-07-14 15:39:19 -0400
commit951b0c8007fca2a5add7402cb1e260bdefaf0461 (patch)
tree585896b7357365ec0eea016e8d5764ebcadccc93
parent2ff4bc2513db5a0c64297fbf4c5a8486c737a12a (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> (cherry picked from commit 3f070088232f82fafce97c4fb3015da098fe00bf)
-rw-r--r--dbus/dbus-message.c8
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;
}
}