diff options
| author | Marcus Boerger <helly@php.net> | 2002-06-23 00:57:01 +0000 |
|---|---|---|
| committer | Marcus Boerger <helly@php.net> | 2002-06-23 00:57:01 +0000 |
| commit | 761e234a43f16fe1ad387143b9673ee442c3f83c (patch) | |
| tree | 9f8639a67e5910437ef7797292947f82606335d5 /main/main.c | |
| parent | 1f56d4ba08b70e33c0a174d6352c88c22e91127f (diff) | |
| download | php-git-761e234a43f16fe1ad387143b9673ee442c3f83c.tar.gz | |
-unlimited php_printf
Diffstat (limited to 'main/main.c')
| -rw-r--r-- | main/main.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/main/main.c b/main/main.c index b6fe7bfd6e..7d0b3ec0f2 100644 --- a/main/main.c +++ b/main/main.c @@ -362,16 +362,19 @@ PHPAPI int php_printf(const char *format, ...) { va_list args; int ret; - char buffer[PRINTF_BUFFER_SIZE]; + char *buffer; int size; TSRMLS_FETCH(); va_start(args, format); - size = vsnprintf(buffer, sizeof(buffer), format, args); - if(size > sizeof(buffer) - 1) { - size = sizeof(buffer) - 1; + size = vspprintf(&buffer, 0, format, args); + if (buffer) { + ret = PHPWRITE(buffer, size); + efree(buffer); + } else { + php_error(E_ERROR, "Out of memory"); + ret = 0; } - ret = PHPWRITE(buffer, size); va_end(args); return ret; |
