diff --git a/externals/jsonlint/src/Seld/JsonLint/JsonParser.php b/externals/jsonlint/src/Seld/JsonLint/JsonParser.php --- a/externals/jsonlint/src/Seld/JsonLint/JsonParser.php +++ b/externals/jsonlint/src/Seld/JsonLint/JsonParser.php @@ -481,8 +481,8 @@ // UTF-8 ByteOrderMark sequence $bom = "\xEF\xBB\xBF"; - if (substr($input, 0, 3) === $bom) { + if ($input && (substr($input, 0, 3) === $bom)) { $this->parseError("BOM detected, make sure your input does not include a Unicode Byte-Order-Mark", array()); } } -} \ No newline at end of file +} diff --git a/externals/jsonlint/src/Seld/JsonLint/Lexer.php b/externals/jsonlint/src/Seld/JsonLint/Lexer.php --- a/externals/jsonlint/src/Seld/JsonLint/Lexer.php +++ b/externals/jsonlint/src/Seld/JsonLint/Lexer.php @@ -94,7 +94,7 @@ public function getUpcomingInput() { $next = $this->match; - if (strlen($next) < 20) { + if (($this->input) && (strlen($next) < 20)) { $next .= substr($this->input, 0, 20 - strlen($next)); } @@ -128,6 +128,9 @@ $rules = $this->getCurrentRules(); $rulesLen = count($rules); + if (!isset($this->input)) { + $this->input = ''; + } for ($i=0; $i < $rulesLen; $i++) { if (preg_match($this->rules[$rules[$i]], $this->input, $match)) { preg_match_all('/\n.*/', $match[0], $lines); @@ -212,4 +215,4 @@ return 'INVALID'; } } -} \ No newline at end of file +}