Fixes #5032 escape and safely split key options in authorized_keys module
This commit is contained in:
parent
d187066339
commit
b938554311
1 changed files with 10 additions and 2 deletions
|
@ -177,7 +177,14 @@ def parseoptions(options):
|
||||||
'''
|
'''
|
||||||
options_dict = {}
|
options_dict = {}
|
||||||
if options:
|
if options:
|
||||||
options_list = options.strip().split(",")
|
lex = shlex.shlex(options)
|
||||||
|
lex.quotes = ["'", '"']
|
||||||
|
lex.whitespace_split = True
|
||||||
|
opt_parts = list(lex)
|
||||||
|
open("/tmp/awx.log", "a").write("opt_parts: %s\n" % opt_parts)
|
||||||
|
|
||||||
|
#options_list = options.strip().split(",")
|
||||||
|
options_list = opt_parts
|
||||||
for option in options_list:
|
for option in options_list:
|
||||||
# happen when there is comma at the end
|
# happen when there is comma at the end
|
||||||
if option == '':
|
if option == '':
|
||||||
|
@ -187,7 +194,8 @@ def parseoptions(options):
|
||||||
else:
|
else:
|
||||||
arg = option
|
arg = option
|
||||||
val = None
|
val = None
|
||||||
options_dict[arg] = val
|
options_dict[arg] = val.replace('"', '').replace("'", "")
|
||||||
|
open("/tmp/awx.log", "a").write("options_dict: %s\n" % options_dict)
|
||||||
return options_dict
|
return options_dict
|
||||||
|
|
||||||
def parsekey(raw_key):
|
def parsekey(raw_key):
|
||||||
|
|
Loading…
Reference in a new issue