]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-bus: use bus_error_message() at several more places
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 17 Feb 2026 07:44:36 +0000 (16:44 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 17 Feb 2026 08:00:42 +0000 (17:00 +0900)
For CID#1645014, CID#1645016, and CID#1645017.

src/libsystemd/sd-bus/bus-control.c
src/libsystemd/sd-bus/sd-bus.c

index f2338ae2b6a8e73bc99d40fd342ab7d481650618..5368024f28cfd4b772b4fb690220f7d217673834 100644 (file)
@@ -4,6 +4,7 @@
 
 #include "alloc-util.h"
 #include "bus-control.h"
+#include "bus-error.h"
 #include "bus-internal.h"
 #include "bus-message.h"
 #include "fd-util.h"
@@ -136,11 +137,14 @@ static int default_request_name_handler(
         assert(m);
 
         if (sd_bus_message_is_method_error(m, NULL)) {
-                log_debug_errno(sd_bus_message_get_errno(m),
+                const sd_bus_error *e = ASSERT_PTR(sd_bus_message_get_error(m));
+                r = sd_bus_error_get_errno(e);
+
+                log_debug_errno(r,
                                 "Unable to request name, failing connection: %s",
-                                sd_bus_message_get_error(m)->message);
+                                bus_error_message(e, r));
 
-                bus_enter_closing(sd_bus_message_get_bus(m), -sd_bus_message_get_errno(m));
+                bus_enter_closing(sd_bus_message_get_bus(m), -r);
                 return 1;
         }
 
@@ -290,11 +294,12 @@ static int default_release_name_handler(
         assert(m);
 
         if (sd_bus_message_is_method_error(m, NULL)) {
-                log_debug_errno(sd_bus_message_get_errno(m),
-                                "Unable to release name, failing connection: %s",
-                                sd_bus_message_get_error(m)->message);
+                const sd_bus_error *e = ASSERT_PTR(sd_bus_message_get_error(m));
+                r = sd_bus_error_get_errno(e);
+
+                log_debug_errno(r, "Unable to release name, failing connection: %s", bus_error_message(e, r));
 
-                bus_enter_closing(sd_bus_message_get_bus(m), -sd_bus_message_get_errno(m));
+                bus_enter_closing(sd_bus_message_get_bus(m), -r);
                 return 1;
         }
 
index 8318bc5853745dc9cab070a6458f52a2e01db044..9fdd8cbd66bf7181cea091c6dee958e99402764e 100644 (file)
@@ -3483,10 +3483,13 @@ static int add_match_callback(
         sd_bus_slot_ref(match_slot);
 
         if (sd_bus_message_is_method_error(m, NULL)) {
-                r = log_debug_errno(sd_bus_message_get_errno(m),
+                const sd_bus_error *e = ASSERT_PTR(sd_bus_message_get_error(m));
+                r = sd_bus_error_get_errno(e);
+
+                r = log_debug_errno(r,
                                     "Unable to add match %s, failing connection: %s",
                                     match_slot->match_callback.match_string,
-                                    sd_bus_message_get_error(m)->message);
+                                    bus_error_message(e, r));
 
                 failed = true;
         } else