On 04/22/2015 10:34 AM, Eric Blake wrote:
On 04/21/2015 08:02 PM, John Snow wrote:
As a convenience for the user, replace any single quotes given
with double quotes so that the data will deserialize correctly
via json.loads().
Signed-off-by: John Snow <js...@redhat.com>
---
scripts/qmp/qmp-shell | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell
index 5347f89..d7cb33d 100755
--- a/scripts/qmp/qmp-shell
+++ b/scripts/qmp/qmp-shell
@@ -129,7 +129,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):
< command-name > [ arg-name1=arg1 ] ... [ arg-nameN=argN ]
"""
- cmdargs = cmdline.split()
+ cmdargs = cmdline.replace("'", '"').split()
This replaces ALL single quotes, even if they would otherwise be
escaped. That is, if I pass foo="a\'\"b", it will probably be corrupted.
qmp-shell exists mainly as a convenience for testing, and I doubt
testers are likely to want to use unbalanced quotes as contents of
strings, so I can give a weak:
Reviewed-by: Eric Blake <ebl...@redhat.com>
But it's still worth thinking about whether there is a more robust
solution to be used.
Oh, hmm. I naively assumed that such quotes weren't permissable within
the namespace for any valid QMP commands, but...
There's a lot of simplifying assumptions within qmp-shell already and I
was really hoping to avoid re-architecting the parser where I just
wanted to add a few "hit and run" improvements.
This patch could be dropped if it poses a serious problem; mostly I
wanted to ensure that QMP commands could be entered as they are
displayed (with single quotes!)
I'll look briefly to see if there's a quick win-button for converting
the quotes in a "safe" way.
--js