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;
|
||||
}
|
||||
|
||||
// step underlying RecordInputStream to the next record
|
||||
_recStream.nextRecord();
|
||||
|
||||
if (_lastRecordWasEOFLevelZero) {
|
||||
// Potential place for ending the workbook stream
|
||||
// Check that the next record is not BOFRecord(0x0809)
|
||||
// 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
|
||||
if (_recStream.getSid() != BOFRecord.sid) {
|
||||
if (_recStream.getNextSid() != BOFRecord.sid) {
|
||||
return null;
|
||||
}
|
||||
// else - another sheet substream starting here
|
||||
}
|
||||
|
||||
// step underlying RecordInputStream to the next record
|
||||
_recStream.nextRecord();
|
||||
|
||||
r = readNextRecord();
|
||||
if (r == null) {
|
||||
// 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)
|
||||
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