diff --git a/ui/vnc.c b/ui/vnc.c index 98e3d3b1d8..0c1b477425 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -4082,13 +4082,13 @@ 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(errp, local_err); + return -1; } return 0; } diff --git a/vl.c b/vl.c index 1fa1e14853..2ff0c5f32d 100644 --- a/vl.c +++ b/vl.c @@ -4527,7 +4527,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) {