From 05f3e77193e53d3050c15e0adc93ae40fd1d3382 Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Wed, 29 Jun 2022 20:31:16 +0200 Subject: [PATCH] [HttpFoundation] Fix TypeError on null `$_SESSION` in `NativeSessionStorage::save()` --- .../Session/Storage/NativeSessionStorage.php | 2 +- .../Tests/Session/Storage/NativeSessionStorageTest.php | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php b/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php index 629af455f17db..5750b01af5117 100644 --- a/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php +++ b/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php @@ -256,7 +256,7 @@ public function save() unset($_SESSION[$key]); } } - if ([$key = $this->metadataBag->getStorageKey()] === array_keys($_SESSION)) { + if ($_SESSION && [$key = $this->metadataBag->getStorageKey()] === array_keys($_SESSION)) { unset($_SESSION[$key]); } diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php index 3ed7ce4e04653..33d3ac06366d0 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php @@ -321,4 +321,13 @@ public function testRegenerateInvalidSessionIdForNativeFileSessionHandler() $this->assertTrue($started); $this->assertSame('&~[', session_id()); } + + public function testSaveHandlesNullSessionGracefully() + { + $storage = $this->getStorage(); + $_SESSION = null; + $storage->save(); + + $this->addToAssertionCount(1); + } }