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 <address@hidden>
---
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 <address@hidden>
But it's still worth thinking about whether there is a more robust
solution to be used.