summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-bus.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 /dbus/dbus-bus.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 'dbus/dbus-bus.c')
-rw-r--r--dbus/dbus-bus.c14
1 files changed, 12 insertions, 2 deletions
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;
}