[Libreoffice-commits] core.git: filter/source

Caolán McNamara caolanm at redhat.com
Tue Jan 17 21:03:39 UTC 2017


 filter/source/graphicfilter/idxf/dxfentrd.cxx |    6 ++----
 filter/source/graphicfilter/idxf/dxfentrd.hxx |    5 ++---
 2 files changed, 4 insertions(+), 7 deletions(-)

New commits:
commit 157472752d822251f57d4089effac454b875e183
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jan 17 21:02:31 2017 +0000

    ofz#413 leak in DXFBoundaryPathData::EvaluateGroup
    
    Change-Id: I3eac501ce6edba1688571be1b9172c720f55a1ff

diff --git a/filter/source/graphicfilter/idxf/dxfentrd.cxx b/filter/source/graphicfilter/idxf/dxfentrd.cxx
index 14445b1..892c0b3 100644
--- a/filter/source/graphicfilter/idxf/dxfentrd.cxx
+++ b/filter/source/graphicfilter/idxf/dxfentrd.cxx
@@ -576,10 +576,8 @@ DXFBoundaryPathData::DXFBoundaryPathData() :
 
 DXFBoundaryPathData::~DXFBoundaryPathData()
 {
-    sal_uInt32 i = 0;
-    for ( i = 0; i < aEdges.size(); i++ )
+    for (sal_uInt32 i = 0; i < aEdges.size(); ++i)
         delete aEdges[ i ];
-    delete[] pP;
 }
 
 bool DXFBoundaryPathData::EvaluateGroup( DXFGroupReader & rDGR )
@@ -600,7 +598,7 @@ bool DXFBoundaryPathData::EvaluateGroup( DXFGroupReader & rDGR )
             {
                 nPointCount = rDGR.GetI();
                 if ( nPointCount )
-                    pP = new DXFVector[ nPointCount ];
+                    pP.reset( new DXFVector[ nPointCount ] );
             }
             break;
             case 72 : nHasBulgeFlag = rDGR.GetI(); break;
diff --git a/filter/source/graphicfilter/idxf/dxfentrd.hxx b/filter/source/graphicfilter/idxf/dxfentrd.hxx
index 8f801ba..e39ff48 100644
--- a/filter/source/graphicfilter/idxf/dxfentrd.hxx
+++ b/filter/source/graphicfilter/idxf/dxfentrd.hxx
@@ -412,9 +412,8 @@ struct DXFBoundaryPathData
     bool                bIsPolyLine;
     sal_Int32           nPointIndex;
 
-    DXFVector*          pP;
-    std::deque< DXFEdgeType* >
-                        aEdges;
+    std::unique_ptr<DXFVector[]> pP;
+    std::deque<DXFEdgeType*> aEdges;
 
     DXFBoundaryPathData();
     ~DXFBoundaryPathData();


More information about the Libreoffice-commits mailing list