ID:               49244
 Updated by:       fel...@php.net
 Reported By:      ronlentjes at yahoo dot com dot au
-Status:           Assigned
+Status:           Closed
 Bug Type:         Scripting Engine problem
 Operating System: Linux Fedora 8
 PHP Version:      5.*, 6 (2009-09-20)
-Assigned To:      pajoye
+Assigned To:      felipe
 New Comment:

This bug has been fixed in SVN.

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/.
 
Thank you for the report, and for helping us make PHP better.

Thanks for the patch. I've added more a change on the HEAD version
because the different function for unicode stuff. Looks all right.


Previous Comments:
------------------------------------------------------------------------

[2009-11-02 17:37:33] s...@php.net

Automatic comment from SVN on behalf of felipe
Revision: http://svn.php.net/viewvc/?view=revision&revision=290150
Log: - Fixed bug #49244 (Floating point NaN cause garbage characters).
(patch by Sjoerd)

------------------------------------------------------------------------

[2009-10-01 11:38:50] sjo...@php.net

With the patch applied, I could not reproduce the problem anymore.
Pajoye still has problems, so it is not clear whether the patch solves
this bug.

The patch can be found here:
http://www.gissen.nl/files/bug49244.patch

------------------------------------------------------------------------

[2009-09-21 13:25:45] paj...@php.net

Can you verify why your patch does not work in trunk please? There is
still garbage. If you have a new patch, please post a link to it, the
form breaks the patch format.

------------------------------------------------------------------------

[2009-09-20 10:24:28] sjo...@php.net

I can't commit things. Somebody with SVN access should apply my patch
and commit it. I've improved some things and added a testcase:

Index: ext/standard/formatted_print.c
===================================================================
--- ext/standard/formatted_print.c      (revision 288201)
+++ ext/standard/formatted_print.c      (working copy)
@@ -42,6 +42,8 @@
 #define FLOAT_PRECISION 6
 #define MAX_FLOAT_DIGITS 38
 #define MAX_FLOAT_PRECISION 40
+#define NOT_A_NUMBER "NaN"
+#define INFINITE "INF"
 
 #if 0
 /* trick to control varargs functions through cpp */
@@ -231,15 +233,15 @@
        
        if (zend_isnan(number)) {
                is_negative = (number<0);
-               php_sprintf_appendstring(buffer, pos, size, "NaN", 3, 0, 
padding,
-                                                                alignment, 
precision, is_negative, 0, always_sign);
+               php_sprintf_appendstring(buffer, pos, size, NOT_A_NUMBER,
strlen(NOT_A_NUMBER), 0, padding,
+                                       alignment, strlen(NOT_A_NUMBER), 
is_negative, 0, always_sign);
                return;
        }
 
        if (zend_isinf(number)) {
                is_negative = (number<0);
-               php_sprintf_appendstring(buffer, pos, size, "INF", 3, 0, 
padding,
-                                                                alignment, 
precision, is_negative, 0, always_sign);
+               php_sprintf_appendstring(buffer, pos, size, INFINITE,
strlen(INFINITE), 0, padding,
+                                       alignment, strlen(INFINITE), 
is_negative, 0, always_sign);
                return;
        }
 
Index: ext/standard/tests/strings/bug49244.phpt
===================================================================
--- ext/standard/tests/strings/bug49244.phpt    (revision 0)
+++ ext/standard/tests/strings/bug49244.phpt    (revision 0)
@@ -0,0 +1,8 @@
+--TEST--
+Bug #49244 (Floating point NaN cause garbage characters)
+--FILE--
+<?php
+printf("%f\n", pow(-1.0, 0.3));
+?>
+--EXPECT--
+NaN


------------------------------------------------------------------------

[2009-09-01 16:34:22] garre...@php.net

sjoerd -- That fix works fine for me.

Can you commit that?


------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/49244

-- 
Edit this bug report at http://bugs.php.net/?id=49244&edit=1

Reply via email to