diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c index 6e0b88e9d7..f9a195d2ed 100644 --- a/src/libsystemd/sd-bus/sd-bus.c +++ b/src/libsystemd/sd-bus/sd-bus.c @@ -4198,14 +4198,15 @@ _public_ int sd_bus_get_description(sd_bus *bus, const char **description) { assert_return(bus, -EINVAL); assert_return(bus = bus_resolve(bus), -ENOPKG); assert_return(description, -EINVAL); - assert_return(bus->description, -ENXIO); assert_return(!bus_origin_changed(bus), -ECHILD); - if (bus->description) - *description = bus->description; - else - *description = runtime_scope_to_string(bus->runtime_scope); + const char *d = bus->description; + if (!d) + d = runtime_scope_to_string(bus->runtime_scope); + if (!d) + return -ENXIO; + *description = d; return 0; }