diff options
author | Jan Pazdziora <jpazdziora@redhat.com> | 2013-11-19 14:04:29 +0800 |
---|---|---|
committer | Jan Pazdziora <jpazdziora@redhat.com> | 2013-11-19 14:04:29 +0800 |
commit | 08b6c0907f7b75700f5731cde8fef48d9f13b167 (patch) | |
tree | 197c7b20190963d16bdcb525b1f57f6b519a5c3f /mod_intercept_form_submit.c | |
parent | f69d399d15b3a6928e1fee278b45e36a0871f551 (diff) | |
download | mod_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.c | 16 |
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" |