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 = {}
|
||||
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:
|
||||
# happen when there is comma at the end
|
||||
if option == '':
|
||||
|
@ -187,7 +194,8 @@ def parseoptions(options):
|
|||
else:
|
||||
arg = option
|
||||
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
|
||||
|
||||
def parsekey(raw_key):
|
||||
|
|
Loading…
Reference in a new issue