version 1.1.1.1, 2012/02/21 23:47:56
|
version 1.1.1.2, 2012/05/29 12:34:39
|
Line 276 PHP_MINIT_FUNCTION(filter)
|
Line 276 PHP_MINIT_FUNCTION(filter)
|
REGISTER_LONG_CONSTANT("FILTER_FLAG_NO_RES_RANGE", FILTER_FLAG_NO_RES_RANGE, CONST_CS | CONST_PERSISTENT); |
REGISTER_LONG_CONSTANT("FILTER_FLAG_NO_RES_RANGE", FILTER_FLAG_NO_RES_RANGE, CONST_CS | CONST_PERSISTENT); |
REGISTER_LONG_CONSTANT("FILTER_FLAG_NO_PRIV_RANGE", FILTER_FLAG_NO_PRIV_RANGE, CONST_CS | CONST_PERSISTENT); |
REGISTER_LONG_CONSTANT("FILTER_FLAG_NO_PRIV_RANGE", FILTER_FLAG_NO_PRIV_RANGE, CONST_CS | CONST_PERSISTENT); |
|
|
sapi_register_input_filter(php_sapi_filter, php_sapi_filter_init); | sapi_register_input_filter(php_sapi_filter, php_sapi_filter_init TSRMLS_CC); |
|
|
return SUCCESS; |
return SUCCESS; |
} |
} |
Line 318 PHP_MINFO_FUNCTION(filter)
|
Line 318 PHP_MINFO_FUNCTION(filter)
|
{ |
{ |
php_info_print_table_start(); |
php_info_print_table_start(); |
php_info_print_table_row( 2, "Input Validation and Filtering", "enabled" ); |
php_info_print_table_row( 2, "Input Validation and Filtering", "enabled" ); |
php_info_print_table_row( 2, "Revision", "$Revision$"); | php_info_print_table_row( 2, "Revision", "$Id$"); |
php_info_print_table_end(); |
php_info_print_table_end(); |
|
|
DISPLAY_INI_ENTRIES(); |
DISPLAY_INI_ENTRIES(); |
Line 406 static unsigned int php_sapi_filter(int arg, char *var
|
Line 406 static unsigned int php_sapi_filter(int arg, char *var
|
{ |
{ |
zval new_var, raw_var; |
zval new_var, raw_var; |
zval *array_ptr = NULL, *orig_array_ptr = NULL; |
zval *array_ptr = NULL, *orig_array_ptr = NULL; |
char *orig_var = NULL; |
|
int retval = 0; |
int retval = 0; |
|
|
assert(*val != NULL); |
assert(*val != NULL); |
Line 447 static unsigned int php_sapi_filter(int arg, char *var
|
Line 446 static unsigned int php_sapi_filter(int arg, char *var
|
} |
} |
|
|
if (array_ptr) { |
if (array_ptr) { |
/* Make a copy of the variable name, as php_register_variable_ex seems to |
|
* modify it */ |
|
orig_var = estrdup(var); |
|
|
|
/* Store the RAW variable internally */ |
/* Store the RAW variable internally */ |
/* FIXME: Should not use php_register_variable_ex as that also registers |
|
* globals when register_globals is turned on */ |
|
Z_STRLEN(raw_var) = val_len; |
Z_STRLEN(raw_var) = val_len; |
Z_STRVAL(raw_var) = estrndup(*val, val_len); |
Z_STRVAL(raw_var) = estrndup(*val, val_len); |
Z_TYPE(raw_var) = IS_STRING; |
Z_TYPE(raw_var) = IS_STRING; |
Line 463 static unsigned int php_sapi_filter(int arg, char *var
|
Line 456 static unsigned int php_sapi_filter(int arg, char *var
|
|
|
if (val_len) { |
if (val_len) { |
/* Register mangled variable */ |
/* Register mangled variable */ |
/* FIXME: Should not use php_register_variable_ex as that also registers |
|
* globals when register_globals is turned on */ |
|
Z_STRLEN(new_var) = val_len; |
Z_STRLEN(new_var) = val_len; |
Z_TYPE(new_var) = IS_STRING; |
Z_TYPE(new_var) = IS_STRING; |
|
|
Line 473 static unsigned int php_sapi_filter(int arg, char *var
|
Line 464 static unsigned int php_sapi_filter(int arg, char *var
|
Z_STRVAL(new_var) = estrndup(*val, val_len); |
Z_STRVAL(new_var) = estrndup(*val, val_len); |
INIT_PZVAL(tmp_new_var); |
INIT_PZVAL(tmp_new_var); |
php_zval_filter(&tmp_new_var, IF_G(default_filter), IF_G(default_filter_flags), NULL, NULL/*charset*/, 0 TSRMLS_CC); |
php_zval_filter(&tmp_new_var, IF_G(default_filter), IF_G(default_filter_flags), NULL, NULL/*charset*/, 0 TSRMLS_CC); |
} else if (PG(magic_quotes_gpc) && !retval) { /* for PARSE_STRING php_register_variable_safe() will do the addslashes() */ |
|
Z_STRVAL(new_var) = php_addslashes(*val, Z_STRLEN(new_var), &Z_STRLEN(new_var), 0 TSRMLS_CC); |
|
} else { |
} else { |
Z_STRVAL(new_var) = estrndup(*val, val_len); |
Z_STRVAL(new_var) = estrndup(*val, val_len); |
} |
} |
Line 483 static unsigned int php_sapi_filter(int arg, char *var
|
Line 472 static unsigned int php_sapi_filter(int arg, char *var
|
} |
} |
|
|
if (orig_array_ptr) { |
if (orig_array_ptr) { |
php_register_variable_ex(orig_var, &new_var, orig_array_ptr TSRMLS_CC); | php_register_variable_ex(var, &new_var, orig_array_ptr TSRMLS_CC); |
} |
} |
if (array_ptr) { |
|
efree(orig_var); |
|
} |
|
|
|
if (retval) { |
if (retval) { |
if (new_val_len) { |
if (new_val_len) { |
Line 539 static zval *php_filter_get_storage(long arg TSRMLS_DC
|
Line 525 static zval *php_filter_get_storage(long arg TSRMLS_DC
|
|
|
{ |
{ |
zval *array_ptr = NULL; |
zval *array_ptr = NULL; |
zend_bool jit_initialization = (PG(auto_globals_jit) && !PG(register_globals) && !PG(register_long_arrays)); |
|
|
|
switch (arg) { |
switch (arg) { |
case PARSE_GET: |
case PARSE_GET: |
Line 552 static zval *php_filter_get_storage(long arg TSRMLS_DC
|
Line 537 static zval *php_filter_get_storage(long arg TSRMLS_DC
|
array_ptr = IF_G(cookie_array); |
array_ptr = IF_G(cookie_array); |
break; |
break; |
case PARSE_SERVER: |
case PARSE_SERVER: |
if (jit_initialization) { | if (PG(auto_globals_jit)) { |
zend_is_auto_global("_SERVER", sizeof("_SERVER")-1 TSRMLS_CC); |
zend_is_auto_global("_SERVER", sizeof("_SERVER")-1 TSRMLS_CC); |
} |
} |
array_ptr = IF_G(server_array); |
array_ptr = IF_G(server_array); |
break; |
break; |
case PARSE_ENV: |
case PARSE_ENV: |
if (jit_initialization) { | if (PG(auto_globals_jit)) { |
zend_is_auto_global("_ENV", sizeof("_ENV")-1 TSRMLS_CC); |
zend_is_auto_global("_ENV", sizeof("_ENV")-1 TSRMLS_CC); |
} |
} |
array_ptr = IF_G(env_array) ? IF_G(env_array) : PG(http_globals)[TRACK_VARS_ENV]; |
array_ptr = IF_G(env_array) ? IF_G(env_array) : PG(http_globals)[TRACK_VARS_ENV]; |