From: Yu Watanabe Date: Wed, 15 Nov 2023 19:37:02 +0000 (+0900) Subject: test: several cleanups for test-bus-chat X-Git-Tag: v255-rc3~53^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ce5a6d5307568671cec7c253e984ffc0eafa726b;p=thirdparty%2Fsystemd.git test: several cleanups for test-bus-chat - use sd_bus_query_sender_creds() to retrieve credentials, - read credentials only when we get credentials, to avoid triggering assert_return(), - downgrade log level of expected failure, and update log message about unexpected success. Prompted by #30029. --- diff --git a/src/libsystemd/sd-bus/test-bus-chat.c b/src/libsystemd/sd-bus/test-bus-chat.c index 4b457fd76ba..da1340fe593 100644 --- a/src/libsystemd/sd-bus/test-bus-chat.c +++ b/src/libsystemd/sd-bus/test-bus-chat.c @@ -106,6 +106,7 @@ static int server(sd_bus *_bus) { while (!client1_gone || !client2_gone) { _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL; + _cleanup_(sd_bus_creds_unrefp) sd_bus_creds *creds = NULL; pid_t pid = 0; const char *label = NULL; @@ -122,8 +123,16 @@ static int server(sd_bus *_bus) { if (!m) continue; - (void) sd_bus_creds_get_pid(sd_bus_message_get_creds(m), &pid); - (void) sd_bus_creds_get_selinux_context(sd_bus_message_get_creds(m), &label); + r = sd_bus_query_sender_creds(m, SD_BUS_CREDS_AUGMENT | SD_BUS_CREDS_PID | SD_BUS_CREDS_SELINUX_CONTEXT, &creds); + if (r < 0) + log_debug_errno(r, "Failed to query sender credentials, ignoring: %m"); + else { + r = sd_bus_creds_get_pid(creds, &pid); + if (r < 0) + return log_error_errno(r, "Failed to get sender pid: %m"); + + (void) sd_bus_creds_get_selinux_context(creds, &label); + } log_info("Got message! member=%s pid="PID_FMT" label=%s", strna(sd_bus_message_get_member(m)), @@ -421,9 +430,12 @@ static void* client2(void *p) { r = sd_bus_call(bus, m, 200 * USEC_PER_MSEC, &error, &reply); if (r < 0) - log_info("Failed to issue method call: %s", bus_error_message(&error, r)); - else - log_info("Slow call succeed."); + log_debug("Failed to issue method call: %s", bus_error_message(&error, r)); + else { + log_error("Slow call unexpectedly succeed."); + r = -ENOANO; + goto finish; + } m = sd_bus_message_unref(m);