8000 do not call preg_match() on null · symfony/symfony@47298dc · GitHub
[go: up one dir, main page]

Skip to content

Commit 47298dc

Browse files
committed
do not call preg_match() on null
1 parent 53a45b2 commit 47298dc

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/Symfony/Component/HttpFoundation/Request.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1502,7 +1502,7 @@ public function isMethodCacheable()
15021502
public function getProtocolVersion()
15031503
{
15041504
if ($this->isFromTrustedProxy()) {
1505-
preg_match('~^(HTTP/)?([1-9]\.[0-9]) ~', $this->headers->get('Via'), $matches);
1505+
preg_match('~^(HTTP/)?([1-9]\.[0-9]) ~', $this->headers->get('Via') ?? '', $matches);
15061506

15071507
if ($matches) {
15081508
return 'HTTP/'.$matches[2];

src/Symfony/Component/HttpFoundation/Tests/RequestTest.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2230,17 +2230,22 @@ public function testProtocolVersion($serverProtocol, $trustedProxy, $via, $expec
22302230
$request = new Request();
22312231
$request->server->set('SERVER_PROTOCOL', $serverProtocol);
22322232
$request->server->set('REMOTE_ADDR', '1.1.1.1');
2233-
$request->headers->set('Via', $via);
2233+
2234+
if (null !== $via) {
2235+
$request->headers->set('Via', $via);
2236+
}
22342237

22352238
$this->assertSame($expected, $request->getProtocolVersion());
22362239
}
22372240

22382241
public function protocolVersionProvider()
22392242
{
22402243
return [
2241-
'untrusted without via' => ['HTTP/2.0', false, '', 'HTTP/2.0'],
2244+
'untrusted with empty via' => ['HTTP/2.0', false, '', 'HTTP/2.0'],
2245+
'untrusted without via' => ['HTTP/2.0', false, null, 'HTTP/2.0'],
22422246
'untrusted with via' => ['HTTP/2.0', false, '1.0 fred, 1.1 nowhere.com (Apache/1.1)', 'HTTP/2.0'],
2243-
'trusted without via' => ['HTTP/2.0', true, '', 'HTTP/2.0'],
2247+
'trusted with empty via' => ['HTTP/2.0', true, '', 'HTTP/2.0'],
2248+
'trusted without via' => ['HTTP/2.0', true, null, 'HTTP/2.0'],
22442249
'trusted with via' => ['HTTP/2.0', true, '1.0 fred, 1.1 nowhere.com (Apache/1.1)', 'HTTP/1.0'],
22452250
'trusted with via and protocol name' => ['HTTP/2.0', true, 'HTTP/1.0 fred, HTTP/1.1 nowhere.com (Apache/1.1)', 'HTTP/1.0'],
22462251
'trusted with broken via' => ['HTTP/2.0', true, 'HTTP/1^0 foo', 'HTTP/2.0'],

0 commit comments

Comments
 (0)
0