diff options
author | Markus Armbruster <armbru@redhat.com> | 2021-03-18 16:55:19 +0100 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2021-03-19 16:05:11 +0100 |
commit | dbb675c19aa6ca328f4449ccd1ff605f9cb744e9 (patch) | |
tree | 46076cd3efbda133cb6325b00ded0dd603260e88 /qapi | |
parent | db29164103e53ae7c112086127e3d1c92b1d4d89 (diff) | |
download | qemu-dbb675c19aa6ca328f4449ccd1ff605f9cb744e9.zip |
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>
Diffstat (limited to 'qapi')
-rw-r--r-- | qapi/compat.json | 3 | ||||
-rw-r--r-- | qapi/qmp-dispatch.c | 1 | ||||
-rw-r--r-- | qapi/qobject-input-visitor.c | 1 |
3 files changed, 4 insertions, 1 deletions
diff --git a/qapi/compat.json b/qapi/compat.json index fc24a58a9e..ae3afc22df 100644 --- a/qapi/compat.json +++ b/qapi/compat.json @@ -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: diff --git a/qapi/qmp-dispatch.c b/qapi/qmp-dispatch.c index 797df33be4..59600210ce 100644 --- a/qapi/qmp-dispatch.c +++ b/qapi/qmp-dispatch.c @@ -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(); } diff --git a/qapi/qobject-input-visitor.c b/qapi/qobject-input-visitor.c index bd94cf187a..04b790412e 100644 --- a/qapi/qobject-input-visitor.c +++ b/qapi/qobject-input-visitor.c @@ -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(); } |