X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-bus%2Fbus-error.c;h=35e261464067abfe8c18807fcfeaaa4b4f0cc5c5;hb=c9b6cb28c35e18649575b82466d7d6eb29aa5196;hp=c347b101bc479e809478ea063d6f687ecf5ffd26;hpb=40ca29a1370379d43e44c0ed425eecc7218dcbca;p=elogind.git diff --git a/src/libsystemd-bus/bus-error.c b/src/libsystemd-bus/bus-error.c index c347b101b..35e261464 100644 --- a/src/libsystemd-bus/bus-error.c +++ b/src/libsystemd-bus/bus-error.c @@ -448,11 +448,18 @@ int sd_bus_error_set_errnof(sd_bus_error *e, int error, const char *format, ...) const char *bus_error_message(const sd_bus_error *e, int error) { + if (e) { + /* Sometimes the D-Bus server is a little bit too verbose with + * its error messages, so let's override them here */ + if (sd_bus_error_has_name(e, SD_BUS_ERROR_ACCESS_DENIED)) + return "Access denied"; + + if (e->message) + return e->message; + } + if (error < 0) error = -error; - if (e && e->message) - return e->message; - return strerror(error); }