From 1708094c0e00ab433bb0a51981f8b77d24aee256 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Wed, 9 Apr 2003 20:31:21 +0000 Subject: 2003-04-09 Havoc Pennington * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and a memory leak * bus/dispatch.c (check_service_activated): fix bug in test * dbus/dbus-mainloop.c (check_timeout): fix this up * dbus/dbus-internals.c (_dbus_verbose_real): include PID in verbose output so we can sort out output from different processes, e.g. in the activation case. --- dbus/dbus-bus.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) (limited to 'dbus/dbus-bus.c') diff --git a/dbus/dbus-bus.c b/dbus/dbus-bus.c index 74703866..e7b4c06e 100644 --- a/dbus/dbus-bus.c +++ b/dbus/dbus-bus.c @@ -428,8 +428,11 @@ dbus_bus_register (DBusConnection *connection, DBusMessage *message, *reply; char *name; BusData *bd; - + dbus_bool_t retval; + _DBUS_ASSERT_ERROR_IS_CLEAR (error); + + retval = FALSE; bd = ensure_bus_data (connection); if (bd == NULL) @@ -461,22 +464,26 @@ dbus_bus_register (DBusConnection *connection, dbus_message_unref (message); if (reply == NULL) - { - _DBUS_ASSERT_ERROR_IS_SET (error); - return FALSE; - } + goto out; + else if (dbus_set_error_from_message (error, reply)) + goto out; + else if (!dbus_message_get_args (reply, error, + DBUS_TYPE_STRING, &name, + 0)) + goto out; + + bd->base_service = name; - if (!dbus_message_get_args (reply, error, - DBUS_TYPE_STRING, &name, - 0)) - { - _DBUS_ASSERT_ERROR_IS_SET (error); - return FALSE; - } + retval = TRUE; + + out: + if (reply) + dbus_message_unref (reply); - bd->base_service = name; + if (!retval) + _DBUS_ASSERT_ERROR_IS_SET (error); - return TRUE; + return retval; } -- cgit