From 673c07656e6aa5cad2677d6cb56bbf3ceef6bea5 Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Fri, 9 Oct 2015 17:25:36 -0400 Subject: [PATCH] Fix "installer started" detection NoLocalSettings.php tries to detect whether the installer has been started or not. But this detection has been broken since I4cf237d when a change was made to stop setting the session name when NO_SESSION is defined, causing NoLocalSettings.php to be looking at a different session-cookie than is actually being used by the installer. The complete fix is twofold: * Have WebInstaller::startSession() call session_name() * Have NoLocalSettings.php not call session_name() when PHP's session.auto_start configuration setting is set. Change-Id: I618d11df902b5d1f70e175bc94137621e9195c2f --- includes/NoLocalSettings.php | 4 +++- includes/installer/WebInstaller.php | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/includes/NoLocalSettings.php b/includes/NoLocalSettings.php index 6de9bfcde0..d299ab6ff5 100644 --- a/includes/NoLocalSettings.php +++ b/includes/NoLocalSettings.php @@ -37,7 +37,9 @@ foreach ( array_filter( explode( '/', $_SERVER['PHP_SELF'] ) ) as $part ) { if ( !function_exists( 'session_name' ) ) { $installerStarted = false; } else { - session_name( 'mw_installer_session' ); + if ( !wfIniGetBool( 'session.auto_start' ) ) { + session_name( 'mw_installer_session' ); + } $oldReporting = error_reporting( E_ALL & ~E_NOTICE ); $success = session_start(); error_reporting( $oldReporting ); diff --git a/includes/installer/WebInstaller.php b/includes/installer/WebInstaller.php index c2243b9efd..67a4defd2c 100644 --- a/includes/installer/WebInstaller.php +++ b/includes/installer/WebInstaller.php @@ -343,6 +343,7 @@ class WebInstaller extends Installer { $this->phpErrors = array(); set_error_handler( array( $this, 'errorHandler' ) ); try { + session_name( 'mw_installer_session' ); session_start(); } catch ( Exception $e ) { restore_error_handler(); -- 2.20.1