summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKurt Zenker <kz@openoffice.org>2010-11-23 16:56:24 +0100
committerKurt Zenker <kz@openoffice.org>2010-11-23 16:56:24 +0100
commit118d72cbfd4e732b4b472260fe7cbc67fc9e68ee (patch)
tree6e905c9869cc4f9c0d9ccdccdce18ae2e35e91a3
parente40ba92862c73f0410e1f3a3914bb0c50e2ace49 (diff)
parent2eb40fcdb2f3e4e9768fa18ad662c11d52c44ad2 (diff)
CWS-TOOLING: integrate CWS os145
Notes
split repo tag: writer_ooo/OOO330_m17
-rw-r--r--sw/source/filter/ww8/ww8par.cxx9
-rw-r--r--sw/source/filter/ww8/ww8scan.cxx17
2 files changed, 21 insertions, 5 deletions
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 24f36b047a4e..cd11631a0181 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -4919,7 +4919,14 @@ ULONG WW8Reader::Read(SwDoc &rDoc, const String& rBaseURL, SwPaM &rPam, const St
}
SwWW8ImplReader* pRdr = new SwWW8ImplReader(nVersion, pStg, pIn, rDoc,
rBaseURL, bNew);
- nRet = pRdr->LoadDoc( rPam );
+ try
+ {
+ nRet = pRdr->LoadDoc( rPam );
+ }
+ catch( const std::exception& )
+ {
+ nRet = ERR_WW8_NO_WW8_FILE_ERR;
+ }
delete pRdr;
if( refStrm.Is() )
diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
index d64e207313d8..171e45260818 100644
--- a/sw/source/filter/ww8/ww8scan.cxx
+++ b/sw/source/filter/ww8/ww8scan.cxx
@@ -892,11 +892,18 @@ void WW8SprmIter::SetSprms(const BYTE* pSprms_, long nLen_)
const BYTE* WW8SprmIter::operator ++( int )
{
- if (nRemLen > 0)
+ if (nRemLen > 0 )
{
- pSprms += nAktSize;
- nRemLen -= nAktSize;
- UpdateMyMembers();
+ if( nRemLen >= nAktSize )
+ {
+ pSprms += nAktSize;
+ nRemLen -= nAktSize;
+ UpdateMyMembers();
+ }
+ else
+ {
+ throw( ::std::exception() );
+ }
}
return pSprms;
}
@@ -3247,6 +3254,8 @@ void WW8PLCFx_Cp_FKP::GetSprms(WW8PLCFxDesc* p)
Otherwise our cool fastsave algorithm can be brought to bear on the
problem.
*/
+ if( !pPieceIter )
+ return;
ULONG nOldPos = pPieceIter->GetIdx();
bool bOk = pPieceIter->SeekPos(nOrigCp);
pPieceIter->SetIdx( nOldPos );