Author: markt
Date: Fri Aug 12 08:29:13 2011
New Revision: 1157008
URL: http://svn.apache.org/viewvc?rev=1157008&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=51324
Improve handling of exceptions when flushing the response buffer to ensure that
the doFlush flag does not get stuck in the enabled state.
Patch by Jeremy Norris.
Modified:
tomcat/tc5.5.x/trunk/STATUS.txt
tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java
tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml
Modified: tomcat/tc5.5.x/trunk/STATUS.txt
URL:
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/STATUS.txt?rev=1157008&r1=1157007&r2=1157008&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/STATUS.txt (original)
+++ tomcat/tc5.5.x/trunk/STATUS.txt Fri Aug 12 08:29:13 2011
@@ -102,14 +102,6 @@ PATCHES PROPOSED TO BACKPORT:
+1: markt
-1:
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=51324
- Improve handling of exceptions when flushing the response buffer to
- ensure that the doFlush flag does not get stuck in the enabled state.
- Patch by Jeremy Norris.
- http://svn.apache.org/viewvc?rev=1133014&view=rev
- +1: kkolinko, markt, kfujino
- -1:
-
* Fix various sendfile issues. CVE-2011-2526
This is a port of r1145380, r1145694 and r1146005
http://people.apache.org/~markt/patches/2011-07-13-cve-2011-2526-tc5.patch
Modified:
tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java
URL:
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java?rev=1157008&r1=1157007&r2=1157008&view=diff
==============================================================================
---
tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java
(original)
+++
tomcat/tc5.5.x/trunk/container/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java
Fri Aug 12 08:29:13 2011
@@ -237,6 +237,7 @@ public class OutputBuffer extends Writer
cb.recycle();
bb.recycle();
closed = false;
+ doFlush = false;
suspended = false;
if (conv!= null) {
@@ -315,19 +316,22 @@ public class OutputBuffer extends Writer
return;
doFlush = true;
- if (initial) {
- // If the buffers are empty, commit the response header
- coyoteResponse.sendHeaders();
- initial = false;
- }
- if (state == CHAR_STATE) {
- cb.flushBuffer();
- bb.flushBuffer();
- state = BYTE_STATE;
- } else if (state == BYTE_STATE) {
- bb.flushBuffer();
+ try {
+ if (initial) {
+ // If the buffers are empty, commit the response header
+ coyoteResponse.sendHeaders();
+ initial = false;
+ }
+ if (state == CHAR_STATE) {
+ cb.flushBuffer();
+ bb.flushBuffer();
+ state = BYTE_STATE;
+ } else if (state == BYTE_STATE) {
+ bb.flushBuffer();
+ }
+ } finally {
+ doFlush = false;
}
- doFlush = false;
if (realFlush) {
coyoteResponse.action(ActionCode.ACTION_CLIENT_FLUSH,
Modified: tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml?rev=1157008&r1=1157007&r2=1157008&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml (original)
+++ tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml Fri Aug 12
08:29:13 2011
@@ -61,6 +61,11 @@
MemoryUserDatabase via JMX. (markt)
</fix>
<fix>
+ <bug>51324</bug>: Improve handling of exceptions when flushing the
+ response buffer to ensure that the doFlush flag does not get stuck in
+ the enabled state. Patch provided by Jeremy Norris. (kkolinko)
+ </fix>
+ <fix>
<bug>51403</bug>: Avoid NullPointerException in JULI FileHandler if
formatter is misconfigured. (kkolinko)
</fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]