]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
Fix memory leaks in bus_activation_service_reload_test() in case of errors.
authorRalf Habacker <ralf.habacker@freenet.de>
Wed, 11 Nov 2015 14:02:00 +0000 (15:02 +0100)
committerRalf Habacker <ralf.habacker@freenet.de>
Wed, 11 Nov 2015 14:02:00 +0000 (15:02 +0100)
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=92721
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
bus/activation.c

index 3c3bd7a585fbe7f5a672e4eaf2d09ec3de7c933d..7b1ab063739ef3f349b0447f9c0810f5e7b36dd4 100644 (file)
@@ -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 */