diff --git a/src/libsystemd/sd-bus/bus-container.c b/src/libsystemd/sd-bus/bus-container.c index 1159af46cd..17bbca7deb 100644 --- a/src/libsystemd/sd-bus/bus-container.c +++ b/src/libsystemd/sd-bus/bus-container.c @@ -75,8 +75,7 @@ int bus_container_connect_socket(sd_bus *b) { r = wait_for_terminate_and_check("(sd-buscntrns)", child, 0); if (r < 0) return r; - if (r != EXIT_SUCCESS) - return -EPROTO; + bool nonzero_exit_status = r != EXIT_SUCCESS; n = read(pair[0], &error_buf, sizeof(error_buf)); if (n < 0) @@ -98,5 +97,8 @@ int bus_container_connect_socket(sd_bus *b) { return log_debug_errno(error_buf, "Got error from (sd-buscntr): %m"); } + if (nonzero_exit_status) + return -EPROTO; + return bus_socket_start_auth(b); }