diff options
author | Katarina Machalkova <kmachalkova@suse.cz> | 2010-11-25 14:34:41 +0100 |
---|---|---|
committer | Katarina Machalkova <kmachalkova@suse.cz> | 2010-11-25 16:27:10 +0100 |
commit | 57b117c6408d93af82564b99ed56b68593cadaac (patch) | |
tree | 82e9b01d5c7190562ecb41d9c9c66f1de735a719 /sc | |
parent | c41250f509c7178c937a2a05a6eb5f907ecf79c4 (diff) |
Fixed crash in xls export caused by off-by-one iterator
(this is for bnc#653533 and fdo#31141)
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/filter/excel/xetable.cxx | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx index 05dbb579f385..dbc11eefc335 100644 --- a/sc/source/filter/excel/xetable.cxx +++ b/sc/source/filter/excel/xetable.cxx @@ -2105,7 +2105,6 @@ void XclExpRowBuffer::Save( XclExpStream& rStrm ) for (itr = itrBeg; itr != itrEnd; ++itr) { // find end of row block - ++itrBlkEnd; while( (itrBlkEnd != itrEnd) && (itrBlkEnd->second->GetXclRow() - nStartXclRow < EXC_ROW_ROWBLOCKSIZE) ) ++itrBlkEnd; @@ -2118,7 +2117,7 @@ void XclExpRowBuffer::Save( XclExpStream& rStrm ) for( itRow = itrBlkStart; itRow != itrBlkEnd; ++itRow ) itRow->second->WriteCellList( rStrm ); - itrBlkStart = itrBlkEnd; + itrBlkStart = (itrBlkEnd == itrEnd) ? itrBlkEnd : itrBlkEnd++; nStartXclRow += EXC_ROW_ROWBLOCKSIZE; } } |