diff --git a/src/Loader/FilesystemLoader.php b/src/Loader/FilesystemLoader.php index 859a898c53c..62267a11c89 100644 --- a/src/Loader/FilesystemLoader.php +++ b/src/Loader/FilesystemLoader.php @@ -183,9 +183,9 @@ protected function findTemplate(string $name, bool $throw = true) } try { - $this->validateName($name); - list($namespace, $shortname) = $this->parseName($name); + + $this->validateName($shortname); } catch (LoaderError $e) { if (!$throw) { return null; diff --git a/tests/Loader/FilesystemTest.php b/tests/Loader/FilesystemTest.php index d3bdc7b7119..44b3c170d0f 100644 --- a/tests/Loader/FilesystemTest.php +++ b/tests/Loader/FilesystemTest.php @@ -32,6 +32,7 @@ public function testGetSourceContext() public function testSecurity($template) { $loader = new FilesystemLoader([__DIR__.'/../Fixtures']); + $loader->addPath(__DIR__.'/../Fixtures', 'foo'); try { $loader->getCacheKey($template); @@ -63,6 +64,10 @@ public function getSecurityTests() ['filters\\\\..\\\\..\\\\AutoloaderTest.php'], ['filters\\//../\\/\\..\\AutoloaderTest.php'], ['/../AutoloaderTest.php'], + ['@__main__/../AutoloaderTest.php'], + ['@foo/../AutoloaderTest.php'], + ['@__main__/../../AutoloaderTest.php'], + ['@foo/../../AutoloaderTest.php'], ]; }