You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/07/05 20:37:01 UTC

svn commit: r1500093 - in /tomcat/trunk/java/org/apache/tomcat/websocket: AsyncChannelWrapperSecure.java LocalStrings.properties

Author: markt
Date: Fri Jul  5 18:37:01 2013
New Revision: 1500093

URL: http://svn.apache.org/r1500093
Log:
Buffer overflow is fatal on read

Modified:
    tomcat/trunk/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java
    tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties

Modified: tomcat/trunk/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java?rev=1500093&r1=1500092&r2=1500093&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java Fri Jul  5 18:37:01 2013
@@ -277,9 +277,9 @@ public class AsyncChannelWrapperSecure i
                         read += r.bytesProduced();
                         Status s = r.getStatus();
 
-                        if (s == Status.OK || s == Status.BUFFER_OVERFLOW) {
+                        if (s == Status.OK) {
                             // Bytes available for reading and there may be
-                            // sufficientNeed data in the socketReadBuffer to
+                            // sufficient data in the socketReadBuffer to
                             // support further reads without reading from the
                             // socket
                         } else if (s == Status.BUFFER_UNDERFLOW) {
@@ -291,6 +291,13 @@ public class AsyncChannelWrapperSecure i
                             }
                             // else return the data we have and deal with the
                             // partial data on the next read
+                        } else if (s == Status.BUFFER_OVERFLOW) {
+                            // Not enough space in the destination buffer to
+                            // store all of the data
+                            throw new IOException(sm.getString(
+                                    "asyncChannelWrapperSecure.readOverflow",
+                                    Integer.valueOf(dest.limit()),
+                                    Integer.valueOf(dest.position())));
                         } else {
                             // Status.CLOSED - unexpected
                             throw new IllegalStateException(sm.getString(

Modified: tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties?rev=1500093&r1=1500092&r2=1500093&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties Fri Jul  5 18:37:01 2013
@@ -17,6 +17,7 @@ asyncChannelWrapperSecure.closeFail=Fail
 asyncChannelWrapperSecure.concurrentRead=Concurrent read operations are not permitted
 asyncChannelWrapperSecure.concurrentWrite=Concurrent write operations are not permitted
 asyncChannelWrapperSecure.eof=Unexpected end of stream
+asyncChannelWrapperSecure.readOverflow=Unable to complete read due to destination buffer overflow. Destination is [{0}] bytes in size and currently contains [{1}] bytes.
 asyncChannelWrapperSecure.statusUnwrap=Unexpected Status of SSLEngineResult after an unwrap() operation
 asyncChannelWrapperSecure.statusWrap=Unexpected Status of SSLEngineResult after a wrap() operation
 asyncChannelWrapperSecure.tooBig=The result [{0}] is too big to be expressed as an Integer



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org