From fc74415e687f6350e02c4a7dc96f1257cf508880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Thu, 3 Nov 2022 08:39:59 +0100 Subject: [PATCH 1/2] Read encrypted session data again on reopen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/private/Session/CryptoSessionData.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/private/Session/CryptoSessionData.php b/lib/private/Session/CryptoSessionData.php index b01887e39e20f..5c39ebb1e9169 100644 --- a/lib/private/Session/CryptoSessionData.php +++ b/lib/private/Session/CryptoSessionData.php @@ -163,7 +163,11 @@ public function clear() { } public function reopen(): bool { - return $this->session->reopen(); + $reopened = $this->session->reopen(); + if ($reopened) { + $this->initializeSession(); + } + return $reopened; } /** From c6b2d08e67cdeda5691d26b117ebf398526d9ed6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Thu, 3 Nov 2022 09:58:31 +0100 Subject: [PATCH 2/2] Do not remove complete encrypted session key when just a key should be removed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/private/Session/CryptoSessionData.php | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/private/Session/CryptoSessionData.php b/lib/private/Session/CryptoSessionData.php index 5c39ebb1e9169..df810d5b30c8d 100644 --- a/lib/private/Session/CryptoSessionData.php +++ b/lib/private/Session/CryptoSessionData.php @@ -143,7 +143,6 @@ public function remove(string $key) { $reopened = $this->reopen(); $this->isModified = true; unset($this->sessionValues[$key]); - $this->session->remove(self::encryptedSessionName); if ($reopened) { $this->close(); }