X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd%2Fsd-bus%2Fbus-error.c;h=5ca974a1910c7a5647dd186499876402f3af9aee;hp=c2e41fb01676de2e7e79c7b4b9276af042a0e4f5;hb=8bf13eb1e02b9977ae1cd331ae5dc7305a305a09;hpb=607553f9306286fdccf0b356bc3d1087adfe21c4 diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c index c2e41fb01..5ca974a19 100644 --- a/src/libsystemd/sd-bus/bus-error.c +++ b/src/libsystemd/sd-bus/bus-error.c @@ -194,8 +194,13 @@ int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_li return -ENOMEM; } - if (format) - vasprintf((char**) &e->message, format, ap); + if (format) { + int r; + + r = vasprintf((char**) &e->message, format, ap); + if (r < 0) + return -ENOMEM; + } e->_need_free = 1; @@ -312,7 +317,7 @@ static void bus_error_strerror(sd_bus_error *e, int error) { continue; } - if (!x || errno) { + if (errno) { free(m); return; }