[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC v2 15/47] qapi: Fix to reject union command
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH RFC v2 15/47] qapi: Fix to reject union command arguments |
Date: |
Tue, 21 Jul 2015 08:17:37 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 |
On 07/01/2015 02:22 PM, Markus Armbruster wrote:
> A command's 'data' must be a struct type, given either as a
> dictionary, or as struct type name.
>
> Commit dd883c6 tightened the checking there, but not enough: we still
> accept 'union'. Fix to reject it.
I was thinking that 'all dictionaries are okay' when I wrote that
commit, and obviously missed thinking about 'how would we translate
unions into a C prototype'.
>
> We may want to support union types there, but we'll have to extend
> qapi-commands.py for it.
>
> Signed-off-by: Markus Armbruster <address@hidden>
> ---
> scripts/qapi.py | 2 +-
> tests/qapi-schema/args-union.err | 1 +
> tests/qapi-schema/args-union.exit | 2 +-
> tests/qapi-schema/args-union.json | 2 +-
> tests/qapi-schema/args-union.out | 4 ----
> 5 files changed, 4 insertions(+), 7 deletions(-)
Reviewed-by: Eric Blake <address@hidden>
>
> diff --git a/scripts/qapi.py b/scripts/qapi.py
> index 99e04f6..bebaecc 100644
> --- a/scripts/qapi.py
> +++ b/scripts/qapi.py
> @@ -495,7 +495,7 @@ def check_command(expr, expr_info):
>
> check_type(expr_info, "'data' for command '%s'" % name,
> expr.get('data'), allow_dict=True, allow_optional=True,
> - allow_metas=['union', 'struct'], allow_star=allow_star)
> + allow_metas=['struct'], allow_star=allow_star)
I'm still quite pleased at how my earlier work made this a one-liner fix
- the check_type() interface turned out to be rather pleasant.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PATCH RFC v2 16/47] qapi-commands: Fix gen_err_check(e) for e and e != 'local_err', (continued)
- [Qemu-devel] [PATCH RFC v2 16/47] qapi-commands: Fix gen_err_check(e) for e and e != 'local_err', Markus Armbruster, 2015/07/01
- [Qemu-devel] [PATCH RFC v2 17/47] qapi-commands: Inline gen_marshal_output_call(), Markus Armbruster, 2015/07/01
- [Qemu-devel] [PATCH RFC v2 14/47] qapi-tests: New tests for union, alternate command arguments, Markus Armbruster, 2015/07/01
- [Qemu-devel] [PATCH RFC v2 25/47] qapi: Make generators work on sorted schema expressions, Markus Armbruster, 2015/07/01
- [Qemu-devel] [PATCH RFC v2 15/47] qapi: Fix to reject union command arguments, Markus Armbruster, 2015/07/01
- Re: [Qemu-devel] [PATCH RFC v2 15/47] qapi: Fix to reject union command arguments,
Eric Blake <=
- [Qemu-devel] [PATCH RFC v2 20/47] qapi: Rename class QAPISchema to QAPISchemaParser, Markus Armbruster, 2015/07/01
- [Qemu-devel] [PATCH RFC v2 18/47] qapi-commands: Don't feed output of mcgen() to mcgen() again, Markus Armbruster, 2015/07/01
- [Qemu-devel] [PATCH RFC v2 08/47] qapi-visit: Fix generated code when schema has forward refs, Markus Armbruster, 2015/07/01
- [Qemu-devel] [PATCH RFC v2 06/47] qapi: Drop unused and useless parameters and variables, Markus Armbruster, 2015/07/01