vl: fix -sandbox parsing crash when seccomp support is disabled
$ ./x86_64-softmmu/qemu-system-x86_64 -sandbox off qemu-system-x86_64: -sandbox off: There is no option group 'sandbox' Segmentation fault Commit5780760f5e
("seccomp: check TSYNC host capability") wrapped one use of the sandbox option group to produce a sensible error, it didn't do the same for another call to qemu_opts_parse_noisily(): (gdb) bt at util/qemu-option.c:829 #0 0x00000000105b36d8 in opts_parse (list=0x0, params=0x3ffffffffab5 "off", permit_abbrev=true, defaults=false, errp=0x3ffffffff080) at util/qemu-option.c:829 #1 0x00000000105b3b74 in qemu_opts_parse_noisily (list=<optimized out>, params=<optimized out>, permit_abbrev=<optimized out>) at util/qemu-option.c:890 #2 0x0000000010024964 in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at vl.c:3589 Fixes:5780760f5e
Cc: david@gibson.dropbear.id.au Cc: otubo@redhat.com Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20190429134757.13570-1-marcandre.lureau@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Laurent Vivier <lvivier@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
3b9c59daf9
commit
2bb814a45b
18
vl.c
18
vl.c
@ -3896,17 +3896,19 @@ int main(int argc, char **argv, char **envp)
|
||||
qtest_log = optarg;
|
||||
break;
|
||||
case QEMU_OPTION_sandbox:
|
||||
#ifdef CONFIG_SECCOMP
|
||||
opts = qemu_opts_parse_noisily(qemu_find_opts("sandbox"),
|
||||
optarg, true);
|
||||
olist = qemu_find_opts("sandbox");
|
||||
if (!olist) {
|
||||
#ifndef CONFIG_SECCOMP
|
||||
error_report("-sandbox support is not enabled "
|
||||
"in this QEMU binary");
|
||||
#endif
|
||||
exit(1);
|
||||
}
|
||||
|
||||
opts = qemu_opts_parse_noisily(olist, optarg, true);
|
||||
if (!opts) {
|
||||
exit(1);
|
||||
}
|
||||
#else
|
||||
error_report("-sandbox support is not enabled "
|
||||
"in this QEMU binary");
|
||||
exit(1);
|
||||
#endif
|
||||
break;
|
||||
case QEMU_OPTION_add_fd:
|
||||
#ifndef _WIN32
|
||||
|
Loading…
Reference in New Issue
Block a user