summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2013-10-09 15:53:00 +0100
committerCaolán McNamara <caolanm@redhat.com>2013-10-09 16:59:48 +0100
commitb40d092b960648b3a0af388e4813d977e5284427 (patch)
treeacc1142bcafcaf9ab651353a884bb5070afbf9fa /sw
parent49325659ca66958c2063c491e03b731cf1c53798 (diff)
CID#736203 out of bounds access
Change-Id: I4db4e241b6b2348a48536a7dd0f1aecbf04cb675
Diffstat (limited to 'sw')
-rw-r--r--sw/source/core/txtnode/ndtxt.cxx10
1 files changed, 9 insertions, 1 deletions
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index e816998363fb..b00a4abf9deb 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -2651,7 +2651,15 @@ sal_Bool SwTxtNode::HasNumber() const
const SwNumRule* pRule = GetNum() ? GetNum()->GetNumRule() : 0L;
if ( pRule )
{
- SwNumFmt aFmt(pRule->Get( static_cast<sal_uInt16>(GetActualListLevel())));
+ int nLevel = GetActualListLevel();
+
+ if (nLevel < 0)
+ nLevel = 0;
+
+ if (nLevel >= MAXLEVEL)
+ nLevel = MAXLEVEL - 1;
+
+ SwNumFmt aFmt(pRule->Get(static_cast<sal_uInt16>(nLevel)));
// #i40041#
bResult = aFmt.IsEnumeration() &&