mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-09-29 19:24:29 +03:00
Only reinject stream if data is changed by rsub
This commit is contained in:
@@ -84,7 +84,7 @@ apr_status_t input_filter(ap_filter_t *f, apr_bucket_brigade *bb_out,
|
||||
return APR_EGENERAL;
|
||||
}
|
||||
|
||||
if (chunk && !msr->txcfg->stream_inbody_inspection) {
|
||||
if (chunk && (!msr->txcfg->stream_inbody_inspection || msr->if_stream_changed == 0)) {
|
||||
/* Copy the data we received in the chunk */
|
||||
bucket = apr_bucket_heap_create(chunk->data, chunk->length, NULL,
|
||||
f->r->connection->bucket_alloc);
|
||||
@@ -114,6 +114,9 @@ apr_status_t input_filter(ap_filter_t *f, apr_bucket_brigade *bb_out,
|
||||
}
|
||||
} else if (msr->stream_input_data != NULL) {
|
||||
|
||||
if(msr->if_stream_changed == 1)
|
||||
msr->if_stream_changed = 0;
|
||||
|
||||
bucket = apr_bucket_heap_create(msr->stream_input_data, msr->stream_input_length, NULL,
|
||||
f->r->connection->bucket_alloc);
|
||||
|
||||
@@ -913,7 +916,10 @@ apr_status_t output_filter(ap_filter_t *f, apr_bucket_brigade *bb_in) {
|
||||
* (full-buffering only).
|
||||
*/
|
||||
if ((msr->of_skipping == 0)&&(!msr->of_partial)) {
|
||||
inject_content_to_of_brigade(msr,f);
|
||||
if(msr->of_stream_changed == 1) {
|
||||
inject_content_to_of_brigade(msr,f);
|
||||
msr->of_stream_changed = 0;
|
||||
}
|
||||
prepend_content_to_of_brigade(msr, f);
|
||||
|
||||
/* Inject content into response (append & buffering). */
|
||||
|
Reference in New Issue
Block a user