#21523 [Com]: number_format causes call to emalloc for a negative amount of memory
| From: | edreddy at gmail dot com | Date: | Mon, 19 Jul 2004 15:05:19 +0000 |
| Subject: | #21523 [Com]: number_format causes call to emalloc for a negative amount of memory | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-62651@lists.php.net to get a copy of this message | ||
ID: 21523
Comment by: edreddy at gmail dot com
Reported By: cteubner at ncw-av dot com
Status: Closed
Bug Type: Strings related
Operating System: Windows 2000
PHP Version: 4.3.0
Assigned To: wez
New Comment:
when I used the function number_format(-2000, 2768) in php script and
invoke that script using cli php (in version 5.3.8), php interpreter is
getting into infinite loop of modf() and memmov() functions. It is
working fine if I use the the second argument of number_format()
function is less than 305. Platform is RedHat Enterprise Linux
Advanced Server3.0
Previous Comments:
------------------------------------------------------------------------
[2003-01-09 09:48:11] wez@php.net
This bug has been fixed in CVS.
In case this was a PHP problem, snapshots of the sources are packaged
every three hours; this change will be in the next snapshot. You can
grab the snapshot at http://snaps.php.net/.
In case this was a documentation problem, the fix will show up soon at
http://www.php.net/manual/.
In case this was a PHP.net website problem, the change will show
up on the PHP.net site and on the mirror sites in short time.
Thank you for the report, and for helping us make PHP better.
------------------------------------------------------------------------
[2003-01-09 06:36:52] wez@php.net
sprintf under win32 can crash when the format width is too large.
Changing the emalloc + sprintf to spprintf highlights a problem in our
spprintf implementation; it only returns a string of 80 chars.
This length causes the reslen calculation to produce a negative number
and thus emalloc to fail.
------------------------------------------------------------------------
[2003-01-08 13:05:47] cteubner at ncw-av dot com
When the following line is run:
echo number_format(2, 2678);
The following error appears in the Apache error log:
FATAL: emalloc(): Unable to allocate -1112 bytes
-259 and -123 have also appeared.
Clearly I accidentally used number_format in the reverse
direction that I meant to. However, it seems like whatever is
requesting memory for number_format is experiencing integer overflow.
That doesn't seem right.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=21523&edit=1