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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to