Author: markt Date: Mon Jul 11 22:27:06 2011 New Revision: 1145383 URL: http://svn.apache.org/viewvc?rev=1145383&view=rev Log: Protect against infinite loops in the HTTP NIO connector if sendfile is configured to send more data than is available in the file. (markt)
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1145383&r1=1145382&r2=1145383&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Mon Jul 11 22:27:06 2011 @@ -1240,6 +1240,13 @@ public class NioEndpoint extends Abstrac sd.pos += written; sd.length -= written; attachment.access(); + } else { + // Unusual not to be unable to transfer any bytes + // Check the length was set correctly + if (sd.fchannel.size() <= sd.pos) { + throw new IOException("Sendfile configured to " + + "send more data than was available"); + } } } if ( sd.length <= 0 && sc.getOutboundRemaining()<=0) { Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1145383&r1=1145382&r2=1145383&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Mon Jul 11 22:27:06 2011 @@ -120,6 +120,10 @@ Add missing thread name in RequestProcessor when Servlet 3 Async is used. Fixes null thread name in access log and JMX MBean. (rjung) </fix> + <fix> + Protect against infinite loops in the HTTP NIO connector if sendfile is + configured to send more data than is available in the file. (markt) + </fix> </changelog> </subsection> <subsection name="Cluster"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org