[geos-devel] [GEOS] #747: BufferBuilder::bufferLineSingleSided leaks buffer geometry on exception

GEOS geos-trac at osgeo.org
Sun Oct 4 08:10:09 PDT 2015


#747: BufferBuilder::bufferLineSingleSided leaks buffer geometry on exception
-------------------------+--------------------------
 Reporter:  mloskot      |      Owner:  geos-devel@…
     Type:  defect       |     Status:  new
 Priority:  major        |  Milestone:  3.5.1
Component:  Default      |    Version:  svn-trunk
 Severity:  Significant  |   Keywords:
-------------------------+--------------------------
 In BufferBuilder::bufferLineSingleSided, there is this code

 {{{
 ...
 Geometry* buf = 0;
 {
     BufferBuilder tmp(modParams);
     buf = tmp.buffer( l, distance );
 }
 ... //
 }}}

 This code is followed by around 200 lines of complex logic.
 If any of the following steps throw exception, that buffer geometry leaks
 as unreachable.

 I was tempted to apply the simplest fix - wrap the whole
 bufferLineSingleSided  with try-catch and manually release all the
 internally allocated resources. But, I'm not sure as I may be missing
 something that actually allows to delete the memory there.

 Actually, this is the case in current
 [source:trunk/tests/unit/capi/GEOSOffsetCurveTest.cpp at 3846#L278] where the
 memory leaks.

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/747>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).


More information about the geos-devel mailing list