re PR libgcj/24461 (array access in either GZIPInputStream, Inflater, natInflate...
authorTom Tromey <tromey@redhat.com>
Thu, 9 Mar 2006 20:21:58 +0000 (20:21 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Thu, 9 Mar 2006 20:21:58 +0000 (20:21 +0000)
PR libgcj/24461:
* java/util/zip/InflaterInputStream.java (fill): Throw exception
if stream is truncated.

From-SVN: r111870

libjava/ChangeLog
libjava/java/util/zip/InflaterInputStream.java

index 64df6b69ba7c32fc12428d798d88051a731d54f2..bde6b45470ee89746d989b6aedfabb62b2f80db7 100644 (file)
@@ -1,3 +1,9 @@
+2006-03-09  Tom Tromey  <tromey@redhat.com>
+
+       PR libgcj/24461:
+       * java/util/zip/InflaterInputStream.java (fill): Throw exception
+       if stream is truncated.
+
 2006-03-09  Tom Tromey  <tromey@redhat.com>
 
        * win32.cc (_Jv_platform_nanotime): New function.
index 69b3ecdfc18eed6b3fdf34c53ff26492df7cebac..11b06d24a28a41e0d564fc544295128325b1d2eb 100644 (file)
@@ -1,5 +1,5 @@
 /* InflaterInputStream.java - Input stream filter for decompressing
-   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -153,8 +153,10 @@ public class InflaterInputStream extends FilterInputStream
     
     len = in.read(buf, 0, buf.length);
 
-    if (len >= 0)
-      inf.setInput(buf, 0, len);
+    if (len < 0)
+      throw new ZipException("Deflated stream ends early.");
+    
+    inf.setInput(buf, 0, len);
   }
 
   /**