ID: 30598 User updated by: os at sumu dot org Reported By: os at sumu dot org Status: Open Bug Type: Zend Engine 2 problem Operating System: Any PHP Version: 5.0.2 New Comment:
Oops.. looks like I should've searched the bug database a bit more, this is basically a duplicate to #30315. Previous Comments: ------------------------------------------------------------------------ [2004-10-28 15:15:11] os at sumu dot org Description: ------------ The change for DVAL_TO_LVAL macro in 5.0.2 breaks some of my code that worked in earlier versions. While it appears that it was relying on undefined behaviour, it allowed for example a direct port of Tiny Encryption Algorithm's reference C code for PHP to work. (http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm) Reproduce code: --------------- function tea_encrypt($cycle, $key) { $a = $cycle[0]; $b = $cycle[1]; $sum = 0; $delta = (int)0x9e3779b9; for($i=0; $i<32; $i++) { $sum = (int)($sum + $delta); $a += (($b << 4) + $key[1]) ^ ($b + $sum) ^ (($b >> 5) + $key[2]); $b += (($a << 4) + $key[3]) ^ ($a + $sum) ^ (($a >> 5) + $key[4]); } return array($a, $b); } $result = tea_encrypt(array(123456, 987654), array(0, 1, 2, 3, 4)); var_dump(unpack("H*", pack("V*", $result[0], $result[1]))); Expected result: ---------------- PHP versions prior to 5.0.2: ~> php -q tea.php array(1) { [1]=> string(16) "8f695fc4e6d3c507" } Actual result: -------------- ~> ./php-5.0.2/sapi/cli/php -q tea.php array(1) { [1]=> string(16) "ffffff7f00000080" } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=30598&edit=1
