From 2a01540348517c4fefb2b6f93b31b0c1ede0c567 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 15 Sep 2018 17:11:33 +0200 Subject: [PATCH] Fix edge cases for request types --- Message/Http/Request.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Message/Http/Request.php b/Message/Http/Request.php index fec0daf95..b1453db2c 100644 --- a/Message/Http/Request.php +++ b/Message/Http/Request.php @@ -141,15 +141,25 @@ final class Request extends RequestAbstract if (isset($_SERVER['CONTENT_TYPE'])) { if (\stripos($_SERVER['CONTENT_TYPE'], 'application/json') !== false) { $input = \file_get_contents('php://input'); - $json = \json_decode($input === false ? '' : $input, true); - if ($input === false || $json === false || $json === null) { + + if ($input === false || empty($input)) { + return; + } + + $json = \json_decode($input === false || empty($input) ? '' : $input, true); + if ($json === false || $json === null) { throw new \Exception('Is not valid json ' . $input); } $this->data += $json; } elseif (\stripos($_SERVER['CONTENT_TYPE'], 'application/x-www-form-urlencoded') !== false) { $content = \file_get_contents('php://input'); - \parse_str($content === false ? '' : $content, $temp); + + if ($content === false || empty($content)) { + return; + } + + \parse_str($content, $temp); $this->data += $temp; } }