cvs: php-src(PHP_4_3) / NEWS /main spprintf.c
| From: | Ilia Alshanetsky | Date: | Mon, 29 Sep 2003 01:09:37 +0000 |
| Subject: | cvs: php-src(PHP_4_3) / NEWS /main spprintf.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-23938@lists.php.net to get a copy of this message | ||
iliaa Sun Sep 28 21:09:37 2003 EDT
Modified files: (Branch: PHP_4_3)
/php-src NEWS
/php-src/main spprintf.c
Log:
MFH: Fixed Bug #25665 (var_dump() hangs on Nan and INF).
Index: php-src/NEWS
diff -u php-src/NEWS:1.1247.2.410 php-src/NEWS:1.1247.2.411
--- php-src/NEWS:1.1247.2.410 Fri Sep 26 14:00:00 2003
+++ php-src/NEWS Sun Sep 28 21:09:16 2003
@@ -8,6 +8,7 @@
- Fixed memory leak in gethostbynamel() if an error occurs. (Sara)
- Fixed FastCGI being unable to bind to a specific IP. (Sascha)
- Fixed bug #25671 (str_replace corrupting subarrays). (Sara)
+- Fixed Bug #25665 (var_dump() hangs on Nan and INF). (Ilia)
- Fixed bug #25648 (xslt_set_encoding() being not detected correctly). (Jani)
- Fixed bug #25636 (SNMP Session not closed on success). (Ilia,
nesslage[at]mwsc[dot]edu)
Index: php-src/main/spprintf.c
diff -u php-src/main/spprintf.c:1.10.4.1 php-src/main/spprintf.c:1.10.4.2
--- php-src/main/spprintf.c:1.10.4.1 Tue Dec 31 11:26:27 2002
+++ php-src/main/spprintf.c Sun Sep 28 21:09:36 2003
@@ -473,6 +473,23 @@
case 'g':
case 'G':
+ fp_num = va_arg(ap, double);
+
+ if (zend_isnan(fp_num)) {
+ s = "NAN";
+ s_len = 3;
+ break;
+ } else if (zend_isinf(fp_num)) {
+ if (fp_num > 0) {
+ s = "INF";
+ s_len = 3;
+ } else {
+ s = "-INF";
+ s_len = 4;
+ }
+ break;
+ }
+
if (adjust_precision == NO)
precision = FLOAT_DIGITS;
else if (precision == 0)
@@ -480,8 +497,7 @@
/*
* * We use &num_buf[ 1 ], so that we have room for the sign
*/
- s = ap_php_gcvt(va_arg(ap, double), precision, &num_buf[1],
- alternate_form);
+ s = ap_php_gcvt(fp_num, precision, &num_buf[1], alternate_form);
if (*s == '-')
prefix_char = *s++;
else if (print_sign)