summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKatarina Machalkova <kmachalkova@suse.cz>2010-11-25 14:34:41 +0100
committerKatarina Machalkova <kmachalkova@suse.cz>2010-11-25 14:41:02 +0100
commit5dff000295e8e6806aa15c65b371a901b6cb59db (patch)
tree857fdd85a111cf576dda685b7e75b054662fd4f6
parent95b2a7938d61e8ee03db44fbcae1f1e8667513d8 (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.cxx3
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;
}
}