summaryrefslogtreecommitdiffstats
path: root/bus/activation.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-04-03 21:56:22 +0000
committerHavoc Pennington <hp@redhat.com>2003-04-03 21:56:22 +0000
commitf216e81432ddf04889202c33a6e68113f94d7611 (patch)
treebb8386366d183e43dc3471219ec627a21c65a639 /bus/activation.c
parentfe9f3b45cc7e2e84d180c433f1ab5f8fd0a0c619 (diff)
2003-04-03 Havoc Pennington <hp@redhat.com>
* 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
Diffstat (limited to 'bus/activation.c')
-rw-r--r--bus/activation.c30
1 files changed, 19 insertions, 11 deletions
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*