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 --- dbus/dbus-bus.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'dbus/dbus-bus.c') diff --git a/dbus/dbus-bus.c b/dbus/dbus-bus.c index dc1762eb..df883f51 100644 --- a/dbus/dbus-bus.c +++ b/dbus/dbus-bus.c @@ -534,7 +534,7 @@ dbus_bus_acquire_service (DBusConnection *connection, DBusError *error) { DBusMessage *message, *reply; - int service_result; + dbus_uint32_t service_result; message = dbus_message_new (DBUS_SERVICE_DBUS, DBUS_MESSAGE_ACQUIRE_SERVICE); @@ -564,16 +564,26 @@ dbus_bus_acquire_service (DBusConnection *connection, { _DBUS_ASSERT_ERROR_IS_SET (error); return -1; - } + } + if (dbus_set_error_from_message (error, reply)) + { + _DBUS_ASSERT_ERROR_IS_SET (error); + dbus_message_unref (reply); + return -1; + } + if (!dbus_message_get_args (reply, error, DBUS_TYPE_UINT32, &service_result, 0)) { _DBUS_ASSERT_ERROR_IS_SET (error); + dbus_message_unref (reply); return -1; } + dbus_message_unref (reply); + return service_result; } -- cgit