summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-08-08 14:40:08 +0100
committerCaolán McNamara <caolanm@redhat.com>2012-08-08 14:45:39 +0100
commitaf6f8242ea9b61841f3be23fc5eaca4da79e264a (patch)
tree0eabacef8b317ccae779dc066a8cb49add47ac4b /sw
parentd7478b2ed7aa139eb17354e4d8b8914c67d0dc34 (diff)
ensure lcbAtrdExtra is a sane size
Change-Id: I766f8683655eb8f1ca437ab9622f3caefbc83e64
Diffstat (limited to 'sw')
-rw-r--r--sw/source/filter/ww8/ww8scan.cxx5
1 files changed, 2 insertions, 3 deletions
diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
index cd5d1ff76572..fcb61b7b8a8c 100644
--- a/sw/source/filter/ww8/ww8scan.cxx
+++ b/sw/source/filter/ww8/ww8scan.cxx
@@ -1718,11 +1718,10 @@ WW8ScannerBase::WW8ScannerBase( SvStream* pSt, SvStream* pTblSt,
if (pWwFib->fcAtrdExtra && pWwFib->lcbAtrdExtra)
{
sal_Size nOldPos = pTblSt->Tell();
- if (checkSeek(*pTblSt, pWwFib->fcAtrdExtra))
+ if (checkSeek(*pTblSt, pWwFib->fcAtrdExtra) && (pTblSt->remainingSize() >= pWwFib->lcbAtrdExtra))
{
pExtendedAtrds = new sal_uInt8[pWwFib->lcbAtrdExtra];
- pWwFib->lcbAtrdExtra = pTblSt->Read(pExtendedAtrds,
- pWwFib->lcbAtrdExtra);
+ pWwFib->lcbAtrdExtra = pTblSt->Read(pExtendedAtrds, pWwFib->lcbAtrdExtra);
}
else
pWwFib->lcbAtrdExtra = 0;