Message ID | 20181008173125.19678-22-armbru@redhat.com |
---|---|
State | New |
Headers | show |
Series | Replace some unwise uses of error_report() & friends | expand |
On 08/10/2018 19:31, Markus Armbruster wrote: > Calling error_report() in a function that takes an Error ** argument > is suspicious. mon_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. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > vl.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/vl.c b/vl.c > index 3adc9dbe4f..1009d708a0 100644 > --- a/vl.c > +++ b/vl.c > @@ -2270,8 +2270,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp) > } else if (strcmp(mode, "control") == 0) { > flags = MONITOR_USE_CONTROL; > } else { > - error_report("unknown monitor mode \"%s\"", mode); > - exit(1); > + error_setg(errp, "unknown monitor mode \"%s\"", mode); > + return -1; > } > > if (qemu_opt_get_bool(opts, "pretty", 0)) > @@ -2285,8 +2285,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp) > chardev = qemu_opt_get(opts, "chardev"); > chr = qemu_chr_find(chardev); > if (chr == NULL) { > - error_report("chardev \"%s\" not found", chardev); > - exit(1); > + error_setg(errp, "chardev \"%s\" not found", chardev); > + return -1; > } > > monitor_init(chr, flags); > @@ -4365,10 +4365,8 @@ int main(int argc, char **argv, char **envp) > default_drive(default_floppy, snapshot, IF_FLOPPY, 0, FD_OPTS); > default_drive(default_sdcard, snapshot, IF_SD, 0, SD_OPTS); > > - if (qemu_opts_foreach(qemu_find_opts("mon"), > - mon_init_func, NULL, NULL)) { > - exit(1); > - } > + qemu_opts_foreach(qemu_find_opts("mon"), > + mon_init_func, NULL, &error_fatal); > > if (foreach_device_config(DEV_SERIAL, serial_parse) < 0) > exit(1); >
Hi On Mon, Oct 8, 2018 at 9:37 PM Markus Armbruster <armbru@redhat.com> wrote: > > Calling error_report() in a function that takes an Error ** argument > is suspicious. mon_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. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > vl.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/vl.c b/vl.c > index 3adc9dbe4f..1009d708a0 100644 > --- a/vl.c > +++ b/vl.c > @@ -2270,8 +2270,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp) > } else if (strcmp(mode, "control") == 0) { > flags = MONITOR_USE_CONTROL; > } else { > - error_report("unknown monitor mode \"%s\"", mode); > - exit(1); > + error_setg(errp, "unknown monitor mode \"%s\"", mode); > + return -1; > } > > if (qemu_opt_get_bool(opts, "pretty", 0)) > @@ -2285,8 +2285,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp) > chardev = qemu_opt_get(opts, "chardev"); > chr = qemu_chr_find(chardev); > if (chr == NULL) { > - error_report("chardev \"%s\" not found", chardev); > - exit(1); > + error_setg(errp, "chardev \"%s\" not found", chardev); > + return -1; > } > > monitor_init(chr, flags); > @@ -4365,10 +4365,8 @@ int main(int argc, char **argv, char **envp) > default_drive(default_floppy, snapshot, IF_FLOPPY, 0, FD_OPTS); > default_drive(default_sdcard, snapshot, IF_SD, 0, SD_OPTS); > > - if (qemu_opts_foreach(qemu_find_opts("mon"), > - mon_init_func, NULL, NULL)) { > - exit(1); > - } > + qemu_opts_foreach(qemu_find_opts("mon"), > + mon_init_func, NULL, &error_fatal); > > if (foreach_device_config(DEV_SERIAL, serial_parse) < 0) > exit(1); > -- > 2.17.1 > >
diff --git a/vl.c b/vl.c index 3adc9dbe4f..1009d708a0 100644 --- a/vl.c +++ b/vl.c @@ -2270,8 +2270,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp) } else if (strcmp(mode, "control") == 0) { flags = MONITOR_USE_CONTROL; } else { - error_report("unknown monitor mode \"%s\"", mode); - exit(1); + error_setg(errp, "unknown monitor mode \"%s\"", mode); + return -1; } if (qemu_opt_get_bool(opts, "pretty", 0)) @@ -2285,8 +2285,8 @@ static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp) chardev = qemu_opt_get(opts, "chardev"); chr = qemu_chr_find(chardev); if (chr == NULL) { - error_report("chardev \"%s\" not found", chardev); - exit(1); + error_setg(errp, "chardev \"%s\" not found", chardev); + return -1; } monitor_init(chr, flags); @@ -4365,10 +4365,8 @@ int main(int argc, char **argv, char **envp) default_drive(default_floppy, snapshot, IF_FLOPPY, 0, FD_OPTS); default_drive(default_sdcard, snapshot, IF_SD, 0, SD_OPTS); - if (qemu_opts_foreach(qemu_find_opts("mon"), - mon_init_func, NULL, NULL)) { - exit(1); - } + qemu_opts_foreach(qemu_find_opts("mon"), + mon_init_func, NULL, &error_fatal); if (foreach_device_config(DEV_SERIAL, serial_parse) < 0) exit(1);
Calling error_report() in a function that takes an Error ** argument is suspicious. mon_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. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- vl.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-)