From ee7d4710c4bb25b75468dfa5cea725f818fed3b4 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 3 Jul 2017 07:24:08 +0200 Subject: [PATCH] Fix pathlib resolve (#8311) * Fix pathlib resolve * fix test --- homeassistant/core.py | 2 +- tests/test_core.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/core.py b/homeassistant/core.py index 4fcd938335c..c65566b42fa 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -1079,7 +1079,7 @@ class Config(object): """Check if the path is valid for access from outside.""" parent = pathlib.Path(path).parent try: - parent.resolve() # pylint: disable=no-member + parent = parent.resolve() # pylint: disable=no-member except (FileNotFoundError, RuntimeError, PermissionError): return False diff --git a/tests/test_core.py b/tests/test_core.py index f173ad65c41..1d22d17f996 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -821,13 +821,13 @@ class TestConfig(unittest.TestCase): for path in valid: assert self.config.is_allowed_path(path) - self.config.whitelist_external_dirs = set(('/home',)) + self.config.whitelist_external_dirs = set(('/home', '/var')) unvalid = [ "/hass/config/secure", "/etc/passwd", "/root/secure_file", - "/hass/config/test/../../../etc/passwd", + "/var/../etc/passwd", test_file, ] for path in unvalid: