ID: 35410 Updated by: [EMAIL PROTECTED] Reported By: thomas dot werner at mac dot com -Status: Open +Status: Assigned Bug Type: WDDX related -Operating System: Linux / MacOSX +Operating System: * -PHP Version: 4.4.1 +PHP Version: 5CVS, 4CVS (2005-11-30) (cvs) -Assigned To: +Assigned To: iliaa New Comment:
Assigned to the one who broke it. :) Previous Comments: ------------------------------------------------------------------------ [2005-11-28 09:03:06] thomas dot werner at mac dot com what does it mean? a bug or a new "feature"? feature because you wrote "the behaviour changed" ... ------------------------------------------------------------------------ [2005-11-26 18:55:20] [EMAIL PROTECTED] I looked into this a bit deeper and it appears that the behaviour changed when fixing #34068. The patch can be seen at http://cvs.php.net/diff.php/php-src/ext/wddx/wddx.c?ws=0&r1=1.119&r2=1.120&ty=u. ------------------------------------------------------------------------ [2005-11-26 18:32:57] thomas dot werner at mac dot com PHP 5.0.4/5.0.5 on mac and 5.0.5 on linux outputs the same like 4.4.0. I guess, this behavior beguns with the "fast" fixes of PHP file-upload/$GLOBALS overwrite vulnerability, but i'm not shure, or another fix introduced in 4.4.1. maybe the xml-parser thinks, oh its a number, not a string and convert it to integer, but its out of range... i know only, my php-app worked over years :o) ------------------------------------------------------------------------ [2005-11-26 18:11:43] [EMAIL PROTECTED] PHP 5.1.0 on Linux compiled with ./configure --enable-wddx gives me the following results that are again different from the 4.4.1 and 4.4.0 results: array(1) { ["content_queries"]=> array(1) { ["content_113300831086270200"]=> array(1) { [-2147483648]=> array(3) { ["max"]=> int(10) ["cache"]=> int(4) ["order"]=> array(1) { ["content_113300831086270200"]=> array(1) { ["CMS_BUILD"]=> string(4) "desc" } } } } } } ------------------------------------------------------------------------ [2005-11-26 17:11:23] thomas dot werner at mac dot com Description: ------------ I have a wddx file: ******************* <wddxpacket version="1.0"> <header> <comment>Content Configuration File</comment> </header> <data> <struct> <var name="content_queries"> <struct> <var name="content_113300831086270200"> <struct> <var name="113301888545229100"> <struct> <var name="max"> <number>10</number> </var> <var name="cache"> <number>4</number> </var> <var name="order"> <struct> <var name="content_113300831086270200"> <struct> <var name="CMS_BUILD"> <string>desc</string> </var> </struct> </var> </struct> </var> </struct> </var> </struct> </var> </struct> </var> </struct> </data> </wddxpacket> and load it with the function "wddx_deserialize" in $config. var_dump outputs different arrays in php-4.4.0 and php-4.4.1. ["113301888545229100"] (4.4.0) and [2147483647] (4.4.1) are not the same (string vs. int). i used exact the same configuration for compiling and checked it with debian sarge on linux and macosx too. cheers tom Reproduce code: --------------- [...] if ( !( $filepointer = @fopen( $filename, 'r' ) ) ) { return false; } while ( !feof( $filepointer) ) { $data .= fgets( $filepointer, 4096 ); } fclose( $filepointer ); if ( $data ) { $config = wddx_deserialize( $data ); [...] Expected result: ---------------- [...] ["content_queries"]=> array(1) { ["content_113300831086270200"]=> array(1) { ["113301888545229100"]=> array(3) { ["max"]=> int(10) ["cache"]=> int(4) ["order"]=> array(1) { ["content_113300831086270200"]=> array(1) { ["CMS_BUILD"]=> string(4) "desc" } } } } } [...] Actual result: -------------- [...] ["content_queries"]=> array(1) { ["content_113300831086270200"]=> array(1) { [2147483647]=> [...] 2147483647 is not right... ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35410&edit=1