On Wed, Feb 27, 2019 at 12:21:32PM +1100, David Gibson wrote: > At present, when seccomp support is compiled out with --disable-seccomp > we fail with an error if the user puts -sandbox on the command line. > > That kind of makes sense, but it's a bit strange that we reject a request > to disable sandboxing with "-sandbox off" saying we don't support > sandboxing. > > This puts in a small sandbox to (correctly) silently ignore -sandbox off > when we don't have sandboxing support compiled in. This makes life easier > for testcases, since they can safely specify "-sandbox off" without having > to care if the qemu they're using is compiled with sandbox support or not. > > Signed-off-by: David Gibson <[email protected]> > --- > vl.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/vl.c b/vl.c > index 502857a176..9d5f1b7ebb 100644 > --- a/vl.c > +++ b/vl.c > @@ -3857,9 +3857,11 @@ int main(int argc, char **argv, char **envp) > exit(1); > } > #else > - error_report("-sandbox support is not enabled " > - "in this QEMU binary"); > - exit(1); > + if (!g_str_equal(optarg, "off")) { > + error_report("-sandbox support is not enabled " > + "in this QEMU binary"); > + exit(1); > + }
'-sandbox off' is just syntax sugar for '-sandbox enable=off', with the default arg name handled by QemuOpts. If we want to keep ability to run "-sandbox off" we should do it via the QEMU opts code we already have in the first part of the conditional, so that "-sandbox enable=off" also works as normal. Essentially we need to push the #ifdef CONFIG_SECCOMP down into the parse_sandbox method, so that it parses the "enable" option normally but rejects any value except disabled.. The QemuOptsList should also be conditional to only register the "enable" arg and not the other bits. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
