diff options
author | Ralf Habacker <ralf.habacker@freenet.de> | 2015-11-09 13:38:59 +0100 |
---|---|---|
committer | Ralf Habacker <ralf.habacker@freenet.de> | 2015-11-11 13:44:41 +0100 |
commit | d8569ac647da4d62c7a251d8e809f2d545a77837 (patch) | |
tree | 48c11b7cd7d9c507ec8ed4b761283a6848f976f8 | |
parent | dcdb29a1051810ac125b7e281e7688687df0ed70 (diff) | |
download | dbus-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.c | 17 |
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 */ |