summaryrefslogtreecommitdiffstats
path: root/scripts/git-submodule.sh
diff options
context:
space:
mode:
authorMarc-André Lureau2019-02-05 14:49:26 +0100
committerEduardo Habkost2019-03-11 14:22:31 +0100
commitb35203b227261961ff1da9b77b546c1919968bee (patch)
tree21135476a454c61542512b87e1ef1b6dabc5d9f9 /scripts/git-submodule.sh
parentMakefile: Don't install non-sphinx files in sphinx docs install (diff)
downloadqemu-b35203b227261961ff1da9b77b546c1919968bee.tar.gz
qemu-b35203b227261961ff1da9b77b546c1919968bee.tar.xz
qemu-b35203b227261961ff1da9b77b546c1919968bee.zip
qmp-shell: fix nested json regression
Commit fcfab7541 ("qmp-shell: learn to send commands with quoted arguments") introduces the usage of Python 'shlex' to handle quoted arguments, but it accidentally broke generation of nested JSON structs. shlex drops quotes, which breaks parsing of the nested struct. cmd='blockdev-create job-id="job0 foo" options={"driver":"qcow2","size":16384,"file":{"driver":"file","filename":"foo.qcow2"}}' shlex.split(cmd) ['blockdev-create', 'job-id=job0 foo', 'options={driver:qcow2,size:16384,file:{driver:file,filename:foo.qcow2}}'] Replace with a regexp to split while respecting quoted strings and preserving quotes: re.findall(r'''(?:[^\s"']|"(?:\\.|[^"])*"|'(?:\\.|[^'])*')+''', cmd) ['blockdev-create', 'job-id="job0 foo"', 'options={"driver":"qcow2","size":16384,"file":{"driver":"file","filename":"foo.qcow2"}}'] Fixes: fcfab7541 ("qmp-shell: learn to send commands with quoted arguments") Reported-by: Kashyap Chamarthy <kchamart@redhat.com> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20190205134926.8312-1-marcandre.lureau@redhat.com> Tested-by: Kashyap Chamarthy <kchamart@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'scripts/git-submodule.sh')
0 files changed, 0 insertions, 0 deletions