1
0
Fork 0

Merge pull request #4894 from stloyd/patch-2

Be sure that configuration file can be manipulated by actual user
pull/4933/head
Rob 2016-02-18 10:56:21 +01:00
commit 9e623f50e7
1 changed files with 9 additions and 1 deletions

View File

@ -25,7 +25,7 @@ use Composer\Util\Silencer;
class JsonConfigSource implements ConfigSourceInterface class JsonConfigSource implements ConfigSourceInterface
{ {
/** /**
* @var \Composer\Json\JsonFile * @var JsonFile
*/ */
private $file; private $file;
@ -140,6 +140,14 @@ class JsonConfigSource implements ConfigSourceInterface
$fallback = array_pop($args); $fallback = array_pop($args);
if ($this->file->exists()) { if ($this->file->exists()) {
if (!is_writable($this->file->getPath())) {
throw new \RuntimeException(sprintf('The file "%s" is not writable.', $this->file->getPath()));
}
if (!is_readable($this->file->getPath())) {
throw new \RuntimeException(sprintf('The file "%s" is not readable.', $this->file->getPath()));
}
$contents = file_get_contents($this->file->getPath()); $contents = file_get_contents($this->file->getPath());
} elseif ($this->authConfig) { } elseif ($this->authConfig) {
$contents = "{\n}\n"; $contents = "{\n}\n";