1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
From: Phobetor <phobetor@users.noreply.github.com>
Date: Fri, 27 Jul 2018 16:18:31 +0200
Subject: [HttpFoundation] fixed using _method parameter with invalid type
Origin: upstream, https://github.com/symfony/symfony/commit/63583debd20817f55f67e11224f61618abb9835d
---
src/Symfony/Component/HttpFoundation/Request.php | 5 ++++-
src/Symfony/Component/HttpFoundation/Tests/RequestTest.php | 5 +++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/Symfony/Component/HttpFoundation/Request.php b/src/Symfony/Component/HttpFoundation/Request.php
index 5ed989a..a1cfe26 100644
--- a/src/Symfony/Component/HttpFoundation/Request.php
+++ b/src/Symfony/Component/HttpFoundation/Request.php
@@ -1298,7 +1298,10 @@ class Request
if ($method = $this->headers->get('X-HTTP-METHOD-OVERRIDE')) {
$this->method = strtoupper($method);
} elseif (self::$httpMethodParameterOverride) {
- $this->method = strtoupper($this->request->get('_method', $this->query->get('_method', 'POST')));
+ $method = $this->request->get('_method', $this->query->get('_method', 'POST'));
+ if (\is_string($method)) {
+ $this->method = strtoupper($method);
+ }
}
}
}
diff --git a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
index 0089583..26ba29b 100644
--- a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
+++ b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
@@ -817,6 +817,11 @@ class RequestTest extends \PHPUnit_Framework_TestCase
$request->setMethod('POST');
$request->headers->set('X-HTTP-METHOD-OVERRIDE', 'delete');
$this->assertEquals('DELETE', $request->getMethod(), '->getMethod() returns the method from X-HTTP-Method-Override if defined and POST');
+
+ $request = new Request();
+ $request->setMethod('POST');
+ $request->query->set('_method', array('delete', 'patch'));
+ $this->assertSame('POST', $request->getMethod(), '->getMethod() returns the request method if invalid type is defined in query');
}
/**
|