summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/string.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index f5851fa87d..8e5fb6f819 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -920,9 +920,11 @@ PHPAPI void php_implode(zval *delim, zval *arr, zval *return_value TSRMLS_DC)
break;
case IS_DOUBLE: {
- char stmp[MAX_LENGTH_OF_DOUBLE + EG(precision) + 1];
+ char *stmp;
+ stmp = emalloc(MAX_LENGTH_OF_DOUBLE + EG(precision) + 1);
str_len = sprintf(stmp, "%.*G", (int) EG(precision), Z_DVAL_PP(tmp));
smart_str_appendl(&implstr, stmp, str_len);
+ efree(stmp);
}
break;