Page MenuHomePhabricator

D17917.id43102.diff
No OneTemporary

D17917.id43102.diff

diff --git a/src/infrastructure/env/PhabricatorConfigLocalSource.php b/src/infrastructure/env/PhabricatorConfigLocalSource.php
--- a/src/infrastructure/env/PhabricatorConfigLocalSource.php
+++ b/src/infrastructure/env/PhabricatorConfigLocalSource.php
@@ -21,17 +21,35 @@
private function loadConfig() {
$path = $this->getConfigPath();
- if (@file_exists($path)) {
- $data = @file_get_contents($path);
- if ($data) {
- $data = json_decode($data, true);
- if (is_array($data)) {
- return $data;
- }
- }
+
+ if (!Filesystem::pathExists($path)) {
+ return array();
+ }
+
+ try {
+ $data = Filesystem::readFile($path);
+ } catch (FilesystemException $ex) {
+ throw new PhutilProxyException(
+ pht(
+ 'Configuration file "%s" exists, but could not be read.',
+ $path),
+ $ex);
}
- return array();
+ try {
+ $result = phutil_json_decode($data);
+ } catch (PhutilJSONParserException $ex) {
+ throw new PhutilProxyException(
+ pht(
+ 'Configuration file "%s" exists and is readable, but the content '.
+ 'is not valid JSON. You may have edited this file manually and '.
+ 'introduced a syntax error by mistake. Correct the file syntax '.
+ 'to continue.',
+ $path),
+ $ex);
+ }
+
+ return $result;
}
private function saveConfig() {

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 22, 5:34 AM (1 d, 1 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7716492
Default Alt Text
D17917.id43102.diff (1 KB)

Event Timeline