[virt-tools-list] [python-virtinst PATCH] Don't support comments in parsed parameters

Martin Kletzander mkletzan at redhat.com
Mon Mar 11 15:04:02 UTC 2013


Until now, when virtinst was parsing parameters, '#' were used as
starts of a comment, '\' as escape strings etc. due to the use of
shlex.  The use of '\' is predictable (e.g. filename with a ',' in
it), but the '#' is usually escaped in shell only.  Also, even when
not escaped, shlex is not fully compatible with some syntax rules for
parsing '#'.

For example '#' in 'echo asdf#fdsa' will not be used as a comment in
bash (there is no whitespace in front of the '#'), but in our '--disk
name#something.img' (parsed using shlex), it will be used as a comment
even though it is not expected from the user.

Removing '#' (the only character) from shlex.commenters disables all
similar comments, which is desired as users won't be trying to use
comments to comment out parts of parameters.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=916878
---
I'm pushing this as a 'trivial'.

 virtinst/cli.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/virtinst/cli.py b/virtinst/cli.py
index 992b531..79d59d9 100644
--- a/virtinst/cli.py
+++ b/virtinst/cli.py
@@ -1,7 +1,7 @@
 #
 # Utility functions for the command line drivers
 #
-# Copyright 2006-2007  Red Hat, Inc.
+# Copyright 2006-2007, 2013  Red Hat, Inc.
 # Jeremy Katz <katzj at redhat.com>
 #
 # This program is free software; you can redistribute it and/or modify
@@ -1186,6 +1186,7 @@ def parse_optstr_tuples(optstr, compress_first=False):
         return [(optstr, None)]

     argsplitter = shlex.shlex(optstr, posix=True)
+    argsplitter.commenters = ""
     argsplitter.whitespace = ","
     argsplitter.whitespace_split = True

--
1.8.1.5




More information about the virt-tools-list mailing list