hirokawa Wed Nov 5 18:27:42 2003 EDT Modified files: /php-src/main rfc1867.c Log: added buffer reallocation for filename. Index: php-src/main/rfc1867.c diff -u php-src/main/rfc1867.c:1.144 php-src/main/rfc1867.c:1.145 --- php-src/main/rfc1867.c:1.144 Mon Nov 3 06:46:33 2003 +++ php-src/main/rfc1867.c Wed Nov 5 18:27:41 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: rfc1867.c,v 1.144 2003/11/03 11:46:33 sesser Exp $ */ +/* $Id: rfc1867.c,v 1.145 2003/11/05 23:27:41 hirokawa Exp $ */ /* * This product includes software developed by the Apache Group @@ -71,18 +71,23 @@ } } +void php_mb_gpc_realloc_buffer(char ***pval_list, int **plen_list, int *num_vars_max, int inc TSRMLS_DC) +{ + (*num_vars_max) += inc; + *pval_list = (char **)erealloc(*pval_list, (*num_vars_max+2)*sizeof(char *)); + *plen_list = (int *)erealloc(*plen_list, (*num_vars_max+2)*sizeof(int)); +} + void php_mb_gpc_stack_variable(char *param, char *value, char ***pval_list, int **plen_list, int *num_vars, int *num_vars_max TSRMLS_DC) { char **val_list=*pval_list; int *len_list=*plen_list; - if (*num_vars>=*num_vars_max){ - (*num_vars_max) += 16; - *pval_list = (char **)erealloc(val_list, (*num_vars_max+2)*sizeof(char *)); - *plen_list = (int *)erealloc(len_list, (*num_vars_max+2)*sizeof(int)); - val_list=*pval_list; - len_list=*plen_list; + if (*num_vars>=*num_vars_max){ + php_mb_gpc_realloc_buffer(pval_list, plen_list, num_vars_max, + 16 TSRMLS_CC); } + val_list[*num_vars] = (char *)estrdup(param); len_list[*num_vars] = strlen(param); (*num_vars)++; @@ -1012,6 +1017,10 @@ #if HAVE_MBSTRING && !defined(COMPILE_DL_MBSTRING) if (php_mb_encoding_translation(TSRMLS_C)) { + if (num_vars>=num_vars_max){ + php_mb_gpc_realloc_buffer(&val_list, &len_list, &num_vars_max, + 1 TSRMLS_CC); + } val_list[num_vars] = filename; len_list[num_vars] = strlen(filename); num_vars++;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php