Changed RfbProto to use the same encoding type check as the vnc viewer, meaning that cursor position updates won't be subject to the bounds check and possibly causing an exception.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2537 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/rfbplayer/RfbProto.java b/java/src/com/tightvnc/rfbplayer/RfbProto.java
index e776ef6..952dc8d 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbProto.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbProto.java
@@ -50,6 +50,8 @@
0xFFFFFF18, EncodingLastRect = 0xFFFFFF20, EncodingNewFBSize =
0xFFFFFF21;
+ final static int MaxNormalEncoding = 7;
+
final int HextileRaw = (1 << 0);
final int HextileBackgroundSpecified = (1 << 1);
final int HextileForegroundSpecified = (1 << 2);
@@ -214,8 +216,7 @@
updateRectH = is.readUnsignedShort();
updateRectEncoding = is.readInt();
- if ((updateRectEncoding == EncodingLastRect) ||
- (updateRectEncoding == EncodingNewFBSize))
+ if (updateRectEncoding < 0 || updateRectEncoding > MaxNormalEncoding)
return;
if ((updateRectX + updateRectW > framebufferWidth) ||