diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-08-27 20:16:58 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2015-08-31 15:11:47 +0200 |
commit | 61d30c1e532ae03501a62faa59d48ad4e2ea30c0 (patch) | |
tree | e08c31774e1f85b55a3662d2dbe89c4a4bbef23a /filter | |
parent | ade04a551548f14bce496c30a67c8fe1f790a3f0 (diff) |
check seek
Change-Id: I358758999bb918e73cdee2224e575e72c2131453
(cherry picked from commit 0c713e45f9831073e34777f50abf9b5801f08ed9)
Reviewed-on: https://gerrit.libreoffice.org/18098
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/msfilter/msdffimp.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index 09458f8c4def..5e9a34c0a9df 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; |