diff --git a/src/Composer/Downloader/PathDownloader.php b/src/Composer/Downloader/PathDownloader.php index f392c0125..cde32f4a6 100644 --- a/src/Composer/Downloader/PathDownloader.php +++ b/src/Composer/Downloader/PathDownloader.php @@ -45,6 +45,13 @@ class PathDownloader extends FileDownloader implements VcsCapableDownloaderInter )); } + if (strpos(realpath($path) . DIRECTORY_SEPARATOR, $realUrl . DIRECTORY_SEPARATOR) === 0) { + throw new \RuntimeException(sprintf( + 'Package %s cannot install to "%s" inside its source at "%s"', + $package->getName(), realpath($path), $realUrl + )); + } + // Get the transport options with default values $transportOptions = $package->getTransportOptions() + array('symlink' => null); @@ -65,13 +72,6 @@ class PathDownloader extends FileDownloader implements VcsCapableDownloaderInter $allowedStrategies = array(self::STRATEGY_MIRROR); } - if ($currentStrategy != self::STRATEGY_MIRROR && strpos(realpath($path) . DIRECTORY_SEPARATOR, $realUrl . DIRECTORY_SEPARATOR) === 0) { - throw new \RuntimeException(sprintf( - 'Package %s cannot install to "%s" inside its source at "%s"', - $package->getName(), realpath($path), $realUrl - )); - } - $fileSystem = new Filesystem(); $this->filesystem->removeDirectory($path);