From c9b21c9580204dc3b5541900f613dc13be1ae5f9 Mon Sep 17 00:00:00 2001 From: Katarina Machalkova Date: Thu, 25 Nov 2010 14:34:41 +0100 Subject: Fixed crash in xls export caused by off-by-one iterator (this is for bnc#653533 and fdo#31141) --- sc/source/filter/excel/xetable.cxx | 3 +-- 1 file changed, 1 insertion(+), 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; } } -- cgit v1.2.3