]> git.proxmox.com Git - mirror_qemu.git/commit
qapi: Fix crash on missing enum member name
authorMarkus Armbruster <armbru@redhat.com>
Wed, 16 Jun 2021 07:21:21 +0000 (09:21 +0200)
committerMarkus Armbruster <armbru@redhat.com>
Thu, 15 Jul 2021 10:56:41 +0000 (12:56 +0200)
commita0c7b99bf75d85b616fa219a7d866fc72970f327
treea43425f05892b181fe6068474b5bbc4868ffcf22
parenta9649a719a44894b81f38dc1c5c1888ee684acef
qapi: Fix crash on missing enum member name

New test case enum-dict-no-name.json crashes:

    $ python3 scripts/qapi-gen.py tests/qapi-schema/enum-dict-no-name.json
    Traceback (most recent call last):
    [...]
      File "/work/armbru/qemu/scripts/qapi/expr.py", line 458, in check_enum
member_name = member['name']
    KeyError: 'name'

Root cause: we try to retrieve member 'name' before we check for
missing members.  With that fixed, we get the expected error "'data'
member misses key 'name'".

Fixes: 0825f62c842f2c07c5471391c6d7fd3f4fe83732
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20210616072121.626431-1-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
scripts/qapi/expr.py
tests/qapi-schema/enum-dict-no-name.err [new file with mode: 0644]
tests/qapi-schema/enum-dict-no-name.json [new file with mode: 0644]
tests/qapi-schema/enum-dict-no-name.out [new file with mode: 0644]