summaryrefslogtreecommitdiffstats
path: root/qapi
diff options
context:
space:
mode:
authorEric Blake2017-03-22 15:45:25 +0100
committerMarkus Armbruster2017-03-22 19:24:34 +0100
commit21f88d021d0d2b4ecee8f6cd6ca63a943a3ce71d (patch)
tree76be1033f7586e3013120c86467ec05590bfdfed /qapi
parentqom: Avoid unvisited 'id'/'qom-type' in user_creatable_add_opts (diff)
downloadqemu-21f88d021d0d2b4ecee8f6cd6ca63a943a3ce71d.tar.gz
qemu-21f88d021d0d2b4ecee8f6cd6ca63a943a3ce71d.tar.xz
qemu-21f88d021d0d2b4ecee8f6cd6ca63a943a3ce71d.zip
qapi: Fix QemuOpts visitor regression on unvisited input
An off-by-one in commit 15c2f669e meant that we were failing to check for unparsed input in all QemuOpts visitors. Recent testsuite additions show that fixing the obvious bug with bogus fields will also fix the case of an incomplete list visit; update the tests to match the new behavior. Simple testcase: ./x86_64-softmmu/qemu-system-x86_64 -nodefaults -nographic -qmp stdio -numa node,size=1g failed to diagnose that 'size' is not a valid argument to -numa, and now once again reports: qemu-system-x86_64: -numa node,size=1g: Invalid parameter 'size' See also https://bugzilla.redhat.com/show_bug.cgi?id=1434666 CC: qemu-stable@nongnu.org Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com> Tested-by: Laurent Vivier <lvivier@redhat.com> Message-Id: <20170322144525.18964-4-eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'qapi')
-rw-r--r--qapi/opts-visitor.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/qapi/opts-visitor.c b/qapi/opts-visitor.c
index 026d25b767..324b197495 100644
--- a/qapi/opts-visitor.c
+++ b/qapi/opts-visitor.c
@@ -164,7 +164,7 @@ opts_check_struct(Visitor *v, Error **errp)
GHashTableIter iter;
GQueue *any;
- if (ov->depth > 0) {
+ if (ov->depth > 1) {
return;
}
@@ -276,8 +276,8 @@ static void
opts_check_list(Visitor *v, Error **errp)
{
/*
- * FIXME should set error when unvisited elements remain. Mostly
- * harmless, as the generated visits always visit all elements.
+ * Unvisited list elements will be reported later when checking
+ * whether unvisited struct members remain.
*/
}