From: Paolo Bonzini <pbonz...@redhat.com> "O" is being used by the transaction and qom-set commands to mean "any QObject", but it really means "do not validate the argument list". Add a new specifier with the correct meaning.
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Reviewed-by: Anthony Liguori <aligu...@us.ibm.com> Signed-off-by: Luiz Capitulino <lcapitul...@redhat.com> --- monitor.c | 3 +++ qmp-commands.hx | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/monitor.c b/monitor.c index 2ff1e0b..8946a10 100644 --- a/monitor.c +++ b/monitor.c @@ -4157,6 +4157,9 @@ static int check_client_args_type(const QDict *client_args, case 'O': assert(flags & QMP_ACCEPT_UNKNOWNS); break; + case 'q': + /* Any QObject can be passed. */ + break; case '/': case '.': /* diff --git a/qmp-commands.hx b/qmp-commands.hx index c626ba8..9447871 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -708,7 +708,7 @@ EQMP }, { .name = "transaction", - .args_type = "actions:O", + .args_type = "actions:q", .mhandler.cmd_new = qmp_marshal_input_transaction, }, @@ -2125,7 +2125,7 @@ EQMP { .name = "qom-set", - .args_type = "path:s,property:s,opts:O", + .args_type = "path:s,property:s,value:q", .mhandler.cmd_new = qmp_qom_set, }, -- 1.7.9.2.384.g4a92a