Author: markt
Date: Thu Aug 25 14:45:13 2011
New Revision: 1161584
URL: http://svn.apache.org/viewvc?rev=1161584&view=rev
Log:
Tweak the message validation.
Body messages don't have terminators
Modified:
tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java
tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java
tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java
tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?rev=1161584&r1=1161583&r2=1161584&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Thu Aug 25
14:45:13 2011
@@ -372,7 +372,7 @@ public class AjpAprProcessor extends Abs
return false;
}
- bodyMessage.getBytes(bodyBytes);
+ bodyMessage.getBodyBytes(bodyBytes);
empty = false;
return true;
}
Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java?rev=1161584&r1=1161583&r2=1161584&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java Thu Aug 25 14:45:13
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/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java?rev=1161584&r1=1161583&r2=1161584&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java Thu Aug 25
14:45:13 2011
@@ -378,7 +378,7 @@ public class AjpNioProcessor extends Abs
return false;
}
- bodyMessage.getBytes(bodyBytes);
+ bodyMessage.getBodyBytes(bodyBytes);
empty = false;
return true;
}
Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1161584&r1=1161583&r2=1161584&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Thu Aug 25
14:45:13 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: [email protected]
For additional commands, e-mail: [email protected]