Calling error_report() in a function that takes an Error ** argument
is suspicious. vnc_init_func() does that, and then fails without
setting an error. Its caller main(), via qemu_opts_foreach(), is fine
with it, but clean it up anyway.
Cc: Gerd Hoffmann <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
---
ui/vnc.c | 9 +++++----
vl.c | 2 +-
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/ui/vnc.c b/ui/vnc.c
index 98e3d3b1d8..fcd2744d52 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -4082,13 +4082,14 @@ int vnc_init_func(void *opaque, QemuOpts *opts, Error
**errp)
assert(id);
vnc_display_init(id, &local_err);
if (local_err) {
- error_report_err(local_err);
- exit(1);
+ error_propagate(errp, local_err);
+ return -1;
}
vnc_display_open(id, &local_err);
if (local_err != NULL) {
- error_reportf_err(local_err, "Failed to start VNC server: ");
- exit(1);
+ error_propagate_prepend(errp, local_err,
+ "Failed to start VNC server: ");
+ return -1;
}
return 0;
}
diff --git a/vl.c b/vl.c
index c053117028..8e0006d49c 100644
--- a/vl.c
+++ b/vl.c
@@ -4526,7 +4526,7 @@ int main(int argc, char **argv, char **envp)
/* init remote displays */
#ifdef CONFIG_VNC
qemu_opts_foreach(qemu_find_opts("vnc"),
- vnc_init_func, NULL, NULL);
+ vnc_init_func, NULL, &error_fatal);
#endif
if (using_spice) {