mirror of
https://github.com/clearlinux/systemd-stable.git
synced 2026-09-05 13:11:32 +00:00
sd-bus: if we don't manage to properly allocate the error message for an sd_bus_error, just go on
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 8bf13eb1e0
This commit is contained in:
@@ -194,13 +194,10 @@ int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_li
|
||||
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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user