|
From: | Eric Blake |
Subject: | Re: [Qemu-devel] QMP accepts double dict keys |
Date: | Mon, 3 Dec 2018 10:36:17 -0600 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1 |
On 12/3/18 10:30 AM, Max Reitz wrote:
Hi, QMP accepts double keys in dicts without complaining. The value it is using is apparently the last one specified:
JSON says it is undefined what happens when a client passes double keys. We are probably best off if we teach our parser to be strict and reject doubled keys in QMP as invalid.
Hmm - can a client abuse QMP with duplicate keys to cause qemu to leak memory?
$ qemu-system-x86_64 -qmp stdio {"QMP": {"version": {"qemu": {"micro": 93, "minor": 0, "major": 3}, "package": "v3.1.0-rc3-7-g87a45d86ed"}, "capabilities": []}} {'execute':'qmp_capabilities'} {"return": {}} {'execute':'blockdev-add','arguments':{'driver':'null-co', 'node-name':'foo','node-name':'bar'}} {"return": {}} {'execute':'query-named-block-nodes'} {"return": [{ [...] "node-name": "bar" [...] }]} Another test case is iotest 229 which specifies both mode=absolute-paths and mode=existing (it wants the latter). Max
-- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
[Prev in Thread] | Current Thread | [Next in Thread] |