summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/BasicStream.java
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2010-02-15 18:29:22 +0100
committerJose <jose@zeroc.com>2010-02-15 18:29:22 +0100
commit0e20c212d7880d0a6eedb49ca141b40cb73c5dba (patch)
treef8386de2b20c9e1c7f836684fbe7e338757d5e7d /java/src/IceInternal/BasicStream.java
parent4668 - Freeze for java initialization (diff)
downloadice-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.java13
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
{
//