From: vivekanandan8 at yahoo dot com Operating system: Debian PHP version: 5.2CVS-2009-03-27 (snap) PHP Bug Type: Scripting Engine problem Bug description: integer overflows it is converted to double but it is not done in vice versa.
Description: ------------ when the integer overflows it is converted to double but it is not done in vice versa. Hence i fell: it is not done from double to long. Hence in the function increment_function(zend_operators.c) we have to add the validation as follows case IS_DOUBLE: if(op1->value.dval == LONG_MIN) { op1->value.lval = (long) op1->value.dval+1; op1->type = IS_LONG; }else{ op1->value.dval = op1->value.dval + 1; } Reproduce code: --------------- <? $vValue = -2147483647; var_dump($vValue); //output: int(-2147483647) $vValue--; var_dump($vValue); //output: float(-2147483648) $vValue--; var_dump($vValue); //output: float(-2147483649) $vValue++; var_dump($vValue);//output: float(-2147483648) $vValue++; var_dump($vValue);//output: float(-2147483647) ?> Expected result: ---------------- int(-2147483647) int(-2147483648) float(-2147483649) int(-2147483648) int(-2147483647) Actual result: -------------- int(-2147483647) int(-2147483648) float(-2147483649) float(-2147483648) float(-2147483647) -- Edit bug report at http://bugs.php.net/?id=47805&edit=1 -- Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=47805&r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=47805&r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=47805&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=47805&r=fixedcvs Fixed in CVS and need be documented: http://bugs.php.net/fix.php?id=47805&r=needdocs Fixed in release: http://bugs.php.net/fix.php?id=47805&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=47805&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=47805&r=needscript Try newer version: http://bugs.php.net/fix.php?id=47805&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=47805&r=support Expected behavior: http://bugs.php.net/fix.php?id=47805&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=47805&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=47805&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=47805&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=47805&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=47805&r=dst IIS Stability: http://bugs.php.net/fix.php?id=47805&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=47805&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=47805&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=47805&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=47805&r=mysqlcfg