[Libreoffice-commits] core.git: Branch 'feature/gsoc14-draw-chained-text-boxes' - editeng/source

matteocam matteo.campanelli at gmail.com
Wed Aug 13 07:12:56 PDT 2014


 editeng/source/outliner/outliner.cxx |   20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

New commits:
commit 891d6e558e9b78a6e40980bc8cda3903c05126f5
Author: matteocam <matteo.campanelli at gmail.com>
Date:   Wed Aug 13 16:11:07 2014 +0200

    Check that overflowing paragraphs are within indices
    
    Change-Id: I0937753facfa051b4fc6b5d21479855879ba64a1

diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx
index 1ecef6b..50fa881 100644
--- a/editeng/source/outliner/outliner.cxx
+++ b/editeng/source/outliner/outliner.cxx
@@ -2103,6 +2103,15 @@ OutlinerParaObject *Outliner::GetNonOverflowingParaObject() const
     sal_Int32 nCount = pEditEngine->GetOverflowingParaNum();
     //sal_Int32 nCount = 1;
 
+    // Defensive check: oveflowing para index beyond actual # of paragraphs?
+    if ( nCount > GetParagraphCount()-1) {
+        fprintf(stderr,
+                "[Overflowing] Ops, trying to retrieve para %d when max index is %d\n",
+                nCount,
+                GetParagraphCount()-1);
+        return NULL;
+    }
+
     if ( nCount == 0 ) // Only overflowing text
         return NULL;
     else if (nCount < 0) // No overflowing Text
@@ -2130,8 +2139,17 @@ OutlinerParaObject *Outliner::GetNonOverflowingParaObject() const
 }
 OutlinerParaObject *Outliner::GetOverflowingParaObject() const
 {
-    if ( pEditEngine->GetOverflowingParaNum() >= 0)
+    if ( pEditEngine->GetOverflowingParaNum() >= 0) {
+        // Defensive check: oveflowing para index beyond actual # of paragraphs?
+        if ( pEditEngine->GetOverflowingParaNum() > GetParagraphCount()-1) {
+            fprintf(stderr,
+                    "[Overflowing] Ops, trying to retrieve para %d when max index is %d\n",
+                    nCount,
+                    GetParagraphCount()-1);
+            return NULL;
+    }
         return CreateParaObject( pEditEngine->GetOverflowingParaNum() );
+    }
 
     return NULL;
     /*


More information about the Libreoffice-commits mailing list