summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2015-11-09 13:38:59 +0100
committerRalf Habacker <ralf.habacker@freenet.de>2015-11-11 13:44:41 +0100
commitd8569ac647da4d62c7a251d8e809f2d545a77837 (patch)
tree48c11b7cd7d9c507ec8ed4b761283a6848f976f8
parentdcdb29a1051810ac125b7e281e7688687df0ed70 (diff)
downloaddbus-d8569ac647da4d62c7a251d8e809f2d545a77837.tar.gz
Fix memory leaks in bus_activation_service_reload_test() in case of errors.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=92721 Reviewed-by: https://bugs.freedesktop.org/show_bug.cgi?id=92721
-rw-r--r--bus/activation.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/bus/activation.c b/bus/activation.c
index 3c3bd7a5..7b1ab063 100644
--- a/bus/activation.c
+++ b/bus/activation.c
@@ -2593,6 +2593,7 @@ bus_activation_service_reload_test (const DBusString *test_data_dir)
{
DBusString directory;
const char *tmp;
+ dbus_bool_t ret = FALSE;
if (!_dbus_string_init (&directory))
return FALSE;
@@ -2600,16 +2601,14 @@ bus_activation_service_reload_test (const DBusString *test_data_dir)
tmp = _dbus_get_tmpdir ();
if (tmp == NULL)
- return FALSE;
+ goto out;
if (!_dbus_string_append (&directory, tmp))
- return FALSE;
+ goto out;
if (!_dbus_string_append (&directory, "/dbus-reload-test-") ||
!_dbus_generate_random_ascii (&directory, 6, NULL))
- {
- return FALSE;
- }
+ goto out;
/* Do normal tests */
if (!init_service_reload_test (&directory))
@@ -2631,11 +2630,13 @@ bus_activation_service_reload_test (const DBusString *test_data_dir)
/* Cleanup test directory */
if (!cleanup_service_reload_test (&directory))
- return FALSE;
+ goto out;
- _dbus_string_free (&directory);
+ ret = TRUE;
- return TRUE;
+out:
+ _dbus_string_free (&directory);
+ return ret;
}
#endif /* DBUS_ENABLE_EMBEDDED_TESTS */