]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
prevent zero-length-content brigades from entering the filter chain
authorGreg Stein <gstein@apache.org>
Wed, 16 Aug 2000 21:29:34 +0000 (21:29 +0000)
committerGreg Stein <gstein@apache.org>
Wed, 16 Aug 2000 21:29:34 +0000 (21:29 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86088 13f79535-47bb-0310-9956-ffa450edef68

modules/http/http_protocol.c

index ac1e5e68cee3006e4b4105aa681f7198e17fb583..7e6e42205131d45928a0233942fdffbf10a16b5d 100644 (file)
@@ -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;
 }