summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-04-04 12:31:04 +0100
committerCaolán McNamara <caolanm@redhat.com>2017-04-04 12:52:17 +0100
commitd30fb62f4f1022ae6294e246974d0018596cf8ec (patch)
treeda31b044b2924f707ed7b01c7c80b5eb0901d161
parent0f89d964b272c2087dbc865bc0a60edfdde8551f (diff)
ofz: guard against bogus sprm len
Change-Id: I9b4074e1024753549f468f427afbfdf9cd01b674
-rw-r--r--sw/source/filter/ww8/ww8scan.cxx5
1 files changed, 5 insertions, 0 deletions
diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
index fc441fdee489..19bd84fb6c90 100644
--- a/sw/source/filter/ww8/ww8scan.cxx
+++ b/sw/source/filter/ww8/ww8scan.cxx
@@ -4886,6 +4886,11 @@ void WW8PLCFMan::GetSprmStart( short nIdx, WW8PLCFManResult* pRes ) const
{
// Length of actual sprm
pRes->nMemLen = maSprmParser.GetSprmSize(pRes->nSprmId, pRes->pMemPos);
+ if (pRes->nMemLen > p->nSprmsLen)
+ {
+ SAL_WARN("sw.ww8", "Short sprm, len " << pRes->nMemLen << " claimed, max possible is " << p->nSprmsLen);
+ pRes->nMemLen = p->nSprmsLen;
+ }
}
}