cvs: php-src /main rfc1867.c
| From: | Rui Hirokawa | Date: | Wed, 05 Nov 2003 23:27:42 +0000 |
| Subject: | cvs: php-src /main rfc1867.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-24443@lists.php.net to get a copy of this message | ||
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++;