From: Ilmari Karonen Date: Sun, 17 Dec 2006 13:40:28 +0000 (+0000) Subject: Detect PHP 5.0.x 64-bit bug and abort in WebStart.php; too many things break X-Git-Tag: 1.31.0-rc.0~54865 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/pie.php?a=commitdiff_plain;h=305522e4e6a966e3aea74e7138e5db5a7c9c5d4b;p=lhc%2Fweb%2Fwiklou.git Detect PHP 5.0.x 64-bit bug and abort in WebStart.php; too many things break mysteriously otherwise (detection code copied from install-utils.inc) --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index d7fd7a474b..1c63875b31 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -334,6 +334,8 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * (bug 8153) doesn't work in site notice * (bug 6690) wfMsgNoTrans() transforms messages * (bug 8274) Wrap edit tools in a
with a specified class +* Detect PHP 5.0.x 64-bit bug and abort in WebStart.php; too many things break + mysteriously otherwise (detection code copied from install-utils.inc) == Languages updated == diff --git a/includes/WebStart.php b/includes/WebStart.php index 0c71ce53da..37582290d5 100644 --- a/includes/WebStart.php +++ b/includes/WebStart.php @@ -4,6 +4,16 @@ # starts the profiler and loads the configuration, and optionally loads # Setup.php depending on whether MW_NO_SETUP is defined. +# Test for PHP bug which breaks PHP 5.0.x on 64-bit... +# As of 1.8 this breaks lots of common operations instead +# of just some rare ones like export. +$borked = str_replace( 'a', 'b', array( -1 => -1 ) ); +if( !isset( $borked[-1] ) ) { + echo "PHP 5.0.x is buggy on your 64-bit system; you must upgrade to PHP 5.1.x\n" . + "or higher. ABORTING. (http://bugs.php.net/bug.php?id=34879 for details)\n"; + die( -1 ); +} + # Protect against register_globals # This must be done before any globals are set by the code if ( ini_get( 'register_globals' ) ) {