]> git.proxmox.com Git - mirror_qemu.git/commitdiff
qapi: New -compat deprecated-input=crash
authorMarkus Armbruster <armbru@redhat.com>
Thu, 18 Mar 2021 15:55:19 +0000 (16:55 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Fri, 19 Mar 2021 15:05:11 +0000 (16:05 +0100)
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>

qapi/compat.json
qapi/qmp-dispatch.c
qapi/qobject-input-visitor.c
qemu-options.hx

index fc24a58a9eac36cf8ce586bb931d32204a3e170c..ae3afc22df3c3dd2e4c945ceec66b6ec97ae7a68 100644 (file)
 #
 # @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:
index 797df33be4f42264c9c7a4121b6aeeac7d19575e..59600210cec19dedf1aa61dc2f73430705f9f3f8 100644 (file)
@@ -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();
         }
index bd94cf187aaf5083969bab34100ae344695f05d2..04b790412eb1d924e70638b1a1ec11dd43e57a01 100644 (file)
@@ -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();
     }
index 6b5a244b3318dcda379dc48c2c93f8cfdb4fd241..d60a03d3a9733abc85089112e44667685c1e17f1 100644 (file)
@@ -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``