mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
* server/util_filter.c (ap_save_brigade): Handle an ENOTIMPL setaside
function correctly. * modules/generators/mod_cgi.c (cgi_handler): Revert r1.169, unnecessary CGI bucket lifetime kludge. PR: 31247 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105297 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -905,10 +905,7 @@ static int cgi_handler(request_rec *r)
|
|||||||
apr_file_pipe_timeout_set(script_in, 0);
|
apr_file_pipe_timeout_set(script_in, 0);
|
||||||
apr_file_pipe_timeout_set(script_err, 0);
|
apr_file_pipe_timeout_set(script_err, 0);
|
||||||
|
|
||||||
/* if r is a subrequest, ensure that the bucket only references
|
b = cgi_bucket_create(r, script_in, script_err, c->bucket_alloc);
|
||||||
* r->main, since it may last longer than the subreq. */
|
|
||||||
b = cgi_bucket_create(r->main ? r->main : r, script_in, script_err,
|
|
||||||
c->bucket_alloc);
|
|
||||||
#else
|
#else
|
||||||
b = apr_bucket_pipe_create(script_in, c->bucket_alloc);
|
b = apr_bucket_pipe_create(script_in, c->bucket_alloc);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -546,10 +546,21 @@ AP_DECLARE(apr_status_t) ap_save_brigade(ap_filter_t *f,
|
|||||||
e = APR_BUCKET_NEXT(e))
|
e = APR_BUCKET_NEXT(e))
|
||||||
{
|
{
|
||||||
rv = apr_bucket_setaside(e, p);
|
rv = apr_bucket_setaside(e, p);
|
||||||
if (rv != APR_SUCCESS
|
|
||||||
/* ### this ENOTIMPL will go away once we implement setaside
|
/* If the bucket type does not implement setaside, then
|
||||||
### for all bucket types. */
|
* (hopefully) morph it into a bucket type which does, and set
|
||||||
&& rv != APR_ENOTIMPL) {
|
* *that* aside... */
|
||||||
|
if (rv == APR_ENOTIMPL) {
|
||||||
|
const char *s;
|
||||||
|
apr_size_t n;
|
||||||
|
|
||||||
|
rv = apr_bucket_read(e, &s, &n, APR_BLOCK_READ);
|
||||||
|
if (rv == APR_SUCCESS) {
|
||||||
|
rv = apr_bucket_setaside(e, p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rv != APR_SUCCESS) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user