summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2009-11-02 17:37:32 +0000
committerFelipe Pena <felipe@php.net>2009-11-02 17:37:32 +0000
commit574b0882a12f33f00e04cc1c43c410863d60e9c6 (patch)
treee2a78b370905252a842ce83031f00a739e7a4547 /ext
parentca8f7d946794568a58aba71d6d4d39ae922b0ad1 (diff)
downloadphp-git-574b0882a12f33f00e04cc1c43c410863d60e9c6.tar.gz
- Fixed bug #49244 (Floating point NaN cause garbage characters). (patch by Sjoerd)
Diffstat (limited to 'ext')
-rw-r--r--ext/standard/formatted_print.c4
-rw-r--r--ext/standard/tests/bug49244.phpt32
2 files changed, 34 insertions, 2 deletions
diff --git a/ext/standard/formatted_print.c b/ext/standard/formatted_print.c
index 6d3e5ad8e1..a55f4943f5 100644
--- a/ext/standard/formatted_print.c
+++ b/ext/standard/formatted_print.c
@@ -232,14 +232,14 @@ php_sprintf_appenddouble(char **buffer, int *pos,
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);
+ alignment, 3, 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);
+ alignment, 3, is_negative, 0, always_sign);
return;
}
diff --git a/ext/standard/tests/bug49244.phpt b/ext/standard/tests/bug49244.phpt
new file mode 100644
index 0000000000..1ba24fb9b4
--- /dev/null
+++ b/ext/standard/tests/bug49244.phpt
@@ -0,0 +1,32 @@
+--TEST--
+Bug #49244 (Floating point NaN cause garbage characters)
+--FILE--
+<?php
+
+for ($i = 0; $i < 10; $i++) {
+ printf("{%f} %1\$f\n", pow(-1.0, 0.3));
+ printf(b"{%f} %1\$f\n", pow(-1.0, 0.3));
+}
+
+?>
+--EXPECT--
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN
+{NaN} NaN