summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2013-11-08 15:57:04 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2013-11-08 16:08:15 +0100
commitffbad093368fc307ddeb128c6654d67f967f2c9f (patch)
tree65f4b074d328a6266d12e44ae22330e779540057 /sw
parent797681b4f569212a0f306151167534e23a2e37af (diff)
SwDoc::DelNumRule: fix out-of-bounds index access
When nPos == USHRT_MAX, even if later we checked for that case, just for the sake of an assert(), we already called operator[] with nPos. (To reproduce: right click on List 1 -> New -> Cancel, results in a crash.) Change-Id: I465b5519000b79bd8b2eaa3b3c1ceb80a182a25a
Diffstat (limited to 'sw')
-rw-r--r--sw/source/core/doc/docnum.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/sw/source/core/doc/docnum.cxx b/sw/source/core/doc/docnum.cxx
index db5dd76b7cdb..c6be76504127 100644
--- a/sw/source/core/doc/docnum.cxx
+++ b/sw/source/core/doc/docnum.cxx
@@ -1005,13 +1005,16 @@ bool SwDoc::DelNumRule( const OUString& rName, bool bBroadcast )
{
sal_uInt16 nPos = FindNumRule( rName );
+ if (nPos == USHRT_MAX)
+ return false;
+
if ( (*mpNumRuleTbl)[ nPos ] == GetOutlineNumRule() )
{
OSL_FAIL( "<SwDoc::DelNumRule(..)> - No deletion of outline list style. This is serious defect - please inform OD" );
return false;
}
- if( USHRT_MAX != nPos && !IsUsed( *(*mpNumRuleTbl)[ nPos ] ))
+ if( !IsUsed( *(*mpNumRuleTbl)[ nPos ] ))
{
if (GetIDocumentUndoRedo().DoesUndo())
{