summaryrefslogtreecommitdiff
path: root/sc
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 16:27:10 +0100
commitc9b21c9580204dc3b5541900f613dc13be1ae5f9 (patch)
tree7184a5e9de1e68377f3292f515553f0b8da1e90c /sc
parent5d8e16bda040c8bc64d1619d034e5c49217fbf03 (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.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 df1273fa2..7a636df84 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;
}
}