Author: markt Date: Thu Aug 25 14:46:14 2011 New Revision: 1161585 URL: http://svn.apache.org/viewvc?rev=1161585&view=rev Log: Tweak the message validation. Body messages don't have terminators
Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Aug 25 14:46:14 2011 @@ -1 +1 @@ -/tomcat/trunk:1156171,1156276,1156304,1156530,1156602,1157015,1157018,1157151,1157198,1157204,1157810,1157832,1157834,1157847,1157908,1157939,1158155,1158160,1158176,1158195,1158198-1158199,1158227,1158331,1158334-1158335,1160347,1160592,1160611,1160619,1160626,1160639,1160652,1160720-1160721,1160772,1160774,1160776,1161303,1161310,1161322,1161339,1161486,1161540,1161549 +/tomcat/trunk:1156171,1156276,1156304,1156530,1156602,1157015,1157018,1157151,1157198,1157204,1157810,1157832,1157834,1157847,1157908,1157939,1158155,1158160,1158176,1158195,1158198-1158199,1158227,1158331,1158334-1158335,1160347,1160592,1160611,1160619,1160626,1160639,1160652,1160720-1160721,1160772,1160774,1160776,1161303,1161310,1161322,1161339,1161486,1161540,1161549,1161584 Modified: tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?rev=1161585&r1=1161584&r2=1161585&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Thu Aug 25 14:46:14 2011 @@ -372,7 +372,7 @@ public class AjpAprProcessor extends Abs return false; } - bodyMessage.getBytes(bodyBytes); + bodyMessage.getBodyBytes(bodyBytes); empty = false; return true; } Modified: tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java?rev=1161585&r1=1161584&r2=1161585&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java Thu Aug 25 14:46:14 2011 @@ -312,16 +312,30 @@ public class AjpMessage { public void getBytes(MessageBytes mb) { + doGetBytes(mb, true); + } + + public void getBodyBytes(MessageBytes mb) { + doGetBytes(mb, false); + } + + private void doGetBytes(MessageBytes mb, boolean terminated) { int length = getInt(); if ((length == 0xFFFF) || (length == -1)) { mb.recycle(); return; } - validatePos(pos + length + 1); + if (terminated) { + validatePos(pos + length + 1); + } else { + validatePos(pos + length); + } mb.setBytes(buf, pos, length); mb.getCharChunk().recycle(); // not valid anymore pos += length; - pos++; // Skip the terminating \0 + if (terminated) { + pos++; // Skip the terminating \0 + } } Modified: tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java?rev=1161585&r1=1161584&r2=1161585&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java Thu Aug 25 14:46:14 2011 @@ -378,7 +378,7 @@ public class AjpNioProcessor extends Abs return false; } - bodyMessage.getBytes(bodyBytes); + bodyMessage.getBodyBytes(bodyBytes); empty = false; return true; } Modified: tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1161585&r1=1161584&r2=1161585&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Thu Aug 25 14:46:14 2011 @@ -335,7 +335,7 @@ public class AjpProcessor extends Abstra return false; } - bodyMessage.getBytes(bodyBytes); + bodyMessage.getBodyBytes(bodyBytes); empty = false; return true; } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org