summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-01-17 21:02:31 +0000
committerCaolán McNamara <caolanm@redhat.com>2017-01-17 21:03:12 +0000
commit157472752d822251f57d4089effac454b875e183 (patch)
treebbf4c9330f29508e20687cf680d0c1c46eb5a2eb /filter
parente87071ac57a7711078715d9165c264ec3db180ab (diff)
ofz#413 leak in DXFBoundaryPathData::EvaluateGroup
Change-Id: I3eac501ce6edba1688571be1b9172c720f55a1ff
Diffstat (limited to 'filter')
-rw-r--r--filter/source/graphicfilter/idxf/dxfentrd.cxx6
-rw-r--r--filter/source/graphicfilter/idxf/dxfentrd.hxx5
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();