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
commit57b117c6408d93af82564b99ed56b68593cadaac (patch)
tree82e9b01d5c7190562ecb41d9c9c66f1de735a719 /sc
parentc41250f509c7178c937a2a05a6eb5f907ecf79c4 (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 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;
}
}