You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apreq-cvs@httpd.apache.org by jo...@apache.org on 2005/01/08 19:56:33 UTC

svn commit: r124666 - /httpd/apreq/trunk/env/mod_apreq.c

Author: joes
Date: Sat Jan  8 10:56:32 2005
New Revision: 124666

URL: http://svn.apache.org/viewcvs?view=rev&rev=124666
Log:
Must check the return value of apreq_brigade_concat
to avoid a RAM-consuming infinite loop.  A bad 
APREQ_TempDir setting can cause this situation.

Submitted by: Max Kellermann
Reviewed by: joes

Modified:
   httpd/apreq/trunk/env/mod_apreq.c

Modified: httpd/apreq/trunk/env/mod_apreq.c
Url: http://svn.apache.org/viewcvs/httpd/apreq/trunk/env/mod_apreq.c?view=diff&rev=124666&p1=httpd/apreq/trunk/env/mod_apreq.c&r1=124665&p2=httpd/apreq/trunk/env/mod_apreq.c&r2=124666
==============================================================================
--- httpd/apreq/trunk/env/mod_apreq.c	(original)
+++ httpd/apreq/trunk/env/mod_apreq.c	Sat Jan  8 10:56:32 2005
@@ -169,7 +169,7 @@
 
 
 #define APREQ_MODULE_NAME               "APACHE2"
-#define APREQ_MODULE_MAGIC_NUMBER       20041130
+#define APREQ_MODULE_MAGIC_NUMBER       20050105
 
 static void apache2_log(const char *file, int line, int level, 
                         apr_status_t status, void *env, const char *fmt,
@@ -665,7 +665,13 @@
 
             apr_brigade_length(bb, 1, &len);
             total_read += len;
-            apreq_brigade_concat(r, ctx->spool, bb);
+
+            rv = apreq_brigade_concat(r, ctx->spool, bb);
+            if (rv != APR_SUCCESS && rv != APR_EOF) {
+                apreq_log(APREQ_ERROR rv, r,
+                          "apreq_brigade_concat failed; APREQ_TempDir problem?");
+                return rv;
+            }
         }
 
         ctx->bytes_read += total_read;