From 4b9d80ed8c2d26ceccfbbb269eb8c35d1358582a Mon Sep 17 00:00:00 2001 From: Jeff Trawick Date: Fri, 29 Dec 2000 13:56:30 +0000 Subject: [PATCH] ap_save_brigade() can fail, so report what happened via an apr_status_t return code. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87548 13f79535-47bb-0310-9956-ffa450edef68 --- include/util_filter.h | 6 +++--- server/util_filter.c | 11 ++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/include/util_filter.h b/include/util_filter.h index bc662a43c7..cfd82ce50b 100644 --- a/include/util_filter.h +++ b/include/util_filter.h @@ -399,10 +399,10 @@ AP_DECLARE(void) ap_remove_output_filter(ap_filter_t *f); * new bucket brigade is returned in this location. * @param b The bucket brigade to save aside. This brigade is always empty * on return - * @deffunc void ap_save_brigade(ap_filter_t *f, ap_bucket_brigade **save_to, ap_bucket_brigade **b) + * @deffunc apr_status_t ap_save_brigade(ap_filter_t *f, ap_bucket_brigade **save_to, ap_bucket_brigade **b) */ -AP_DECLARE(void) ap_save_brigade(ap_filter_t *f, ap_bucket_brigade **save_to, - ap_bucket_brigade **b); +AP_DECLARE(apr_status_t) ap_save_brigade(ap_filter_t *f, ap_bucket_brigade **save_to, + ap_bucket_brigade **b); #ifdef __cplusplus } diff --git a/server/util_filter.c b/server/util_filter.c index 06621e3348..e676e88a56 100644 --- a/server/util_filter.c +++ b/server/util_filter.c @@ -242,11 +242,12 @@ AP_DECLARE(apr_status_t) ap_pass_brigade(ap_filter_t *next, ap_bucket_brigade *b return AP_NOBODY_WROTE; } -AP_DECLARE(void) ap_save_brigade(ap_filter_t *f, ap_bucket_brigade **saveto, - ap_bucket_brigade **b) +AP_DECLARE(apr_status_t) ap_save_brigade(ap_filter_t *f, ap_bucket_brigade **saveto, + ap_bucket_brigade **b) { ap_bucket *e; apr_pool_t *p = f->r ? f->r->pool : f->c->pool; + apr_status_t rv; /* If have never stored any data in the filter, then we had better * create an empty bucket brigade so that we can concat. @@ -256,7 +257,11 @@ AP_DECLARE(void) ap_save_brigade(ap_filter_t *f, ap_bucket_brigade **saveto, } AP_RING_FOREACH(e, &(*b)->list, ap_bucket, link) { - ap_bucket_setaside(e); + rv = ap_bucket_setaside(e); + if (rv != APR_SUCCESS && rv != APR_ENOTIMPL) { + return rv; + } } AP_BRIGADE_CONCAT(*saveto, *b); + return APR_SUCCESS; } -- 2.40.0