diff options
author | Havoc Pennington <hp@redhat.com> | 2003-04-03 21:56:22 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2003-04-03 21:56:22 +0000 |
commit | f216e81432ddf04889202c33a6e68113f94d7611 (patch) | |
tree | bb8386366d183e43dc3471219ec627a21c65a639 /dbus/dbus-bus.c | |
parent | fe9f3b45cc7e2e84d180c433f1ab5f8fd0a0c619 (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.c | 14 |
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; } |