aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShyam Sunder2019-04-27 17:50:49 -0400
committerShyam Sunder2019-04-27 18:08:47 -0400
commit26127eaaf5ab07520ae5ca813db84044209427c7 (patch)
treef9fbd00acf795df1ca6821bd61e8bb44cca45110
parent4117f63375c681a800068b56beb201699807801a (diff)
server/config: use safer YAML loader
Fixes #254
-rw-r--r--server/szurubooru/config.py29
1 files changed, 16 insertions, 13 deletions
diff --git a/server/szurubooru/config.py b/server/szurubooru/config.py
index f9c745c..4e174d9 100644
--- a/server/szurubooru/config.py
+++ b/server/szurubooru/config.py
@@ -4,11 +4,11 @@ import yaml
from szurubooru import errors
-def merge(left: Dict, right: Dict) -> Dict:
+def _merge(left: Dict, right: Dict) -> Dict:
for key in right:
if key in left:
if isinstance(left[key], dict) and isinstance(right[key], dict):
- merge(left[key], right[key])
+ _merge(left[key], right[key])
elif left[key] != right[key]:
left[key] = right[key]
else:
@@ -16,7 +16,7 @@ def merge(left: Dict, right: Dict) -> Dict:
return left
-def docker_config() -> Dict:
+def _docker_config() -> Dict:
for key in [
'POSTGRES_USER',
'POSTGRES_PASSWORD',
@@ -45,15 +45,18 @@ def docker_config() -> Dict:
}
-def read_config() -> Dict:
- with open('config.yaml.dist') as handle:
- ret = yaml.load(handle.read())
- if os.path.exists('config.yaml'):
- with open('config.yaml') as handle:
- ret = merge(ret, yaml.load(handle.read()))
- if os.path.exists('/.dockerenv'):
- ret = merge(ret, docker_config())
- return ret
+def _file_config(filename: str) -> Dict:
+ with open(filename) as handle:
+ return yaml.load(handle.read(), Loader=yaml.SafeLoader)
-config = read_config() # pylint: disable=invalid-name
+def _read_config() -> Dict:
+ ret = _file_config('config.yaml.dist')
+ if os.path.exists('config.yaml'):
+ ret = _merge(ret, _file_config('config.yaml'))
+ if os.path.exists('/.dockerenv'):
+ ret = _merge(ret, _docker_config())
+ return ret
+
+
+config = _read_config() # pylint: disable=invalid-name

© 2015 - 2026 Jakob L. Kreuze