![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/framework/Filesystem/Directory/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\Filesystem\Directory; use Magento\Framework\Exception\ValidatorException; use Magento\Framework\Filesystem\DriverInterface; use Magento\Framework\Phrase; /** * @inheritDoc * * Validates paths using driver. */ class PathValidator implements PathValidatorInterface { /** * @var DriverInterface */ private $driver; /** * @param DriverInterface $driver */ public function __construct(DriverInterface $driver) { $this->driver = $driver; } /** * @inheritDoc */ public function validate( string $directoryPath, string $path, ?string $scheme = null, bool $absolutePath = false ): void { $realDirectoryPath = $this->driver->getRealPathSafety($directoryPath); if (!$absolutePath) { $actualPath = $this->driver->getRealPathSafety( $this->driver->getAbsolutePath( $realDirectoryPath . DIRECTORY_SEPARATOR, $path, $scheme ) ); } else { $actualPath = $this->driver->getRealPathSafety($path); } if (preg_match('/(?:^-|\s-)/', $path) || ( mb_strpos($actualPath, $realDirectoryPath) !== 0 && rtrim($path, DIRECTORY_SEPARATOR) !== $realDirectoryPath ) ) { throw new ValidatorException( new Phrase( 'Path "%1" cannot be used with directory "%2"', [$path, $directoryPath] ) ); } } }