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
This commit is contained in:
Amol S. Deshmukh 2005-07-06 22:01:13 +00:00
parent feec0fdaca
commit 88f091b93e
1 changed files with 5 additions and 3 deletions

View File

@ -92,15 +92,17 @@ public class ObjRecord
{ {
subrecords = new ArrayList(); subrecords = new ArrayList();
int pos = offset; 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 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); Record subRecord = SubRecord.createSubRecord(subRecordSid, subRecordSize, data, pos + 4);
subrecords.add(subRecord); subrecords.add(subRecord);
pos += subRecord.getRecordSize(); pos += subRecord.getRecordSize();
} }
} }
public String toString() public String toString()