]> granicus.if.org Git - php/commitdiff
Corrected problems introduced by previous commit.
authorIlia Alshanetsky <iliaa@php.net>
Tue, 29 Aug 2006 19:50:04 +0000 (19:50 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 29 Aug 2006 19:50:04 +0000 (19:50 +0000)
# Issue found by Stefan

ext/standard/string.c

index 9bb8304b8e3d41e6b94a6d179b54de6fb73f0af9..2de5d03a4f6400a513f00b4dd546cd1cfca25a65 100644 (file)
@@ -905,7 +905,7 @@ PHPAPI void php_implode(zval *delim, zval *arr, zval *return_value TSRMLS_DC)
 
                        case IS_LONG: {
                                char stmp[MAX_LENGTH_OF_LONG + 1];
-                               str_len = snprintf(stmp, sizeof(stmp), "%ld", Z_LVAL_PP(tmp));
+                               str_len = sprintf(stmp, "%ld", Z_LVAL_PP(tmp));
                                smart_str_appendl(&implstr, stmp, str_len);
                        }
                                break;
@@ -920,10 +920,10 @@ PHPAPI void php_implode(zval *delim, zval *arr, zval *return_value TSRMLS_DC)
                                break;
 
                        case IS_DOUBLE: {
-                               char *stmp = (char *) do_alloca(MAX_LENGTH_OF_DOUBLE + EG(precision) + 2); /* +1 for decimal point */
-                               str_len = snprintf(stmp, sizeof(stmp),  "%.*G", (int) EG(precision), Z_DVAL_PP(tmp));
+                               char *stmp;
+                               str_len = spprintf(&stmp, 0, "%.*G", (int) EG(precision), Z_DVAL_PP(tmp));
                                smart_str_appendl(&implstr, stmp, str_len);
-                               free_alloca(stmp);
+                               efree(stmp);
                        }
                                break;