diff --git a/src/core/unit.c b/src/core/unit.c index 046e376b8a..2cddc924f3 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -3462,8 +3462,12 @@ static int get_name_owner_handler(sd_bus_message *message, void *userdata, sd_bu e = sd_bus_message_get_error(message); if (e) { - if (!sd_bus_error_has_name(e, "org.freedesktop.DBus.Error.NameHasNoOwner")) - log_unit_error(u, "Unexpected error response from GetNameOwner(): %s", e->message); + if (!sd_bus_error_has_name(e, "org.freedesktop.DBus.Error.NameHasNoOwner")) { + r = sd_bus_error_get_errno(e); + log_unit_error_errno(u, r, + "Unexpected error response from GetNameOwner(): %s", + bus_error_message(e, r)); + } new_owner = NULL; } else { diff --git a/src/login/logind-user.c b/src/login/logind-user.c index 6d250be321..6d61b55c2b 100644 --- a/src/login/logind-user.c +++ b/src/login/logind-user.c @@ -359,15 +359,19 @@ static void user_start_service(User *u) { static int update_slice_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) { _cleanup_(user_record_unrefp) UserRecord *ur = userdata; + const sd_bus_error *e; + int r; assert(m); assert(ur); - if (sd_bus_message_is_method_error(m, NULL)) { - log_warning_errno(sd_bus_message_get_errno(m), + e = sd_bus_message_get_error(m); + if (e) { + r = sd_bus_error_get_errno(e); + log_warning_errno(r, "Failed to update slice of %s, ignoring: %s", ur->user_name, - sd_bus_message_get_error(m)->message); + bus_error_message(e, r)); return 0; } diff --git a/src/shared/bus-wait-for-units.c b/src/shared/bus-wait-for-units.c index 29620e0d1b..c867f1cbfd 100644 --- a/src/shared/bus-wait-for-units.c +++ b/src/shared/bus-wait-for-units.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include "bus-error.h" #include "bus-map-properties.h" #include "bus-wait-for-units.h" #include "hashmap.h" @@ -288,19 +289,22 @@ static int on_properties_changed(sd_bus_message *m, void *userdata, sd_bus_error return 0; } -static int on_get_all_properties(sd_bus_message *m, void *userdata, sd_bus_error *error) { +static int on_get_all_properties(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) { WaitForItem *item = userdata; + const sd_bus_error *e; int r; assert(item); - if (sd_bus_error_is_set(error)) { + e = sd_bus_message_get_error(m); + if (e) { BusWaitForUnits *d = item->parent; d->has_failed = true; - log_debug_errno(sd_bus_error_get_errno(error), "GetAll() failed for %s: %s", - item->bus_path, error->message); + r = sd_bus_error_get_errno(e); + log_debug_errno(r, "GetAll() failed for %s: %s", + item->bus_path, bus_error_message(e, r)); call_unit_callback_and_wait(d, item, false); bus_wait_for_units_check_ready(d);