Skip to content
Snippets Groups Projects
Unverified Commit cc9eceb0 authored by Brendan Abolivier's avatar Brendan Abolivier Committed by GitHub
Browse files

Don't crash when one of the configuration files is empty (#7341)

If the admin adds a `.yaml` file that's either empty or doesn't parse into a dict to a config directory (e.g. `conf.d` for debs installs), stuff like https://github.com/matrix-org/synapse/issues/7322 would happen. This PR checks that the file is correctly parsed into a dict, or ignores it with a warning if it parses into any other type (including `None` for empty files).

Fixes https://github.com/matrix-org/synapse/issues/7322
parent 7bfe0902
No related branches found
No related tags found
No related merge requests found
Fix bad error handling that would cause Synapse to crash if it's provided with a YAML configuration file that's either empty or doesn't parse into a key-value map.
......@@ -657,6 +657,12 @@ def read_config_files(config_files):
for config_file in config_files:
with open(config_file) as file_stream:
yaml_config = yaml.safe_load(file_stream)
if not isinstance(yaml_config, dict):
err = "File %r is empty or doesn't parse into a key-value map. IGNORING."
print(err % (config_file,))
continue
specified_config.update(yaml_config)
if "server_name" not in specified_config:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment