aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAmol S. Deshmukh <amol@apache.org>2005-07-06 22:01:13 +0000
committerAmol S. Deshmukh <amol@apache.org>2005-07-06 22:01:13 +0000
commit189bf5af7372ce905f566dad603662f5ebab68ea (patch)
tree3e0158b8ce4626d2b0c7ff0b63df76136182ce16 /src
parent7c0dd64d28985c40ae064bb7c18348313c8dee65 (diff)
downloadpoi-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.java8
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()