[Libreoffice-commits] core.git: 3 commits - dbaccess/source starmath/source sw/source

Caolán McNamara caolanm at redhat.com
Thu Jun 2 14:25:29 UTC 2016


 dbaccess/source/ui/dlg/dbwiz.cxx |    4 +-
 starmath/source/cursor.cxx       |   75 ++++++++++++++++++++-------------------
 sw/source/core/doc/tblafmt.cxx   |    2 -
 3 files changed, 42 insertions(+), 39 deletions(-)

New commits:
commit 31038459b576b5ef53c3ccadb1e2aee0e61d20ff
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jun 2 15:22:05 2016 +0100

    coverity#1362478 Explicit null dereferenced
    
    and
    
    coverity#1362479, coverity#1362480, coverity#1362481,
    coverity#1362482, coverity#1362483, coverity#1362485
    
    Change-Id: Ia3a32b69bcbe5ac3e7cc50dacfa02e8bf1aab787

diff --git a/starmath/source/cursor.cxx b/starmath/source/cursor.cxx
index 617e100..3baf5e1 100644
--- a/starmath/source/cursor.cxx
+++ b/starmath/source/cursor.cxx
@@ -16,53 +16,56 @@
 
 void SmCursor::Move(OutputDevice* pDev, SmMovementDirection direction, bool bMoveAnchor){
     SmCaretPosGraphEntry* NewPos = nullptr;
-    switch(direction){
+    switch(direction)
+    {
         case MoveLeft:
-        {
-            NewPos = mpPosition->Left;
+            if (mpPosition)
+                NewPos = mpPosition->Left;
             OSL_ENSURE(NewPos, "NewPos shouldn't be NULL here!");
-        }break;
+            break;
         case MoveRight:
-        {
-            NewPos = mpPosition->Right;
+            if (mpPosition)
+                NewPos = mpPosition->Right;
             OSL_ENSURE(NewPos, "NewPos shouldn't be NULL here!");
-        }break;
+            break;
         case MoveUp:
             //Implementation is practically identical to MoveDown, except for a single if statement
             //so I've implemented them together and added a direction == MoveDown to the if statements.
         case MoveDown:
-        {
-            SmCaretLine from_line = SmCaretPos2LineVisitor(pDev, mpPosition->CaretPos).GetResult(),
-                        best_line,  //Best approximated line found so far
-                        curr_line;  //Current line
-            long dbp_sq = 0;        //Distance squared to best line
-            for(auto &pEntry : *mpGraph)
+            if (mpPosition)
             {
-                //Reject it if it's the current position
-                if(pEntry->CaretPos == mpPosition->CaretPos) continue;
-                //Compute caret line
-                curr_line = SmCaretPos2LineVisitor(pDev, pEntry->CaretPos).GetResult();
-                //Reject anything above if we're moving down
-                if(curr_line.GetTop() <= from_line.GetTop() && direction == MoveDown) continue;
-                //Reject anything below if we're moving up
-                if(curr_line.GetTop() + curr_line.GetHeight() >= from_line.GetTop() + from_line.GetHeight()
-                        && direction == MoveUp) continue;
-                //Compare if it to what we have, if we have anything yet
-                if(NewPos){
-                    //Compute distance to current line squared, multiplied with a horizontal factor
-                    long dp_sq = curr_line.SquaredDistanceX(from_line) * HORIZONTICAL_DISTANCE_FACTOR +
-                                 curr_line.SquaredDistanceY(from_line);
-                    //Discard current line if best line is closer
-                    if(dbp_sq <= dp_sq) continue;
+                SmCaretLine from_line = SmCaretPos2LineVisitor(pDev, mpPosition->CaretPos).GetResult(),
+                            best_line,  //Best approximated line found so far
+                            curr_line;  //Current line
+                long dbp_sq = 0;        //Distance squared to best line
+                for(auto &pEntry : *mpGraph)
+                {
+                    //Reject it if it's the current position
+                    if(pEntry->CaretPos == mpPosition->CaretPos) continue;
+                    //Compute caret line
+                    curr_line = SmCaretPos2LineVisitor(pDev, pEntry->CaretPos).GetResult();
+                    //Reject anything above if we're moving down
+                    if(curr_line.GetTop() <= from_line.GetTop() && direction == MoveDown) continue;
+                    //Reject anything below if we're moving up
+                    if(curr_line.GetTop() + curr_line.GetHeight() >= from_line.GetTop() + from_line.GetHeight()
+                            && direction == MoveUp) continue;
+                    //Compare if it to what we have, if we have anything yet
+                    if(NewPos){
+                        //Compute distance to current line squared, multiplied with a horizontal factor
+                        long dp_sq = curr_line.SquaredDistanceX(from_line) * HORIZONTICAL_DISTANCE_FACTOR +
+                                     curr_line.SquaredDistanceY(from_line);
+                        //Discard current line if best line is closer
+                        if(dbp_sq <= dp_sq) continue;
+                    }
+                    //Take current line as the best
+                    best_line = curr_line;
+                    NewPos = pEntry.get();
+                    //Update distance to best line
+                    dbp_sq = best_line.SquaredDistanceX(from_line) * HORIZONTICAL_DISTANCE_FACTOR +
+                             best_line.SquaredDistanceY(from_line);
                 }
-                //Take current line as the best
-                best_line = curr_line;
-                NewPos = pEntry.get();
-                //Update distance to best line
-                dbp_sq = best_line.SquaredDistanceX(from_line) * HORIZONTICAL_DISTANCE_FACTOR +
-                         best_line.SquaredDistanceY(from_line);
             }
-        }break;
+            break;
         default:
             SAL_WARN("starmath", "Movement direction not supported!");
     }
commit 7cf46388e4e0a9e6e59e1321c46c62801dde5ee2
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jun 2 15:13:51 2016 +0100

    coverity#1362486 Unchecked dynamic_cast
    
    Change-Id: Ia495ac1434500048ce2f6ffd8d85e3ece13d2bad

diff --git a/dbaccess/source/ui/dlg/dbwiz.cxx b/dbaccess/source/ui/dlg/dbwiz.cxx
index 012d73e..06ce8f6 100644
--- a/dbaccess/source/ui/dlg/dbwiz.cxx
+++ b/dbaccess/source/ui/dlg/dbwiz.cxx
@@ -89,8 +89,8 @@ ODbTypeWizDialog::ODbTypeWizDialog(vcl::Window* _pParent
     m_pFinish->SetHelpId(HID_DBWIZ_FINISH);
     // no local resources needed anymore
 
-    const DbuTypeCollectionItem* pCollectionItem = dynamic_cast<const DbuTypeCollectionItem*>( _pItems->GetItem(DSID_TYPECOLLECTION) );
-    m_pCollection = pCollectionItem->getCollection();
+    const DbuTypeCollectionItem& rCollectionItem = dynamic_cast<const DbuTypeCollectionItem&>(*_pItems->GetItem(DSID_TYPECOLLECTION));
+    m_pCollection = rCollectionItem.getCollection();
 
     ActivatePage();
     setTitleBase(ModuleRes(STR_DATABASE_TYPE_CHANGE));
commit da220c87700064f83c1312148531a9c0fdff4aa3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jun 2 15:10:01 2016 +0100

    coverity#1362484 Dereference after null check
    
    maybe this is what was wanted, still looks a bit dubious, won't
    crash straight away at least
    
    Change-Id: I1be934af9d7ec95f3a7079f2f34a3e3661311944

diff --git a/sw/source/core/doc/tblafmt.cxx b/sw/source/core/doc/tblafmt.cxx
index 229e9c95..1344b13 100644
--- a/sw/source/core/doc/tblafmt.cxx
+++ b/sw/source/core/doc/tblafmt.cxx
@@ -700,7 +700,7 @@ SwBoxAutoFormat& SwTableAutoFormat::GetBoxFormat( sal_uInt8 nPos )
         // If default doesn't exist yet:
         if( !pDfltBoxAutoFormat )
             pDfltBoxAutoFormat = new SwBoxAutoFormat();
-        *pFormat = *pDfltBoxAutoFormat;
+        pFormat = pDfltBoxAutoFormat;
     }
     return *pFormat;
 }


More information about the Libreoffice-commits mailing list