Ensure that hints are added even if errp is &error_fatal or &error_abort.
Signed-off-by: Greg Kurz <gr...@kaod.org> --- util/qemu-option.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/util/qemu-option.c b/util/qemu-option.c index 97172b5eaa7f..2a45dfa585d4 100644 --- a/util/qemu-option.c +++ b/util/qemu-option.c @@ -155,11 +155,14 @@ void parse_option_size(const char *name, const char *value, return; } if (err) { - error_setg(errp, QERR_INVALID_PARAMETER_VALUE, name, + Error *local_err = NULL; + + error_setg(&local_err, QERR_INVALID_PARAMETER_VALUE, name, "a non-negative number below 2^64"); - error_append_hint(errp, "Optional suffix k, M, G, T, P or E means" + error_append_hint(&local_err, "Optional suffix k, M, G, T, P or E means" " kilo-, mega-, giga-, tera-, peta-\n" "and exabytes, respectively.\n"); + error_propagate(errp, local_err); return; } *ret = size; @@ -664,10 +667,13 @@ QemuOpts *qemu_opts_create(QemuOptsList *list, const char *id, if (id) { if (!id_wellformed(id)) { - error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "id", + Error *local_err = NULL; + + error_setg(&local_err, QERR_INVALID_PARAMETER_VALUE, "id", "an identifier"); - error_append_hint(errp, "Identifiers consist of letters, digits, " + error_append_hint(&local_err, "Identifiers consist of letters, digits, " "'-', '.', '_', starting with a letter.\n"); + error_propagate(errp, local_err); return NULL; } opts = qemu_opts_find(list, id);