From f216e81432ddf04889202c33a6e68113f94d7611 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Thu, 3 Apr 2003 21:56:22 +0000 Subject: 2003-04-03 Havoc Pennington * bus/activation.c (load_directory): fix up memleaks (bus_activation_entry_free): free the entry * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if we get one from the message bus; fix memleaks. * dbus/dbus-message.c (dbus_set_error_from_message): new function --- bus/activation.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'bus/activation.c') diff --git a/bus/activation.c b/bus/activation.c index eb56a744..ef5c1730 100644 --- a/bus/activation.c +++ b/bus/activation.c @@ -110,6 +110,8 @@ bus_activation_entry_free (BusActivationEntry *entry) dbus_free (entry->name); dbus_free (entry->exec); + + dbus_free (entry); } static dbus_bool_t @@ -197,7 +199,8 @@ load_directory (BusActivation *activation, DBusString full_path; BusDesktopFile *desktop_file; DBusError tmp_error; - + dbus_bool_t retval; + _DBUS_ASSERT_ERROR_IS_CLEAR (error); _dbus_string_init_const (&dir, directory); @@ -218,14 +221,16 @@ load_directory (BusActivation *activation, return FALSE; } - /* from this point it's safe to "goto failed" */ + retval = FALSE; + + /* from this point it's safe to "goto out" */ iter = _dbus_directory_open (&dir, error); if (iter == NULL) { _dbus_verbose ("Failed to open directory %s: %s\n", directory, error ? error->message : "unknown"); - goto failed; + goto out; } /* Now read the files */ @@ -240,7 +245,7 @@ load_directory (BusActivation *activation, !_dbus_concat_dir_and_file (&full_path, &filename)) { BUS_SET_OOM (error); - goto failed; + goto out; } if (!_dbus_string_ends_with_c_str (&filename, ".service")) @@ -261,7 +266,7 @@ load_directory (BusActivation *activation, if (dbus_error_has_name (&tmp_error, DBUS_ERROR_NO_MEMORY)) { dbus_move_error (&tmp_error, error); - goto failed; + goto out; } dbus_error_free (&tmp_error); @@ -279,7 +284,7 @@ load_directory (BusActivation *activation, if (dbus_error_has_name (&tmp_error, DBUS_ERROR_NO_MEMORY)) { dbus_move_error (&tmp_error, error); - goto failed; + goto out; } dbus_error_free (&tmp_error); @@ -296,13 +301,16 @@ load_directory (BusActivation *activation, if (dbus_error_is_set (&tmp_error)) { dbus_move_error (&tmp_error, error); - goto failed; + goto out; } - return TRUE; + retval = TRUE; - failed: - _DBUS_ASSERT_ERROR_IS_SET (error); + out: + if (!retval) + _DBUS_ASSERT_ERROR_IS_SET (error); + else + _DBUS_ASSERT_ERROR_IS_CLEAR (error); if (iter != NULL) _dbus_directory_close (iter); @@ -311,7 +319,7 @@ load_directory (BusActivation *activation, _dbus_string_free (&filename); _dbus_string_free (&full_path); - return FALSE; + return retval; } BusActivation* -- cgit