summaryrefslogtreecommitdiffstats
path: root/dbus
diff options
context:
space:
mode:
authorScott James Remnant <scott@ubuntu.com>2009-07-09 16:35:13 +0100
committerScott James Remnant <scott@ubuntu.com>2009-07-09 16:35:13 +0100
commit3f070088232f82fafce97c4fb3015da098fe00bf (patch)
treef2d90a7cc115cb0aa65130acf1681090819ef734 /dbus
parente57a368c440aec39caf6c3b491cf76ef615dc2e8 (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.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;
}
}