diff --git a/utils/src/com/cloud/utils/nio/Link.java b/utils/src/com/cloud/utils/nio/Link.java index 1c33fc5b1f2..4cf0a6a01b8 100755 --- a/utils/src/com/cloud/utils/nio/Link.java +++ b/utils/src/com/cloud/utils/nio/Link.java @@ -162,6 +162,10 @@ public class Link { if (s_logger.isTraceEnabled()) { s_logger.trace("Packet length is " + readSize); } + + if (readSize > 65535) { + throw new IOException("Packet is too big! Discard it. Size: " + readSize); + } _readBuffer.clear(); _readSize = false; @@ -258,6 +262,10 @@ public class Link { int remaining = data[0].getInt() + 4; data[0].reset(); + if (remaining > 65535) { + throw new IOException("Fail to send a too big packet! Size: " + remaining); + } + while (remaining > 0) { if (s_logger.isTraceEnabled()) { s_logger.trace("Writing " + remaining);