filter/source/msfilter/msdffimp.cxx |   24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

New commits:
commit cd1613eb5fcdd7f5a1176a3f8c4be9447b97c5b1
Author: Caolán McNamara <caol...@redhat.com>
Date:   Sun Nov 26 13:18:04 2017 +0000

    ofz#4435 Bad-cast
    
    Change-Id: Ie0364c758af84097cee93e4f6c5e8af2816359d4
    Reviewed-on: https://gerrit.libreoffice.org/45287
    Reviewed-by: Michael Stahl <mst...@redhat.com>
    Tested-by: Michael Stahl <mst...@redhat.com>

diff --git a/filter/source/msfilter/msdffimp.cxx 
b/filter/source/msfilter/msdffimp.cxx
index 443feb8ea728..eadbf3afcc9a 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -4102,11 +4102,15 @@ SdrObject* SvxMSDffManager::ImportGroup( const 
DffRecordHeader& rHd, SvStream& r
                         return pRet;
                     sal_Int32 nShapeId;
                     SdrObject* pTmp = ImportGroup( aRecHd2, rSt, pClientData, 
aGroupClientAnchor, aGroupChildAnchor, nCalledByGroup + 1, &nShapeId );
-                    if ( pTmp && pRet && 
static_cast<SdrObjGroup*>(pRet)->GetSubList() )
+                    if (pTmp)
                     {
-                        
static_cast<SdrObjGroup*>(pRet)->GetSubList()->NbcInsertObject( pTmp );
-                        if( nShapeId )
-                            insertShapeId( nShapeId, pTmp );
+                        SdrObjGroup* pGroup = dynamic_cast<SdrObjGroup*>(pRet);
+                        if (pGroup && pGroup->GetSubList())
+                        {
+                            pGroup->GetSubList()->NbcInsertObject(pTmp);
+                            if (nShapeId)
+                                insertShapeId(nShapeId, pTmp);
+                        }
                     }
                 }
                 else if ( aRecHd2.nRecType == DFF_msofbtSpContainer )
@@ -4115,11 +4119,15 @@ SdrObject* SvxMSDffManager::ImportGroup( const 
DffRecordHeader& rHd, SvStream& r
                         return pRet;
                     sal_Int32 nShapeId;
                     SdrObject* pTmp = ImportShape( aRecHd2, rSt, pClientData, 
aClientRect, aGlobalChildRect, nCalledByGroup + 1, &nShapeId );
-                    if ( pTmp && pRet && 
static_cast<SdrObjGroup*>(pRet)->GetSubList())
+                    if (pTmp)
                     {
-                        
static_cast<SdrObjGroup*>(pRet)->GetSubList()->NbcInsertObject( pTmp );
-                        if( nShapeId )
-                            insertShapeId( nShapeId, pTmp );
+                        SdrObjGroup* pGroup = dynamic_cast<SdrObjGroup*>(pRet);
+                        if (pGroup && pGroup->GetSubList())
+                        {
+                            pGroup->GetSubList()->NbcInsertObject(pTmp);
+                            if (nShapeId)
+                                insertShapeId(nShapeId, pTmp);
+                        }
                     }
                 }
                 if (!aRecHd2.SeekToEndOfRecord(rSt))
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to