diff options
author | Amol S. Deshmukh <amol@apache.org> | 2005-07-06 22:01:13 +0000 |
---|---|---|
committer | Amol S. Deshmukh <amol@apache.org> | 2005-07-06 22:01:13 +0000 |
commit | 189bf5af7372ce905f566dad603662f5ebab68ea (patch) | |
tree | 3e0158b8ce4626d2b0c7ff0b63df76136182ce16 /src | |
parent | 7c0dd64d28985c40ae064bb7c18348313c8dee65 (diff) | |
download | poi-189bf5af7372ce905f566dad603662f5ebab68ea.tar.gz poi-189bf5af7372ce905f566dad603662f5ebab68ea.zip |
fix for issues 34575 and 35527 { fillFields(..) modified }
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353739 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r-- | src/java/org/apache/poi/hssf/record/ObjRecord.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/java/org/apache/poi/hssf/record/ObjRecord.java b/src/java/org/apache/poi/hssf/record/ObjRecord.java index a2489be362..486288aab5 100644 --- a/src/java/org/apache/poi/hssf/record/ObjRecord.java +++ b/src/java/org/apache/poi/hssf/record/ObjRecord.java @@ -92,15 +92,17 @@ public class ObjRecord { subrecords = new ArrayList(); int pos = offset; - while (pos - offset < size) + while (pos - offset <= size-2) // atleast one "short" must be present { short subRecordSid = LittleEndian.getShort(data, pos); - short subRecordSize = LittleEndian.getShort(data, pos + 2); + short subRecordSize = -1; // set default to "< 0" + if (pos-offset <= size-4) { // see if size info is present, else default to -1 + subRecordSize = LittleEndian.getShort(data, pos + 2); + } Record subRecord = SubRecord.createSubRecord(subRecordSid, subRecordSize, data, pos + 4); subrecords.add(subRecord); pos += subRecord.getRecordSize(); } - } public String toString() |