diff options
| -rw-r--r-- | ext/standard/basic_functions.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index f4ad543262..c420805e27 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -6259,6 +6259,19 @@ static int copy_request_variable(void *pDest, int num_args, va_list args, zend_h ) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Attempted super-global (%s) variable overwrite.", hash_key->arKey); return 0; + } else if (*hash_key->arKey == 'H' && + ( + !strcmp(hash_key->arKey, "HTTP_POST_VARS") || + !strcmp(hash_key->arKey, "HTTP_GET_VARS") || + !strcmp(hash_key->arKey, "HTTP_COOKIE_VARS") || + !strcmp(hash_key->arKey, "HTTP_ENV_VARS") || + !strcmp(hash_key->arKey, "HTTP_SERVER_VARS") || + !strcmp(hash_key->arKey, "HTTP_RAW_POST_DATA") || + !strcmp(hash_key->arKey, "HTTP_POST_FILES") + ) + ) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Attempted long input array (%s) overwrite.", hash_key->arKey); + return 0; } } |
