[Libreoffice-commits] core.git: Branch 'libreoffice-5-0' - lotuswordpro/source

Caolán McNamara caolanm at redhat.com
Wed Dec 23 11:54:02 PST 2015


 lotuswordpro/source/filter/lwpfrib.cxx        |    4 +-
 lotuswordpro/source/filter/lwpfribsection.cxx |   47 +++++++++++++++-----------
 lotuswordpro/source/filter/lwppara.cxx        |    2 -
 lotuswordpro/source/filter/xfilter/xfcell.cxx |    2 -
 4 files changed, 33 insertions(+), 22 deletions(-)

New commits:
commit b8b7669d2e48f491cd9d8e6a32f61a121ae8034f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Dec 19 12:34:34 2015 +0000

    coverity#1343623 Logically dead code
    
    (cherry picked from commit 8f3c796ecf926f81f6229fbb040095286c8adbfe)
    
    coverity#1343624 Unchecked dynamic_cast
    
    (cherry picked from commit 26fddc3196c7ab932ada544b84b74da06fa2596d)
    
    coverity#1343625 Unchecked dynamic_cast
    
    (cherry picked from commit 9e83e31019cdc68e5324a10ef76417b46720cfe9)
    
    coverity#1343626 Unchecked dynamic_cast
    
    (cherry picked from commit c2f1731685014b9df386dfb59900783c3ca3acb7)
    
    coverity#1343627 Unchecked dynamic_cast
    
    (cherry picked from commit 1276f6daf28f61d911da9885e0cac738931e4de4)
    
    coverity#1343629 Unchecked dynamic_cast
    
    (cherry picked from commit 274d265e42ab89be29af21ef5cc1cbf20b3d35a2)
    
    1343630 Dereference after null check
    
    (cherry picked from commit 960cfb7e3ba56fe06f45c523e086ee6d4b95e685)
    (cherry picked from commit 7e6e8aa8c51e13b016118720fc28f39a572bb8e4)
    
    Change-Id: Ibcf05263f7bea50f70d55f4d8944d0a41d54851d
    a303a5dc97fb5e491e86a3484040e657f1b480d4
    b534e4e8ecf50a9159c5e98e2c899bf13f44c654
    52e6d6c9cb48880185293fb9825d7a6530ee767d
    83c0febcbbf0f19a05818e0575921d1d6254935f
    93b7298d785e57a4ef854cea3e9cd5c2c0f35849
    81223b868f069755e8a46c57bfe0282021f26de7
    Reviewed-on: https://gerrit.libreoffice.org/20832
    Reviewed-by: David Tardon <dtardon at redhat.com>
    Tested-by: David Tardon <dtardon at redhat.com>

diff --git a/lotuswordpro/source/filter/lwpfrib.cxx b/lotuswordpro/source/filter/lwpfrib.cxx
index d578007..96833c7 100644
--- a/lotuswordpro/source/filter/lwpfrib.cxx
+++ b/lotuswordpro/source/filter/lwpfrib.cxx
@@ -257,11 +257,13 @@ void LwpFrib::RegisterStyle(LwpFoundry* pFoundry)
     }
     if (pNamedStyle)
     {
+        LwpCharacterStyle* pCharStyle = nullptr;
         if (m_pModifiers->FontID && pFoundry)
+            pCharStyle = dynamic_cast<LwpCharacterStyle*>(m_pModifiers->CharStyleID.obj().get());
+        if (pCharStyle)
         {
             pStyle = new XFTextStyle();
             *pStyle = *pNamedStyle;
-            LwpCharacterStyle* pCharStyle = dynamic_cast<LwpCharacterStyle*>(m_pModifiers->CharStyleID.obj().get());
 
             pStyle->SetStyleName("");
             pFont = pFoundry->GetFontManger().CreateOverrideFont(pCharStyle->GetFinalFontID(),m_pModifiers->FontID);
diff --git a/lotuswordpro/source/filter/lwpfribsection.cxx b/lotuswordpro/source/filter/lwpfribsection.cxx
index e14993c..74cc81d 100644
--- a/lotuswordpro/source/filter/lwpfribsection.cxx
+++ b/lotuswordpro/source/filter/lwpfribsection.cxx
@@ -193,7 +193,7 @@ void LwpFribSection::SetDefaultAlphaIndex(XFIndex * pXFIndex)
 
     LwpIndexSection* pIndexSection = dynamic_cast<LwpIndexSection*>(m_Section.obj().get());
     XFIndexTemplate * pTemplateSep = new XFIndexTemplate();
-    if (pIndexSection->IsFormatSeparator())
+    if (pIndexSection && pIndexSection->IsFormatSeparator())
     {
         pXFIndex->SetSeparator(true);
         pTemplateSep->AddEntry(enumXFIndexTemplateText,"");
@@ -219,7 +219,7 @@ void LwpFribSection::SetDefaultAlphaIndex(XFIndex * pXFIndex)
     pTemplate3->AddEntry(enumXFIndexTemplateTab,"");
     pTemplate3->AddEntry(enumXFIndexTemplatePage,"");
 
-    if (pIndexSection->IsFormatRunin())
+    if (pIndexSection && pIndexSection->IsFormatRunin())
     {
         //pXFIndex->AddTemplate(OUString::number(2),"Primary",pTemplate2);
         //pXFIndex->AddTemplate(OUString::number(3),"Primary",pTemplate3);
@@ -247,10 +247,13 @@ LwpMasterPage::LwpMasterPage(LwpPara* pPara, LwpPageLayout* pLayout)
  */
 bool LwpMasterPage::RegisterMasterPage(LwpFrib* pFrib)
 {
-    //if there is no other frib after current firb, register master page in starting para of next page
-    if(IsNextPageType()&&(!pFrib->HasNextFrib()))
+    //if there is no other frib after current frib, register master page in starting para of next page
+    LwpStory* pStory = nullptr;
+    if (IsNextPageType()&&(!pFrib->HasNextFrib()))
+        pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID().obj().get());
+
+    if (pStory)
     {
-        LwpStory* pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID().obj().get());
         pStory->SetCurrentLayout(m_pLayout);
         RegisterFillerPageStyle();
         return false;
@@ -281,14 +284,17 @@ bool LwpMasterPage::RegisterMasterPage(LwpFrib* pFrib)
         case LwpLayout::StartOnOddPage: //fall through
         case LwpLayout::StartOnEvenPage:
         {
-            LwpStory* pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID().obj().get());
-            pStory->SetCurrentLayout(m_pLayout);
-            //get odd page layout when the current pagelayout is mirror
-            m_pLayout = pStory->GetCurrentLayout();
-            m_bNewSection = IsNeedSection();
-            //bSectionColumns = m_bNewSection;
-            pOverStyle->SetMasterPage( m_pLayout->GetStyleName());
-            RegisterFillerPageStyle();
+            pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID().obj().get());
+            if (pStory)
+            {
+                pStory->SetCurrentLayout(m_pLayout);
+                //get odd page layout when the current pagelayout is mirror
+                m_pLayout = pStory->GetCurrentLayout();
+                m_bNewSection = IsNeedSection();
+                //bSectionColumns = m_bNewSection;
+                pOverStyle->SetMasterPage( m_pLayout->GetStyleName());
+                RegisterFillerPageStyle();
+            }
             break;
         }
         default:
@@ -296,7 +302,10 @@ bool LwpMasterPage::RegisterMasterPage(LwpFrib* pFrib)
     }
 
     //register tab style;
-    LwpStory* pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID().obj().get());
+    pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID().obj().get());
+    if (!pStory)
+        return false;
+
     pStory->SetTabLayout(m_pLayout);
     m_pPara->RegisterTabStyle(pOverStyle);
 
