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;