RFR: 8245036: DataInputStream.readFully(byte[], int, int) does not throw expected IndexOutOfBoundsExceptions

Raffaello Giulietti raffaello.giulietti at gmail.com
Tue Jul 28 14:04:20 UTC 2020


Hello,

here's a very simple patch to address issue 8245036.
HTH


Greetings
Raffaello

----

# HG changeset patch
# User lello
# Date 1595944637 -7200
#      Tue Jul 28 15:57:17 2020 +0200
# Node ID 1d66b831e5e2085fca5c3f71ca958c482d4aebd7
# Parent  89fe9e02a522b57c356f0dd5279085a075c2945b
Patch to fix JDK-8245036
8245036: DataInputStream.readFully(byte[], int, int) does not throw 
expected IndexOutOfBoundsExceptions
Reviewed-by: TBD
Contributed-by: Raffaello Giulietti <raffaello.giulietti at gmail.com>

diff --git a/src/java.base/share/classes/java/io/DataInputStream.java 
b/src/java.base/share/classes/java/io/DataInputStream.java
--- a/src/java.base/share/classes/java/io/DataInputStream.java
+++ b/src/java.base/share/classes/java/io/DataInputStream.java
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1994, 2019, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1994, 2020, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@

  package java.io;

+import java.util.Objects;
+
  /**
   * A data input stream lets an application read primitive Java data
   * types from an underlying input stream in a machine-independent
@@ -192,8 +194,7 @@
       * @see        java.io.FilterInputStream#in
       */
      public final void readFully(byte b[], int off, int len) throws 
IOException {
-        if (len < 0)
-            throw new IndexOutOfBoundsException();
+        Objects.checkFromIndexSize(off, len, b.length);
          int n = 0;
          while (n < len) {
              int count = in.read(b, off + n, len - n);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: JDK-8245036.patch
Type: text/x-patch
Size: 1596 bytes
Desc: not available
URL: <https://mail.openjdk.java.net/pipermail/core-libs-dev/attachments/20200728/8491fd88/JDK-8245036-0001.patch>


More information about the core-libs-dev mailing list