Skip to content

Commit f9fa7f4

Browse files
committed
getSessionId to return null on empty session id, avoiding strtr() warnings
1 parent 93b4b58 commit f9fa7f4

2 files changed

Lines changed: 21 additions & 6 deletions

File tree

src/SensitiveValueSanitizer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ private function getSessionId(): ?string
4949
} else {
5050
$sessionId = $_COOKIE[$sessionName] ?? null;
5151
}
52-
return is_string($sessionId) ? $sessionId : null;
52+
return is_string($sessionId) && $sessionId !== '' ? $sessionId : null;
5353
}
5454

5555

tests/PhpInfoTest.phpt

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,7 @@ class PhpInfoTest extends TestCase
2323
protected function setUp(): void
2424
{
2525
$_SERVER['HTTP_WALDO_FRED'] = self::WALDO_1337;
26-
$_SERVER['HTTP_COOKIE'] = 'PHPSESSID=' . urlencode(self::SESSION_ID);
27-
$_COOKIE['PHPSESSID'] = self::SESSION_ID;
28-
29-
session_set_save_handler(new TestSessionHandler(self::SESSION_ID));
30-
session_start();
26+
$this->sessionStart(self::SESSION_ID);
3127
}
3228

3329

@@ -135,6 +131,25 @@ class PhpInfoTest extends TestCase
135131
Assert::contains('🍕', $html);
136132
}
137133

134+
135+
public function testGetHtmlEmptySessionCookie(): void
136+
{
137+
session_destroy();
138+
$this->sessionStart('');
139+
Assert::noError(function (): void {
140+
(new PhpInfo())->getHtml();
141+
});
142+
}
143+
144+
145+
private function sessionStart(string $sessionId): void
146+
{
147+
$_SERVER['HTTP_COOKIE'] = 'PHPSESSID=' . urlencode($sessionId);
148+
$_COOKIE['PHPSESSID'] = $sessionId;
149+
session_set_save_handler(new TestSessionHandler($sessionId));
150+
session_start();
151+
}
152+
138153
}
139154

140155
(new PhpInfoTest())->run();

0 commit comments

Comments
 (0)