diff --git a/lib/SimpleSAML/SessionHandlerPHP.php b/lib/SimpleSAML/SessionHandlerPHP.php index b95bdcb22bb2b0d9f2bfee28c8b0b6b2155cbcca..5b6ef5619607559cbab935cdb9c4fc2d0a0719a2 100644 --- a/lib/SimpleSAML/SessionHandlerPHP.php +++ b/lib/SimpleSAML/SessionHandlerPHP.php @@ -72,7 +72,12 @@ class SimpleSAML_SessionHandlerPHP extends SimpleSAML_SessionHandler { /* Generate new (secure) session id. */ $sessionId = SimpleSAML_Utilities::stringToHex(SimpleSAML_Utilities::generateRandomBytes(16)); SimpleSAML_Session::createSession($sessionId); - session_id($sessionId); + + if (session_id($sessionId) !== '') { + /* Session already started, close it. */ + session_write_close(); + session_id($sessionId); + } session_start();