Author: markt
Date: Mon Feb 20 22:03:18 2012
New Revision: 1291479

URL: http://svn.apache.org/viewvc?rev=1291479&view=rev
Log:
Process mask as unsigned int.
Based on ideas in a larger patch by Petr Praus, Jonathan Drake & Slávka

Modified:
    tomcat/trunk/java/org/apache/catalina/websocket/WsInputStream.java

Modified: tomcat/trunk/java/org/apache/catalina/websocket/WsInputStream.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/websocket/WsInputStream.java?rev=1291479&r1=1291478&r2=1291479&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/websocket/WsInputStream.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/websocket/WsInputStream.java Mon Feb 
20 22:03:18 2012
@@ -26,7 +26,7 @@ public class WsInputStream extends java.
     private UpgradeProcessor<?> processor;
     private WsFrameHeader wsFrameHeader;
     private long payloadLength = -1;
-    private byte[] mask = new byte[4];
+    private int[] mask = new int[4];
 
 
     private long remaining;
@@ -70,7 +70,9 @@ public class WsInputStream extends java.
         }
         remaining = payloadLength;
 
-        processor.read(mask);
+        for (int j = 0; j < mask.length; j++) {
+            mask[j] = processor.read() & 0xFF;
+        }
     }
 
     public WsFrameHeader getFrameHeader() {
@@ -100,6 +102,9 @@ public class WsInputStream extends java.
         read++;
 
         int masked = processor.read();
+        if(masked == -1) {
+            return -1;
+        }
         return masked ^ mask[(int) ((read - 1) % 4)];
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to