summaryrefslogtreecommitdiffstats
path: root/nss_engine_kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'nss_engine_kernel.c')
-rw-r--r--nss_engine_kernel.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/nss_engine_kernel.c b/nss_engine_kernel.c
index 337ca67..721eedb 100644
--- a/nss_engine_kernel.c
+++ b/nss_engine_kernel.c
@@ -351,9 +351,18 @@ int nss_hook_Access(request_rec *r)
&& strcmp(apr_table_get(r->headers_in, "content-length"), "0")))
&& !r->expecting_100) {
int rv;
+ apr_size_t rsize;
- /* Fill the I/O buffer with the request body if possible. */
- rv = nss_io_buffer_fill(r);
+ rsize = dc->nRenegBufferSize == UNSET ? DEFAULT_RENEG_BUFFER_SIZE :
+ dc->nRenegBufferSize;
+
+ if (rsize > 0) {
+ /* Fill the I/O buffer with the request body if possible. */
+ rv = nss_io_buffer_fill(r, rsize);
+ } else {
+ /* If the reneg buffer size is set to zero, just fail. */
+ rv = HTTP_REQUEST_ENTITY_TOO_LARGE;
+ }
if (rv) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,