From d0a9550dea3235ea6ee1927840fab9644a6c9da0 Mon Sep 17 00:00:00 2001 From: Samuel ROZE Date: Mon, 14 Sep 2015 15:20:06 +0100 Subject: [PATCH] Uses `realpath` to fix relative path issues --- src/Composer/Downloader/PathDownloader.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Composer/Downloader/PathDownloader.php b/src/Composer/Downloader/PathDownloader.php index c58a3f23a..409a27cae 100644 --- a/src/Composer/Downloader/PathDownloader.php +++ b/src/Composer/Downloader/PathDownloader.php @@ -39,18 +39,19 @@ class PathDownloader extends FileDownloader )); $url = $package->getDistUrl(); - if (!file_exists($url) || !is_dir($url)) { + $realUrl = realpath($url); + if (false === $realUrl || !file_exists($realUrl) || !is_dir($realUrl)) { throw new \RuntimeException(sprintf( 'Path "%s" is not found', - $path + $url )); } try { - $fileSystem->symlink($url, $path); + $fileSystem->symlink($realUrl, $path); $this->io->writeError(sprintf(' Symlinked from %s', $url)); } catch (IOException $e) { - $fileSystem->mirror($url, $path); + $fileSystem->mirror($realUrl, $path); $this->io->writeError(sprintf(' Mirrored from %s', $url)); }