|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2005-10-21 23:50 UTC] tony2001@php.net
[2005-10-28 14:01 UTC] dmitry@php.net
[2005-10-28 17:03 UTC] dmitry@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 02:00:01 2025 UTC |
Description: ------------ On 64-bit Opteron systems, certain functions which operate on arrays will corrupt negative integer array indexes, turning them into large positive integers. I've found at least str_replace, preg_replace, and array_map to exhibit this behavior. This bug has been inserting odd, but harmless entries into user preferences on Wikipedia, though there might be more serious problems caused by it that we haven't yet discovered. Problem confirmed on PHP 4.4.0, 4.4.1RC1, and 5.1.0RC1 running on Fedora Core 3 for x86_64; compiled PHP with gcc (GCC) 3.4.4 20050721 (Red Hat 3.4.4-2) Reproduce code: --------------- var_dump( str_replace( 'a', 'b', array( -1 => -1 ) ) ); Expected result: ---------------- Running on our 32-bit Linux systems I receive the expected: array(1) { [-1]=> string(2) "-1" } Actual result: -------------- On our 64-bit Linux servers, I get an incorrect index: array(1) { [4294967295]=> string(2) "-1" }