summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Pazdziora <jpazdziora@redhat.com>2013-11-19 14:04:29 +0800
committerJan Pazdziora <jpazdziora@redhat.com>2013-11-19 14:04:29 +0800
commit08b6c0907f7b75700f5731cde8fef48d9f13b167 (patch)
tree197c7b20190963d16bdcb525b1f57f6b519a5c3f
parentf69d399d15b3a6928e1fee278b45e36a0871f551 (diff)
downloadmod_intercept_form_submit-08b6c0907f7b75700f5731cde8fef48d9f13b167.tar.gz
mod_intercept_form_submit-08b6c0907f7b75700f5731cde8fef48d9f13b167.tar.xz
mod_intercept_form_submit-08b6c0907f7b75700f5731cde8fef48d9f13b167.zip
Do APR_BRIGADE_CONCAT into the cached brigade right after reading, it will ensure we will only have one brigade to work with when we attempt to clear the password.
-rw-r--r--mod_intercept_form_submit.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/mod_intercept_form_submit.c b/mod_intercept_form_submit.c
index 542cc35..35d397b 100644
--- a/mod_intercept_form_submit.c
+++ b/mod_intercept_form_submit.c
@@ -244,19 +244,16 @@ void intercept_form_submit_filter_prefetch(request_rec * r, ifs_config * config,
char * fragment = NULL;
int fragment_length = 0;
- apr_bucket_brigade * bb = NULL;
+ apr_bucket_brigade * bb = apr_brigade_create(f->c->pool, f->c->bucket_alloc);
int fetch_more = 1;
while (fetch_more) {
- if (bb)
- APR_BRIGADE_CONCAT(ctx->cached_brigade, bb);
- else
- bb = apr_brigade_create(f->c->pool, f->c->bucket_alloc);
ctx->cached_ret = ap_get_brigade(f->next, bb, AP_MODE_READBYTES, APR_BLOCK_READ, HUGE_STRING_LEN);
if (ctx->cached_ret != APR_SUCCESS)
break;
- apr_bucket * b;
- for (b = APR_BRIGADE_FIRST(bb); b != APR_BRIGADE_SENTINEL(bb); b = APR_BUCKET_NEXT(b)) {
+ apr_bucket * b = APR_BRIGADE_FIRST(bb);;
+ APR_BRIGADE_CONCAT(ctx->cached_brigade, bb);
+ for (; b != APR_BRIGADE_SENTINEL(ctx->cached_brigade); b = APR_BUCKET_NEXT(b)) {
if (! fetch_more)
break;
if (APR_BUCKET_IS_EOS(b)) {
@@ -320,11 +317,6 @@ void intercept_form_submit_filter_prefetch(request_rec * r, ifs_config * config,
}
if (fragment)
free(fragment);
-
- if (bb) {
- APR_BRIGADE_CONCAT(ctx->cached_brigade, bb);
- apr_brigade_cleanup(bb);
- }
}
#define _INTERCEPT_CONTENT_TYPE "application/x-www-form-urlencoded"