diff options
author | Jose <jose@zeroc.com> | 2010-02-15 18:29:22 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2010-02-15 18:29:22 +0100 |
commit | 0e20c212d7880d0a6eedb49ca141b40cb73c5dba (patch) | |
tree | f8386de2b20c9e1c7f836684fbe7e338757d5e7d /java/src/IceInternal/BasicStream.java | |
parent | 4668 - Freeze for java initialization (diff) | |
download | ice-0e20c212d7880d0a6eedb49ca141b40cb73c5dba.tar.bz2 ice-0e20c212d7880d0a6eedb49ca141b40cb73c5dba.tar.xz ice-0e20c212d7880d0a6eedb49ca141b40cb73c5dba.zip |
4664 - readString, readBlob in Java & C# don't check the size before allocating memory
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 { // |