diff options
author | Katarina Machalkova <kmachalkova@suse.cz> | 2010-11-25 14:34:41 +0100 |
---|---|---|
committer | Katarina Machalkova <kmachalkova@suse.cz> | 2010-11-25 14:41:02 +0100 |
commit | 5dff000295e8e6806aa15c65b371a901b6cb59db (patch) | |
tree | 857fdd85a111cf576dda685b7e75b054662fd4f6 | |
parent | 95b2a7938d61e8ee03db44fbcae1f1e8667513d8 (diff) |
Fixed crash in xls export caused by off-by-one iterator
(this is for bnc#653533 and fdo#31141)
-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 fc6c3b0ad101..74284b84086a 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; } } |