@@ -308,7 +317,7 @@ bool LwpMasterPage::RegisterMasterPage(LwpFrib* pFrib)
         XFSectionStyle* pSectStyle= new XFSectionStyle();
         //set margin
         pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID().obj().get());
-        if(pStory)
+        if (pStory)
         {
             LwpPageLayout* pCurrentLayout = pStory->GetCurrentLayout();
             double fLeft = m_pLayout->GetMarginsValue(MARGIN_LEFT)- pCurrentLayout->GetMarginsValue(MARGIN_LEFT);
@@ -341,7 +350,7 @@ bool LwpMasterPage::IsNeedSection()
     //get story
     LwpStory* pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID().obj().get());
     //if pagelayout is modified, register the pagelayout
-    if(pStory->IsPMModified())
+    if (pStory && pStory->IsPMModified())
     {
         bNewSection = pStory->IsNeedSection();
     }
@@ -398,13 +407,13 @@ void LwpMasterPage::ParseSection(LwpFrib* pFrib)
                 pCurrContainer->RemoveLastContent();
             }
         }
-        //end,06/28/2005
-        pStory->AddXFContent( pContent );
+        if (pStory)
+            pStory->AddXFContent( pContent );
     }
     else
     {
         LwpStory* pStory = dynamic_cast<LwpStory*> ( m_pPara->GetStoryID().obj().get() );
-        pContent = pStory->GetXFContent();
+        pContent = pStory ? pStory->GetXFContent() : nullptr;
     }
     if(pContent)
     {
diff --git a/lotuswordpro/source/filter/lwppara.cxx b/lotuswordpro/source/filter/lwppara.cxx
index e021833..520be75 100644
--- a/lotuswordpro/source/filter/lwppara.cxx
+++ b/lotuswordpro/source/filter/lwppara.cxx
@@ -311,7 +311,7 @@ void LwpPara::XFConvert(XFContentContainer* pCont)
     m_Fribs.SetXFPara(pPara);
     m_Fribs.XFConvert();
 
-    if (m_pBreaks)
+    if (m_pBreaks && m_pXFContainer)
         AddBreakAfter(m_pXFContainer);
 }
 
diff --git a/lotuswordpro/source/filter/xfilter/xfcell.cxx b/lotuswordpro/source/filter/xfilter/xfcell.cxx
index 31ad0a0..7dde717 100644
--- a/lotuswordpro/source/filter/xfilter/xfcell.cxx
+++ b/lotuswordpro/source/filter/xfilter/xfcell.cxx
@@ -100,7 +100,7 @@ void    XFCell::Add(XFContent *pContent)
     }
     if( pContent->GetContentType() == enumXFContentTable )
     {
-        XFTable *pTable = static_cast<XFTable*>(pContent);
+        XFTable *pTable = dynamic_cast<XFTable*>(pContent);
         if( !pTable )
             return;
         //the sub table will fill all the cell, there can't be other contents.


More information about the Libreoffice-commits mailing list