summaryrefslogtreecommitdiff
path: root/treat_data.c
diff options
context:
space:
mode:
Diffstat (limited to 'treat_data.c')
-rw-r--r--treat_data.c12
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;