1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-07-04 16:30:12 +02:00

fix stacktrace crash when env vars are badly set in config.yml

This was trying to delete from a dict that was being iterated through.
Python doesn't like that!
This commit is contained in:
Hans-Christoph Steiner 2020-11-11 14:46:15 +01:00
parent 80891be139
commit d530733290

View File

@ -388,6 +388,7 @@ def read_config(opts):
limit = config['git_mirror_size_limit']
config['git_mirror_size_limit'] = parse_human_readable_size(limit)
confignames_to_delete = set()
for configname, dictvalue in config.items():
if configname == 'java_paths':
new = dict()
@ -403,14 +404,17 @@ def read_config(opts):
if env:
config[configname] = env
else:
del(config[configname])
confignames_to_delete.add(configname)
logging.error(_('Environment variable {var} from {configname} is not set!')
.format(var=k, configname=configname))
else:
del(config[configname])
confignames_to_delete.add(configname)
logging.error(_('Unknown entry {key} in {configname}')
.format(key=k, configname=configname))
for configname in confignames_to_delete:
del(config[configname])
return config