From: Joe Orton Date: Fri, 4 Oct 2019 09:24:07 +0000 (+0000) Subject: * modules/generators/cgi_common.h (discard_script_output): Simplify X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4a835a774558cdd773c875b82ea019b130aaf92d;p=apache * modules/generators/cgi_common.h (discard_script_output): Simplify slightly and ensure constant rather than unlimited memory consumption when discarding CGI script output (for e.g. a redirect response). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1867970 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/generators/cgi_common.h b/modules/generators/cgi_common.h index 6b24950e89..0ff66f94e3 100644 --- a/modules/generators/cgi_common.h +++ b/modules/generators/cgi_common.h @@ -32,19 +32,15 @@ static void discard_script_output(apr_bucket_brigade *bb) apr_bucket *e; const char *buf; apr_size_t len; - apr_status_t rv; for (e = APR_BRIGADE_FIRST(bb); - e != APR_BRIGADE_SENTINEL(bb); - e = APR_BUCKET_NEXT(e)) + e != APR_BRIGADE_SENTINEL(bb) && !APR_BUCKET_IS_EOS(e); + e = APR_BRIGADE_FIRST(bb)) { - if (APR_BUCKET_IS_EOS(e)) { - break; - } - rv = apr_bucket_read(e, &buf, &len, APR_BLOCK_READ); - if (rv != APR_SUCCESS) { + if (apr_bucket_read(e, &buf, &len, APR_BLOCK_READ)) { break; } + apr_bucket_delete(e); } }