[Freeswitch-svn] [commit] r4756 - freeswitch/trunk/src
Author: mikej Date: Fri Mar 23 18:44:28 2007 New Revision: 4756 Modified: freeswitch/trunk/src/switch_apr.c freeswitch/trunk/src/switch_console.c Log: a little realloc never hurt anyone. Modified: freeswitch/trunk/src/switch_apr.c ============================================================================== --- freeswitch/trunk/src/switch_apr.c (original) +++ freeswitch/trunk/src/switch_apr.c Fri Mar 23 18:44:28 2007 @@ -657,8 +657,31 @@ #ifdef HAVE_VASPRINTF return vasprintf(buf, format, ap); #else - *buf = (char *) malloc(2048); - return vsnprintf(*buf, 2048, format, ap); + size_t block_size = 1024; + int ret = -1; + int count = 1; + *buf = (char *) malloc(block_size); + + if (*buf == NULL) { + return -1; + } + + while (ret == -1 && count < 10) { + ret = vsnprintf(*buf, block_size*count, format, ap); + if (ret == -1) { + void *new_buf; + count++; + new_buf = realloc(*buf, block_size*count); + if (new_buf == NULL) { + *buf = NULL; + return -1; + } else { + *buf = new_buf; + } + } + } + return ret; + #endif } Modified: freeswitch/trunk/src/switch_console.c ============================================================================== --- freeswitch/trunk/src/switch_console.c (original) +++ freeswitch/trunk/src/switch_console.c Fri Mar 23 18:44:28 2007 @@ -41,7 +41,7 @@ char *buf = handle->data; char *end = handle->end; int ret = 0; - char *data; + char *data = NULL; if (handle->data_len >= handle->data_size) { return SWITCH_STATUS_FALSE;
participants (1)
-
Freeswitch SVN