Преглед на файлове

More on bug #54682 - check for the end offset overflowing too

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1487558 13f79535-47bb-0310-9956-ffa450edef68
tags/3.10-beta1
Nick Burch преди 11 години
родител
ревизия
1a2591a8c1
променени са 1 файла, в които са добавени 5 реда и са изтрити 3 реда
  1. 5
    3
      src/scratchpad/src/org/apache/poi/hwpf/model/UnhandledDataStructure.java

+ 5
- 3
src/scratchpad/src/org/apache/poi/hwpf/model/UnhandledDataStructure.java Целия файл

public UnhandledDataStructure(byte[] buf, int offset, int length) public UnhandledDataStructure(byte[] buf, int offset, int length)
{ {
// Sanity check the size they've asked for // Sanity check the size they've asked for
if (offset + length > buf.length)
int offsetEnd = offset + length;
if (offsetEnd > buf.length || offsetEnd < 0)
{ {
throw new IndexOutOfBoundsException("Buffer Length is " + buf.length + " " + throw new IndexOutOfBoundsException("Buffer Length is " + buf.length + " " +
"but code is tried to read " + length + " from offset " + offset);
"but code is tried to read " + length + " " +
"from offset " + offset + " to " + offsetEnd);
} }
if (offset < 0 || length < 0) if (offset < 0 || length < 0)
{ {
} }
// Save that requested portion of the data // Save that requested portion of the data
_buf = Arrays.copyOfRange(buf, offset, offset + length);
_buf = Arrays.copyOfRange(buf, offset, offsetEnd);
} }


byte[] getBuf() byte[] getBuf()

Loading…
Отказ
Запис