diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-01-17 21:02:31 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-01-17 21:03:12 +0000 |
commit | 157472752d822251f57d4089effac454b875e183 (patch) | |
tree | bbf4c9330f29508e20687cf680d0c1c46eb5a2eb /filter | |
parent | e87071ac57a7711078715d9165c264ec3db180ab (diff) |
ofz#413 leak in DXFBoundaryPathData::EvaluateGroup
Change-Id: I3eac501ce6edba1688571be1b9172c720f55a1ff
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/graphicfilter/idxf/dxfentrd.cxx | 6 | ||||
-rw-r--r-- | filter/source/graphicfilter/idxf/dxfentrd.hxx | 5 |
2 files changed, 4 insertions, 7 deletions
diff --git a/filter/source/graphicfilter/idxf/dxfentrd.cxx b/filter/source/graphicfilter/idxf/dxfentrd.cxx index 14445b1301cf..892c0b34b4a3 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 8f801ba1b8a4..e39ff48633e8 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(); |