summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-08-11 20:58:22 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-08-11 21:04:42 +0100
commit0592da19b625975886d3442477f4399660736a69 (patch)
tree2be132d89ffa89471530f8ffedf680374496cf84
parent7b09e2a90cd8b69b466601f70d0513cfe2862e7c (diff)
avoid another hang with certain .docs
Change-Id: If16e90c5ba1a43ceb9702e752835928da7b3ef32
-rw-r--r--sw/qa/core/data/ww8/pass/hang-3.docbin0 -> 10240 bytes
-rw-r--r--sw/source/filter/ww8/ww8par.cxx4
2 files changed, 2 insertions, 2 deletions
diff --git a/sw/qa/core/data/ww8/pass/hang-3.doc b/sw/qa/core/data/ww8/pass/hang-3.doc
new file mode 100644
index 000000000000..4188b801a45b
--- /dev/null
+++ b/sw/qa/core/data/ww8/pass/hang-3.doc
Binary files differ
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 96c71b7fb12c..aca1430f9d68 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -2287,7 +2287,7 @@ void SwWW8ImplReader::Read_HdFtText(WW8_CP nStart, WW8_CP nLen, SwFrameFormat* p
bool SwWW8ImplReader::isValid_HdFt_CP(WW8_CP nHeaderCP) const
{
// Each CP of Plcfhdd MUST be less than FibRgLw97.ccpHdd
- return (nHeaderCP < m_pWwFib->ccpHdr);
+ return (nHeaderCP < m_pWwFib->ccpHdr && nHeaderCP >= 0);
}
bool SwWW8ImplReader::HasOwnHeaderFooter(sal_uInt8 nWhichItems, sal_uInt8 grpfIhdt,
@@ -2304,7 +2304,7 @@ bool SwWW8ImplReader::HasOwnHeaderFooter(sal_uInt8 nWhichItems, sal_uInt8 grpfIh
{
bool bOk = true;
if( m_bVer67 )
- bOk = ( m_pHdFt->GetTextPos(grpfIhdt, nI, nStart, nLen ) && nLen >= 2 );
+ bOk = ( m_pHdFt->GetTextPos(grpfIhdt, nI, nStart, nLen ) && nStart >= 0 && nLen >= 2 );
else
{
m_pHdFt->GetTextPosExact( static_cast< short >(nNumber + (nSect+1)*6), nStart, nLen);