qapi: New -compat deprecated-input=crash
Policy "crash" calls abort() when deprecated input is received. Bugs in integration tests may mask the error from policy "reject". Provide a larger hammer: crash outright. Masking that seems unlikely. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20210318155519.1224118-12-armbru@redhat.com>
This commit is contained in:
parent
db29164103
commit
dbb675c19a
@ -11,11 +11,12 @@
|
||||
#
|
||||
# @accept: Accept silently
|
||||
# @reject: Reject with an error
|
||||
# @crash: abort() the process
|
||||
#
|
||||
# Since: 6.0
|
||||
##
|
||||
{ 'enum': 'CompatPolicyInput',
|
||||
'data': [ 'accept', 'reject' ] }
|
||||
'data': [ 'accept', 'reject', 'crash' ] }
|
||||
|
||||
##
|
||||
# @CompatPolicyOutput:
|
||||
|
@ -185,6 +185,7 @@ QDict *qmp_dispatch(const QmpCommandList *cmds, QObject *request,
|
||||
"Deprecated command %s disabled by policy",
|
||||
command);
|
||||
goto out;
|
||||
case COMPAT_POLICY_INPUT_CRASH:
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
|
@ -676,6 +676,7 @@ static bool qobject_input_deprecated_accept(Visitor *v, const char *name,
|
||||
error_setg(errp, "Deprecated parameter '%s' disabled by policy",
|
||||
name);
|
||||
return false;
|
||||
case COMPAT_POLICY_INPUT_CRASH:
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
|
@ -3508,7 +3508,7 @@ DEFHEADING()
|
||||
DEFHEADING(Debug/Expert options:)
|
||||
|
||||
DEF("compat", HAS_ARG, QEMU_OPTION_compat,
|
||||
"-compat [deprecated-input=accept|reject][,deprecated-output=accept|hide]\n"
|
||||
"-compat [deprecated-input=accept|reject|crash][,deprecated-output=accept|hide]\n"
|
||||
" Policy for handling deprecated management interfaces\n",
|
||||
QEMU_ARCH_ALL)
|
||||
SRST
|
||||
@ -3519,6 +3519,8 @@ SRST
|
||||
Accept deprecated commands and arguments
|
||||
``deprecated-input=reject``
|
||||
Reject deprecated commands and arguments
|
||||
``deprecated-input=crash``
|
||||
Crash on deprecated commands and arguments
|
||||
``deprecated-output=accept`` (default)
|
||||
Emit deprecated command results and events
|
||||
``deprecated-output=hide``
|
||||
|
Loading…
Reference in New Issue
Block a user