From: Ilia Alshanetsky Date: Thu, 27 Jul 2006 17:04:15 +0000 (+0000) Subject: Binary safe multipart request handling X-Git-Tag: php-5.2.0RC2~173 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cfda15ffc10bcc366544510e7b5df923e8adba4e;p=php Binary safe multipart request handling --- diff --git a/main/rfc1867.c b/main/rfc1867.c index aa2c2cdf69..5961853f89 100644 --- a/main/rfc1867.c +++ b/main/rfc1867.c @@ -40,7 +40,7 @@ PHPAPI int (*php_rfc1867_callback)(unsigned int event, void *event_data, void ** #if HAVE_MBSTRING && !defined(COMPILE_DL_MBSTRING) #include "ext/mbstring/mbstring.h" -static void safe_php_register_variable(char *var, char *strval, zval *track_vars_array, zend_bool override_protection TSRMLS_DC); +static void safe_php_register_variable(char *var, char *strval, int val_len, zval *track_vars_array, zend_bool override_protection TSRMLS_DC); #define SAFE_RETURN { \ php_mb_flush_gpc_variables(num_vars, val_list, len_list, array_ptr TSRMLS_CC); \ @@ -64,7 +64,7 @@ void php_mb_flush_gpc_variables(int num_vars, char **val_list, int *len_list, zv php_mb_gpc_encoding_converter(val_list, len_list, num_vars, NULL, NULL TSRMLS_CC); } for (i=0; i filename) { - safe_php_register_variable(lbuf, s+1, NULL, 0 TSRMLS_CC); + safe_php_register_variable(lbuf, s+1, strlen(s+1), NULL, 0 TSRMLS_CC); } else { - safe_php_register_variable(lbuf, filename, NULL, 0 TSRMLS_CC); + safe_php_register_variable(lbuf, filename, strlen(filename), NULL, 0 TSRMLS_CC); } } @@ -1236,7 +1237,7 @@ filedone: sprintf(lbuf, "%s_type", param); } if (!is_anonymous) { - safe_php_register_variable(lbuf, cd, NULL, 0 TSRMLS_CC); + safe_php_register_variable(lbuf, cd, strlen(cd), NULL, 0 TSRMLS_CC); } /* Add $foo[type] */ @@ -1260,7 +1261,7 @@ filedone: PG(magic_quotes_gpc) = 0; /* if param is of form xxx[.*] this will cut it to xxx */ if (!is_anonymous) { - safe_php_register_variable(param, temp_filename, NULL, 1 TSRMLS_CC); + safe_php_register_variable(param, temp_filename, strlen(temp_filename), NULL, 1 TSRMLS_CC); } /* Add $foo[tmp_name] */