diff options
Diffstat (limited to 'java/src/IceInternal/BasicStream.java')
-rw-r--r-- | java/src/IceInternal/BasicStream.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/java/src/IceInternal/BasicStream.java b/java/src/IceInternal/BasicStream.java index 9231aa107b7..67c5fefc3f1 100644 --- a/java/src/IceInternal/BasicStream.java +++ b/java/src/IceInternal/BasicStream.java @@ -613,6 +613,10 @@ public class BasicStream public byte[] readBlob(int sz) { + if(_buf.b.remaining() < sz) + { + throw new Ice.UnmarshalOutOfBoundsException(); + } byte[] v = new byte[sz]; try { @@ -1211,6 +1215,15 @@ public class BasicStream } else { + + // + // Check the buffer has enough bytes to read. + // + if(_buf.b.remaining() < len) + { + throw new Ice.UnmarshalOutOfBoundsException(); + } + try { // |