From: Greg Stein Date: Wed, 16 Aug 2000 21:29:34 +0000 (+0000) Subject: prevent zero-length-content brigades from entering the filter chain X-Git-Tag: APACHE_2_0_ALPHA_6~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8c30c026e6f5ddc364e3517d3bce96f430e6517e;p=thirdparty%2Fapache%2Fhttpd.git prevent zero-length-content brigades from entering the filter chain git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86088 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/http/http_protocol.c b/modules/http/http_protocol.c index ac1e5e68cee..7e6e4220513 100644 --- a/modules/http/http_protocol.c +++ b/modules/http/http_protocol.c @@ -2575,6 +2575,8 @@ API_EXPORT(int) ap_rputs(const char *str, request_rec *r) if (r->connection->aborted) return EOF; + if (*str == '\0') + return 0; bb = ap_brigade_create(r->pool); ap_brigade_append_buckets(bb, @@ -2591,6 +2593,8 @@ API_EXPORT(int) ap_rwrite(const void *buf, int nbyte, request_rec *r) if (r->connection->aborted) return EOF; + if (nbyte == 0) + return 0; bb = ap_brigade_create(r->pool); ap_brigade_append_buckets(bb, ap_bucket_transient_create(buf, nbyte, &written)); @@ -2608,7 +2612,8 @@ API_EXPORT(int) ap_vrprintf(request_rec *r, const char *fmt, va_list va) bb = ap_brigade_create(r->pool); written = ap_brigade_vprintf(bb, fmt, va); - ap_pass_brigade(r->filters, bb); + if (written != 0) + ap_pass_brigade(r->filters, bb); return written; } @@ -2642,7 +2647,8 @@ API_EXPORT_NONSTD(int) ap_rvputs(request_rec *r, ...) va_start(va, r); written = ap_brigade_vputstrs(bb, va); va_end(va); - ap_pass_brigade(r->filters, bb); + if (written != 0) + ap_pass_brigade(r->filters, bb); return written; }