ID: 49244 Updated by: paj...@php.net Reported By: ronlentjes at yahoo dot com dot au -Status: Closed +Status: Assigned Bug Type: Scripting Engine problem Operating System: Linux Fedora 8 PHP Version: 5.*, 6 (2009-09-20) Assigned To: felipe New Comment:
DId you reproduce the garbage in trunk on x64 and x86, ubuntu and windows? That's why I did not apply it yet. Previous Comments: ------------------------------------------------------------------------ [2009-11-02 17:41:14] fel...@php.net 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. ------------------------------------------------------------------------ [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 ------------------------------------------------------------------------ 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