diff options
| author | Ben Fuhrmannek | 2016-02-22 22:02:32 +0100 |
|---|---|---|
| committer | Ben Fuhrmannek | 2016-02-22 22:02:32 +0100 |
| commit | f365d212edbaab4058875fe39623a97befbf98b0 (patch) | |
| tree | 9b791f1984a9e823e688b188d7596e3467930bdc | |
| parent | 86bd1f01211be780307d9269f23314721029fcab (diff) | |
temp. disabled treat_data to simplify things
| -rw-r--r-- | execute.c | 1 | ||||
| -rw-r--r-- | ifilter.c | 17 | ||||
| -rw-r--r-- | php_suhosin7.h | 5 | ||||
| -rw-r--r-- | suhosin7.c | 4 | ||||
| -rw-r--r-- | treat_data.c | 13 |
5 files changed, 22 insertions, 18 deletions
| @@ -364,6 +364,7 @@ static int suhosin_detect_codetype(zend_op_array *op_array) | |||
| 364 | * This function provides a hook for execution */ | 364 | * This function provides a hook for execution */ |
| 365 | ZEND_API static void suhosin_execute_ex(zend_execute_data *execute_data) | 365 | ZEND_API static void suhosin_execute_ex(zend_execute_data *execute_data) |
| 366 | { | 366 | { |
| 367 | // SDEBUG("X------------------------->") | ||
| 367 | // TODO: check execute_data + execute_data->func | 368 | // TODO: check execute_data + execute_data->func |
| 368 | 369 | ||
| 369 | zend_op_array *new_op_array; | 370 | zend_op_array *new_op_array; |
| @@ -295,15 +295,16 @@ unsigned int suhosin_input_filter_wrapper(int arg, char *var, char **val, size_t | |||
| 295 | // zend_bool already_scanned = SUHOSIN7_G(already_scanned); | 295 | // zend_bool already_scanned = SUHOSIN7_G(already_scanned); |
| 296 | // SUHOSIN7_G(already_scanned) = 0; | 296 | // SUHOSIN7_G(already_scanned) = 0; |
| 297 | // SDEBUG("ifilter arg=%d var=%s do_not_scan=%d already_scanned=%d", arg, var, SUHOSIN7_G(do_not_scan), already_scanned); | 297 | // SDEBUG("ifilter arg=%d var=%s do_not_scan=%d already_scanned=%d", arg, var, SUHOSIN7_G(do_not_scan), already_scanned); |
| 298 | SDEBUG("ifilter arg=%d var=%s do_not_scan=%d", arg, var, SUHOSIN7_G(do_not_scan)); | 298 | // SDEBUG("ifilter arg=%d var=%s do_not_scan=%d", arg, var, SUHOSIN7_G(do_not_scan)); |
| 299 | SDEBUG("ifilter arg=%d var=%s", arg, var); | ||
| 299 | 300 | ||
| 300 | if (SUHOSIN7_G(do_not_scan)) { | 301 | // if (SUHOSIN7_G(do_not_scan)) { |
| 301 | SDEBUG("do_not_scan"); | 302 | // SDEBUG("do_not_scan"); |
| 302 | if (new_val_len) { | 303 | // if (new_val_len) { |
| 303 | *new_val_len = val_len; | 304 | // *new_val_len = val_len; |
| 304 | } | 305 | // } |
| 305 | return 1; | 306 | // return 1; |
| 306 | } | 307 | // } |
| 307 | 308 | ||
| 308 | // if (!already_scanned) { | 309 | // if (!already_scanned) { |
| 309 | if (suhosin_input_filter(arg, var, val, val_len, new_val_len)==0) { | 310 | 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) | |||
| 128 | 128 | ||
| 129 | zend_bool simulation; | 129 | zend_bool simulation; |
| 130 | // zend_bool stealth; | 130 | // zend_bool stealth; |
| 131 | zend_bool already_scanned; | 131 | // zend_bool already_scanned; |
| 132 | zend_bool abort_request; | 132 | zend_bool abort_request; |
| 133 | // | 133 | // |
| 134 | 134 | ||
| @@ -247,7 +247,7 @@ ZEND_BEGIN_MODULE_GLOBALS(suhosin7) | |||
| 247 | /* misc */ | 247 | /* misc */ |
| 248 | zend_bool coredump; | 248 | zend_bool coredump; |
| 249 | // zend_bool apc_bug_workaround; | 249 | // zend_bool apc_bug_workaround; |
| 250 | zend_bool do_not_scan; | 250 | // zend_bool do_not_scan; |
| 251 | // | 251 | // |
| 252 | zend_bool server_encode; | 252 | zend_bool server_encode; |
| 253 | zend_bool server_strip; | 253 | zend_bool server_strip; |
| @@ -372,6 +372,7 @@ void suhosin_hook_memory_limit(); | |||
| 372 | void suhosin_hook_treat_data(); | 372 | void suhosin_hook_treat_data(); |
| 373 | void suhosin_hook_execute(); | 373 | void suhosin_hook_execute(); |
| 374 | void suhosin_hook_register_server_variables(); | 374 | void suhosin_hook_register_server_variables(); |
| 375 | // void suhosin_hook_sha256(); | ||
| 375 | 376 | ||
| 376 | static inline void suhosin_bailout() | 377 | static inline void suhosin_bailout() |
| 377 | { | 378 | { |
| @@ -516,7 +516,8 @@ PHP_MINIT_FUNCTION(suhosin7) | |||
| 516 | suhosin_hook_treat_data(); | 516 | suhosin_hook_treat_data(); |
| 517 | suhosin_hook_execute(); | 517 | suhosin_hook_execute(); |
| 518 | suhosin_hook_register_server_variables(); | 518 | suhosin_hook_register_server_variables(); |
| 519 | 519 | // suhosin_hook_sha256(); | |
| 520 | |||
| 520 | return SUCCESS; | 521 | return SUCCESS; |
| 521 | } | 522 | } |
| 522 | /* }}} */ | 523 | /* }}} */ |
| @@ -547,7 +548,6 @@ PHP_RINIT_FUNCTION(suhosin7) | |||
| 547 | PHP_RSHUTDOWN_FUNCTION(suhosin7) | 548 | PHP_RSHUTDOWN_FUNCTION(suhosin7) |
| 548 | { | 549 | { |
| 549 | SDEBUG("(RSHUTDOWN)"); | 550 | SDEBUG("(RSHUTDOWN)"); |
| 550 | |||
| 551 | return SUCCESS; | 551 | return SUCCESS; |
| 552 | } | 552 | } |
| 553 | /* }}} */ | 553 | /* }}} */ |
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) | |||
| 144 | 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)); | 144 | 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)); |
| 145 | break; | 145 | break; |
| 146 | } | 146 | } |
| 147 | SDEBUG("calling input filter from treat_data"); | ||
| 147 | 148 | ||
| 148 | if (val) { /* have a value */ | 149 | if (val) { /* have a value */ |
| 149 | size_t val_len; | 150 | size_t val_len; |
| @@ -154,9 +155,9 @@ SAPI_TREAT_DATA_FUNC(suhosin_treat_data) | |||
| 154 | val_len = php_url_decode(val, strlen(val)); | 155 | val_len = php_url_decode(val, strlen(val)); |
| 155 | val = estrndup(val, val_len); | 156 | val = estrndup(val, val_len); |
| 156 | if (suhosin_input_filter(arg, var, &val, val_len, &new_val_len)) { | 157 | if (suhosin_input_filter(arg, var, &val, val_len, &new_val_len)) { |
| 157 | if (sapi_module.input_filter(arg, var, &val, new_val_len, &new_val_len)) { | 158 | // if (sapi_module.input_filter(arg, var, &val, new_val_len, &new_val_len)) { |
| 158 | php_register_variable_safe(var, val, new_val_len, &array); | 159 | php_register_variable_safe(var, val, new_val_len, &array); |
| 159 | } | 160 | // } |
| 160 | } else { | 161 | } else { |
| 161 | SUHOSIN7_G(abort_request) = 1; | 162 | SUHOSIN7_G(abort_request) = 1; |
| 162 | } | 163 | } |
| @@ -169,9 +170,9 @@ SAPI_TREAT_DATA_FUNC(suhosin_treat_data) | |||
| 169 | val_len = 0; | 170 | val_len = 0; |
| 170 | val = estrndup("", val_len); | 171 | val = estrndup("", val_len); |
| 171 | if (suhosin_input_filter(arg, var, &val, val_len, &new_val_len)) { | 172 | if (suhosin_input_filter(arg, var, &val, val_len, &new_val_len)) { |
| 172 | if (sapi_module.input_filter(arg, var, &val, new_val_len, &new_val_len)) { | 173 | // if (sapi_module.input_filter(arg, var, &val, new_val_len, &new_val_len)) { |
| 173 | php_register_variable_safe(var, val, new_val_len, &array); | 174 | php_register_variable_safe(var, val, new_val_len, &array); |
| 174 | } | 175 | // } |
| 175 | } else { | 176 | } else { |
| 176 | SUHOSIN7_G(abort_request) = 1; | 177 | SUHOSIN7_G(abort_request) = 1; |
| 177 | } | 178 | } |
| @@ -194,8 +195,8 @@ next_cookie: | |||
| 194 | 195 | ||
| 195 | void suhosin_hook_treat_data() | 196 | void suhosin_hook_treat_data() |
| 196 | { | 197 | { |
| 197 | sapi_register_treat_data(suhosin_treat_data); | 198 | // sapi_register_treat_data(suhosin_treat_data); |
| 198 | 199 | ||
| 199 | if (old_input_filter == NULL) { | 200 | if (old_input_filter == NULL) { |
| 200 | old_input_filter = sapi_module.input_filter; | 201 | old_input_filter = sapi_module.input_filter; |
| 201 | } | 202 | } |
