sd_bus_error_setfv() must initialize the sd_bus_error value to some
sensible value and then return a good errno code matching that. If it
cannot work at all it should set the error statically to the OOM error.
But if it can work half-way (i.e. initialize the name, but not the
message) it should do so and still return the correct errno number for
it.
This effectively reverts
8bf13eb1e02b9977ae1cd331ae5dc7305a305a09
return -ENOMEM;
}
- if (format) {
- int r;
-
- r = vasprintf((char**) &e->message, format, ap);
- if (r < 0)
- return -ENOMEM;
- }
+ /* Of we hit OOM on formatting the pretty message, we ignore
+ * this, since we at least managed to write the error name */
+ if (format)
+ (void) vasprintf((char**) &e->message, format, ap);
e->_need_free = 1;