- Fix sapi_input_filter patch. Returning 1 from the filter handler should

make PHP register the variable, returning 0 shouldn't. The new length of
  the variables being filtered is now returned in the new_val_len argument
  of the function.
This commit is contained in:
Derick Rethans 2003-11-29 15:24:35 +00:00
parent f7830195c0
commit 750b0338bf
6 changed files with 20 additions and 19 deletions

View file

@ -207,14 +207,13 @@ SAPI_API SAPI_POST_HANDLER_FUNC(php_std_post_handler)
while (var) {
val = strchr(var, '=');
if (val) { /* have a value */
int val_len;
unsigned int val_len, new_val_len;
*val++ = '\0';
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);
if (val_len) {
php_register_variable_safe(var, val, val_len, array_ptr TSRMLS_CC);
if (sapi_module.input_filter(PARSE_POST, var, &val, val_len, &new_val_len TSRMLS_CC)) {
php_register_variable_safe(var, val, new_val_len, array_ptr TSRMLS_CC);
}
}
var = php_strtok_r(NULL, "&", &strtok_buf);
@ -305,13 +304,13 @@ SAPI_API SAPI_TREAT_DATA_FUNC(php_default_treat_data)
val = strchr(var, '=');
if (val) { /* have a value */
int val_len;
unsigned int new_val_len;
*val++ = '\0';
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);
if (val_len) {
php_register_variable_safe(var, val, val_len, array_ptr TSRMLS_CC);
if (sapi_module.input_filter(PARSE_POST, var, &val, val_len, &new_val_len TSRMLS_CC)) {
php_register_variable_safe(var, val, new_val_len, array_ptr TSRMLS_CC);
}
} else {
php_url_decode(var, strlen(var));