diff options
| author | Stefan Esser | 2014-02-12 13:11:57 +0100 |
|---|---|---|
| committer | Stefan Esser | 2014-02-12 13:11:57 +0100 |
| commit | dbb02a7d8e34dd500ffab4d30e1ae2d8f37dfcd7 (patch) | |
| tree | 7d72f4e675927778892a0fd65a4bfa80e481833d | |
| parent | d0c2cd9dad27515ad7c899e5ccaa54fdac01a15e (diff) | |
We need to support PHP's "new" max_input_vars in our treat_data handler
| -rw-r--r-- | treat_data.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/treat_data.c b/treat_data.c index a7e14ca..13eee0a 100644 --- a/treat_data.c +++ b/treat_data.c | |||
| @@ -38,6 +38,10 @@ SAPI_TREAT_DATA_FUNC(suhosin_treat_data) | |||
| 38 | zval *array_ptr; | 38 | zval *array_ptr; |
| 39 | int free_buffer = 0; | 39 | int free_buffer = 0; |
| 40 | char *strtok_buf = NULL; | 40 | char *strtok_buf = NULL; |
| 41 | |||
| 42 | #if PHP_VERSION_ID => 50311 | ||
| 43 | long count = 0; | ||
| 44 | #endif | ||
| 41 | 45 | ||
| 42 | /* Mark that we were not yet called */ | 46 | /* Mark that we were not yet called */ |
| 43 | SUHOSIN_G(already_scanned) = 0; | 47 | SUHOSIN_G(already_scanned) = 0; |
| @@ -139,6 +143,14 @@ SAPI_TREAT_DATA_FUNC(suhosin_treat_data) | |||
| 139 | while (*var && *var == ' ') var++; | 143 | while (*var && *var == ' ') var++; |
| 140 | 144 | ||
| 141 | val = strchr(var, '='); | 145 | val = strchr(var, '='); |
| 146 | |||
| 147 | #if PHP_VERSION_ID => 50311 | ||
| 148 | if (++count > PG(max_input_vars)) { | ||
| 149 | php_error_docref(NULL TSRMLS_CC, E_WARNING, "Input variables exceeded %ld. To increase the limit change max_input_vars in php.ini.", PG(max_input_vars)); | ||
| 150 | break; | ||
| 151 | } | ||
| 152 | #endif | ||
| 153 | |||
| 142 | if (val) { /* have a value */ | 154 | if (val) { /* have a value */ |
| 143 | int val_len; | 155 | int val_len; |
| 144 | unsigned int new_val_len; | 156 | unsigned int new_val_len; |
