From: Ruediger Pluem Date: Thu, 9 Jul 2009 06:28:54 +0000 (+0000) Subject: * Return APR_EOF if request body is shorter than the length announced by the X-Git-Tag: 2.3.3~453 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=924367c21005fadc8f8a19689c6673bcfd5821dd;p=thirdparty%2Fapache%2Fhttpd.git * Return APR_EOF if request body is shorter than the length announced by the client. PR: 33098 Submitted by: Stefan Fritsch git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@792409 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 93d9f0c1f01..037874a4177 100644 --- a/CHANGES +++ b/CHANGES @@ -11,10 +11,13 @@ Changes with Apache 2.3.3 mod_proxy_ajp: Avoid delivering content from a previous request which failed to send a request body. PR 46949 [Ruediger Pluem] + *) core: Return APR_EOF if request body is shorter than the length announced + by the client. PR 33098 [ Stefan Fritsch ] + *) mod_suexec: correctly set suexec_enabled when httpd is run by a non-root user and may have insufficient permissions. PR 42175 [Jim Radford ] - + *) mod_ssl: Fix SSL_*_DN_UID variables to use the 'userID' attribute type. PR 45107. [Michael Ströder , Peter Sylvester ] diff --git a/modules/http/http_filters.c b/modules/http/http_filters.c index 2d739e297d1..d6529754ae6 100644 --- a/modules/http/http_filters.c +++ b/modules/http/http_filters.c @@ -524,6 +524,11 @@ apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b, if (ctx->state != BODY_NONE) { ctx->remaining -= totalread; + if (ctx->remaining > 0) { + e = APR_BRIGADE_LAST(b); + if (APR_BUCKET_IS_EOS(e)) + return APR_EOF; + } } /* If we have no more bytes remaining on a C-L request,