summaryrefslogtreecommitdiff
path: root/filter/source/msfilter
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-08-27 20:16:58 +0100
committerAndras Timar <andras.timar@collabora.com>2015-08-31 13:53:09 +0200
commit4c7d6f420349c6ab8e6d9bfcf0e9d654499bb22f (patch)
tree77ea8ae4d5491d8294dd738041b66689b7f757fb /filter/source/msfilter
parentaaa2738e83e49851bf3e09d05a49cea352c0cd1d (diff)
check seek
Change-Id: I358758999bb918e73cdee2224e575e72c2131453 (cherry picked from commit 0c713e45f9831073e34777f50abf9b5801f08ed9) Reviewed-on: https://gerrit.libreoffice.org/18085 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'filter/source/msfilter')
-rw-r--r--filter/source/msfilter/msdffimp.cxx6
1 files changed, 4 insertions, 2 deletions
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index 4748cb95e9aa..47a89e01d6c8 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -399,7 +399,8 @@ SvStream& ReadSvxMSDffSolverContainer( SvStream& rIn, SvxMSDffSolverContainer& r
if ( aHd.nRecType == DFF_msofbtSolverContainer )
{
DffRecordHeader aCRule;
- while ( ( rIn.GetError() == 0 ) && ( rIn.Tell() < aHd.GetRecEndFilePos() ) )
+ auto nEndPos = DffPropSet::SanitizeEndPos(rIn, aHd.GetRecEndFilePos());
+ while ( ( rIn.GetError() == 0 ) && ( rIn.Tell() < nEndPos ) )
{
ReadDffRecordHeader( rIn, aCRule );
if ( aCRule.nRecType == DFF_msofbtConnectorRule )
@@ -408,7 +409,8 @@ SvStream& ReadSvxMSDffSolverContainer( SvStream& rIn, SvxMSDffSolverContainer& r
rIn >> *pRule;
rContainer.aCList.push_back( pRule );
}
- aCRule.SeekToEndOfRecord( rIn );
+ if (!aCRule.SeekToEndOfRecord(rIn))
+ break;
}
}
return rIn;