From c5c7dac582acdbd04f39937e47e98d2e70e75738 Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Thu, 20 Dec 2012 17:51:38 +0000 Subject: [PATCH] Fix memory leak in geometry cleaner git-svn-id: http://svn.osgeo.org/postgis/trunk@10877 b70326c6-7e19-0410-871a-916f4a2858ee --- liblwgeom/lwgeom_geos_clean.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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); -- 2.50.1