From f365d212edbaab4058875fe39623a97befbf98b0 Mon Sep 17 00:00:00 2001 From: Ben Fuhrmannek Date: Mon, 22 Feb 2016 22:02:32 +0100 Subject: temp. disabled treat_data to simplify things --- execute.c | 1 + ifilter.c | 17 +++++++++-------- php_suhosin7.h | 5 +++-- suhosin7.c | 4 ++-- treat_data.c | 13 +++++++------ 5 files changed, 22 insertions(+), 18 deletions(-) diff --git a/execute.c b/execute.c index 4648b93..8abaff2 100644 --- a/execute.c +++ b/execute.c @@ -364,6 +364,7 @@ static int suhosin_detect_codetype(zend_op_array *op_array) * This function provides a hook for execution */ ZEND_API static void suhosin_execute_ex(zend_execute_data *execute_data) { + // SDEBUG("X------------------------->") // TODO: check execute_data + execute_data->func zend_op_array *new_op_array; diff --git a/ifilter.c b/ifilter.c index 5f9e0db..3cbbc4e 100644 --- a/ifilter.c +++ b/ifilter.c @@ -295,15 +295,16 @@ unsigned int suhosin_input_filter_wrapper(int arg, char *var, char **val, size_t // zend_bool already_scanned = SUHOSIN7_G(already_scanned); // SUHOSIN7_G(already_scanned) = 0; // SDEBUG("ifilter arg=%d var=%s do_not_scan=%d already_scanned=%d", arg, var, SUHOSIN7_G(do_not_scan), already_scanned); - SDEBUG("ifilter arg=%d var=%s do_not_scan=%d", arg, var, SUHOSIN7_G(do_not_scan)); + // SDEBUG("ifilter arg=%d var=%s do_not_scan=%d", arg, var, SUHOSIN7_G(do_not_scan)); + SDEBUG("ifilter arg=%d var=%s", arg, var); - if (SUHOSIN7_G(do_not_scan)) { - SDEBUG("do_not_scan"); - if (new_val_len) { - *new_val_len = val_len; - } - return 1; - } + // if (SUHOSIN7_G(do_not_scan)) { + // SDEBUG("do_not_scan"); + // if (new_val_len) { + // *new_val_len = val_len; + // } + // return 1; + // } // if (!already_scanned) { if (suhosin_input_filter(arg, var, val, val_len, new_val_len)==0) { diff --git a/php_suhosin7.h b/php_suhosin7.h index 5a13576..0a40316 100644 --- a/php_suhosin7.h +++ b/php_suhosin7.h @@ -128,7 +128,7 @@ ZEND_BEGIN_MODULE_GLOBALS(suhosin7) zend_bool simulation; // zend_bool stealth; - zend_bool already_scanned; + // zend_bool already_scanned; zend_bool abort_request; // @@ -247,7 +247,7 @@ ZEND_BEGIN_MODULE_GLOBALS(suhosin7) /* misc */ zend_bool coredump; // zend_bool apc_bug_workaround; - zend_bool do_not_scan; + // zend_bool do_not_scan; // zend_bool server_encode; zend_bool server_strip; @@ -372,6 +372,7 @@ void suhosin_hook_memory_limit(); void suhosin_hook_treat_data(); void suhosin_hook_execute(); void suhosin_hook_register_server_variables(); +// void suhosin_hook_sha256(); static inline void suhosin_bailout() { diff --git a/suhosin7.c b/suhosin7.c index 8ce72d7..9ed1eca 100644 --- a/suhosin7.c +++ b/suhosin7.c @@ -516,7 +516,8 @@ PHP_MINIT_FUNCTION(suhosin7) suhosin_hook_treat_data(); suhosin_hook_execute(); suhosin_hook_register_server_variables(); - + // suhosin_hook_sha256(); + return SUCCESS; } /* }}} */ @@ -547,7 +548,6 @@ PHP_RINIT_FUNCTION(suhosin7) PHP_RSHUTDOWN_FUNCTION(suhosin7) { SDEBUG("(RSHUTDOWN)"); - return SUCCESS; } /* }}} */ diff --git a/treat_data.c b/treat_data.c index 1c41e85..d842afc 100644 --- a/treat_data.c +++ b/treat_data.c @@ -144,6 +144,7 @@ SAPI_TREAT_DATA_FUNC(suhosin_treat_data) php_error_docref(NULL, E_WARNING, "Input variables exceeded " ZEND_LONG_FMT ". To increase the limit change max_input_vars in php.ini.", PG(max_input_vars)); break; } + SDEBUG("calling input filter from treat_data"); if (val) { /* have a value */ size_t val_len; @@ -154,9 +155,9 @@ SAPI_TREAT_DATA_FUNC(suhosin_treat_data) val_len = php_url_decode(val, strlen(val)); val = estrndup(val, val_len); if (suhosin_input_filter(arg, var, &val, val_len, &new_val_len)) { - if (sapi_module.input_filter(arg, var, &val, new_val_len, &new_val_len)) { + // if (sapi_module.input_filter(arg, var, &val, new_val_len, &new_val_len)) { php_register_variable_safe(var, val, new_val_len, &array); - } + // } } else { SUHOSIN7_G(abort_request) = 1; } @@ -169,9 +170,9 @@ SAPI_TREAT_DATA_FUNC(suhosin_treat_data) val_len = 0; val = estrndup("", val_len); if (suhosin_input_filter(arg, var, &val, val_len, &new_val_len)) { - if (sapi_module.input_filter(arg, var, &val, new_val_len, &new_val_len)) { + // if (sapi_module.input_filter(arg, var, &val, new_val_len, &new_val_len)) { php_register_variable_safe(var, val, new_val_len, &array); - } + // } } else { SUHOSIN7_G(abort_request) = 1; } @@ -194,8 +195,8 @@ next_cookie: void suhosin_hook_treat_data() { - sapi_register_treat_data(suhosin_treat_data); - + // sapi_register_treat_data(suhosin_treat_data); + if (old_input_filter == NULL) { old_input_filter = sapi_module.input_filter; } -- cgit v1.3