From: Sandro Santilli Date: Thu, 20 Dec 2012 17:51:38 +0000 (+0000) Subject: Fix memory leak in geometry cleaner X-Git-Tag: 2.1.0beta2~269 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c5c7dac582acdbd04f39937e47e98d2e70e75738;p=postgis Fix memory leak in geometry cleaner git-svn-id: http://svn.osgeo.org/postgis/trunk@10877 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/liblwgeom/lwgeom_geos_clean.c b/liblwgeom/lwgeom_geos_clean.c index 1d89a70b3..f9ddf564e 100644 --- a/liblwgeom/lwgeom_geos_clean.c +++ b/liblwgeom/lwgeom_geos_clean.c @@ -994,7 +994,7 @@ lwgeom_make_valid(LWGEOM* lwgeom_in) int is3d; GEOSGeom geosgeom; GEOSGeometry* geosout; - LWGEOM *lwgeom_out; + LWGEOM *lwgeom_out, *lwgeom_tmp; is3d = FLAGS_GET_Z(lwgeom_in->flags); @@ -1048,7 +1048,9 @@ lwgeom_make_valid(LWGEOM* lwgeom_in) if ( lwgeom_is_collection(lwgeom_in) && ! lwgeom_is_collection(lwgeom_out) ) { LWDEBUG(3, "lwgeom_make_valid: forcing multi"); - lwgeom_out = lwgeom_as_multi(lwgeom_out); + lwgeom_tmp = lwgeom_as_multi(lwgeom_out); + lwgeom_free(lwgeom_out); + lwgeom_out = lwgeom_tmp; } GEOSGeom_destroy(geosout);