Strip newlines off k=v pairs in command/shell argument parsing

Fixes ansible/ansible#9272
pull/18777/head
James Cammarata 10 years ago committed by Matt Clay
parent 06218fe7d2
commit dd2807ef3c

@ -250,12 +250,7 @@ class CommandModule(AnsibleModule):
if '=' in x and not quoted: if '=' in x and not quoted:
# check to see if this is a special parameter for the command # check to see if this is a special parameter for the command
k, v = x.split('=', 1) k, v = x.split('=', 1)
v = unquote(v) v = unquote(v.strip())
# because we're not breaking out quotes in the shlex split
# above, the value of the k=v pair may still be quoted. If
# so, remove them.
if len(v) > 1 and (v.startswith('"') and v.endswith('"') or v.startswith("'") and v.endswith("'")):
v = v[1:-1]
if k in ('creates', 'removes', 'chdir', 'executable', 'NO_LOG'): if k in ('creates', 'removes', 'chdir', 'executable', 'NO_LOG'):
if k == "chdir": if k == "chdir":
v = os.path.abspath(os.path.expanduser(v)) v = os.path.abspath(os.path.expanduser(v))

Loading…
Cancel
Save