summaryrefslogtreecommitdiffstats
path: root/mod_intercept_form_submit.c
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 /mod_intercept_form_submit.c
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.
Diffstat (limited to 'mod_intercept_form_submit.c')
-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"