Author: markt
Date: Mon Mar 4 00:56:09 2013
New Revision: 1452162
URL: http://svn.apache.org/r1452162
Log:
Add final zero padding test
Associated fix to my tweaks to Harmony's decoder
Modified:
tomcat/trunk/java/org/apache/tomcat/util/buf/Utf8Decoder.java
tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8Extended.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/Utf8Decoder.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/Utf8Decoder.java?rev=1452162&r1=1452161&r2=1452162&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/buf/Utf8Decoder.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/buf/Utf8Decoder.java Mon Mar 4
00:56:09 2013
@@ -188,11 +188,11 @@ public class Utf8Decoder extends Charset
}
}
if (jchar == 0x70 && inIndexLimit > inIndex + 1) {
- if ((bArr[inIndex + 1] & 0x7F) < 0x10) {
+ if ((bArr[inIndex + 1] & 0x70) == 0) {
// 11110000 1000zzzz 1oyyyyyy 1oxxxxxx
// should have been
// 111ozzzz 1oyyyyyy 1oxxxxxx
- return CoderResult.malformedForLength(4);
+ return CoderResult.malformedForLength(1);
}
}
break;
Modified: tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8Extended.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8Extended.java?rev=1452162&r1=1452161&r2=1452162&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8Extended.java
(original)
+++ tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8Extended.java Mon Mar
4 00:56:09 2013
@@ -83,6 +83,12 @@ public class TestUtf8Extended {
new int[] {0xE0, 0x80, 0xC1},
1,
"\uFFFD\uFFFD\uFFFD").setSkipErrorForJvm(true));
+ // JVM decoder does not report error until all 4 bytes are available
+ testCases.add(new Utf8TestCase(
+ "Valid sequence padded from one byte to four",
+ new int[] {0xF0, 0x80, 0x80, 0xC1},
+ 1,
+ "\uFFFD\uFFFD\uFFFD\uFFFD").setSkipErrorForJvm(true));
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]