derick Wed Nov 26 04:53:23 2003 EDT
Modified files:
/php-src/main php_variables.c rfc1867.c
Log:
- Prevent registration of the variable when a zero-length is returned
from the sapi_input_filter.
Index: php-src/main/php_variables.c
diff -u php-src/main/php_variables.c:1.71 php-src/main/php_variables.c:1.72
--- php-src/main/php_variables.c:1.71 Mon Oct 13 23:49:13 2003
+++ php-src/main/php_variables.c Wed Nov 26 04:53:22 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_variables.c,v 1.71 2003/10/14 03:49:13 iliaa Exp $ */
+/* $Id: php_variables.c,v 1.72 2003/11/26 09:53:22 derick Exp $ */
#include <stdio.h>
#include "php.h"
@@ -213,7 +213,9 @@
php_url_decode(var, strlen(var));
val_len = php_url_decode(val, strlen(val));
val_len = sapi_module.input_filter(PARSE_POST, var, &val,
val_len TSRMLS_CC);
- php_register_variable_safe(var, val, val_len, array_ptr
TSRMLS_CC);
+ if (val_len) {
+ php_register_variable_safe(var, val, val_len,
array_ptr TSRMLS_CC);
+ }
}
var = php_strtok_r(NULL, "&", &strtok_buf);
}
@@ -308,7 +310,9 @@
php_url_decode(var, strlen(var));
val_len = php_url_decode(val, strlen(val));
val_len = sapi_module.input_filter(arg, var, &val, val_len
TSRMLS_CC);
- php_register_variable_safe(var, val, val_len, array_ptr
TSRMLS_CC);
+ if (val_len) {
+ php_register_variable_safe(var, val, val_len,
array_ptr TSRMLS_CC);
+ }
} else {
php_url_decode(var, strlen(var));
php_register_variable_safe(var, "", 0, array_ptr TSRMLS_CC);
Index: php-src/main/rfc1867.c
diff -u php-src/main/rfc1867.c:1.146 php-src/main/rfc1867.c:1.147
--- php-src/main/rfc1867.c:1.146 Wed Nov 12 17:34:58 2003
+++ php-src/main/rfc1867.c Wed Nov 26 04:53:22 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: rfc1867.c,v 1.146 2003/11/12 22:34:58 sesser Exp $ */
+/* $Id: rfc1867.c,v 1.147 2003/11/26 09:53:22 derick Exp $ */
/*
* This product includes software developed by the Apache Group
@@ -881,22 +881,25 @@
if (!filename && param) {
char *value = multipart_buffer_read_body(mbuff
TSRMLS_CC);
+ int val_len;
if (!value) {
value = estrdup("");
}
- sapi_module.input_filter(PARSE_POST, param, &value,
strlen(value) TSRMLS_CC);
+ val_len = sapi_module.input_filter(PARSE_POST, param,
&value, strlen(value) TSRMLS_CC);
+ if (val_len) {
#if HAVE_MBSTRING && !defined(COMPILE_DL_MBSTRING)
- if (php_mb_encoding_translation(TSRMLS_C)) {
- php_mb_gpc_stack_variable(param, value,
&val_list, &len_list,
-
&num_vars, &num_vars_max TSRMLS_CC);
- } else {
- safe_php_register_variable(param, value,
array_ptr, 0 TSRMLS_CC);
- }
+ if (php_mb_encoding_translation(TSRMLS_C)) {
+ php_mb_gpc_stack_variable(param,
value, &val_list, &len_list,
+
&num_vars, &num_vars_max TSRMLS_CC);
+ } else {
+ safe_php_register_variable(param,
value, array_ptr, 0 TSRMLS_CC);
+ }
#else
- safe_php_register_variable(param, value, array_ptr, 0
TSRMLS_CC);
+ safe_php_register_variable(param, value,
array_ptr, 0 TSRMLS_CC);
#endif
+ }
if (!strcasecmp(param, "MAX_FILE_SIZE")) {
max_file_size = atol(value);
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php