bug#48068: RecordFormatException: The content of an excel record cannot exceed 8224 bytes
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@899608 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4be190d69d
commit
a52cd3e05a
@ -218,21 +218,21 @@ public final class RecordFactoryInputStream {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// step underlying RecordInputStream to the next record
|
|
||||||
_recStream.nextRecord();
|
|
||||||
|
|
||||||
if (_lastRecordWasEOFLevelZero) {
|
if (_lastRecordWasEOFLevelZero) {
|
||||||
// Potential place for ending the workbook stream
|
// Potential place for ending the workbook stream
|
||||||
// Check that the next record is not BOFRecord(0x0809)
|
// Check that the next record is not BOFRecord(0x0809)
|
||||||
// Normally the input stream contains only zero padding after the last EOFRecord,
|
// Normally the input stream contains only zero padding after the last EOFRecord,
|
||||||
// but bug 46987 suggests that the padding may be garbage.
|
// but bug 46987 and 48068 suggests that the padding may be garbage.
|
||||||
// This code relies on the padding bytes not starting with BOFRecord.sid
|
// This code relies on the padding bytes not starting with BOFRecord.sid
|
||||||
if (_recStream.getSid() != BOFRecord.sid) {
|
if (_recStream.getNextSid() != BOFRecord.sid) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// else - another sheet substream starting here
|
// else - another sheet substream starting here
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// step underlying RecordInputStream to the next record
|
||||||
|
_recStream.nextRecord();
|
||||||
|
|
||||||
r = readNextRecord();
|
r = readNextRecord();
|
||||||
if (r == null) {
|
if (r == null) {
|
||||||
// some record types may get skipped (e.g. DBCellRecord and ContinueRecord)
|
// some record types may get skipped (e.g. DBCellRecord and ContinueRecord)
|
||||||
|
@ -428,4 +428,11 @@ public final class RecordInputStream implements LittleEndianInput {
|
|||||||
// and before the formatting run data)
|
// and before the formatting run data)
|
||||||
return _nextSid == ContinueRecord.sid;
|
return _nextSid == ContinueRecord.sid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@requrn sid of next record. Can be called after hasNextRecord()
|
||||||
|
*/
|
||||||
|
public int getNextSid() {
|
||||||
|
return _nextSid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user