]> granicus.if.org Git - postgis/commitdiff
Fix memory leak in geometry cleaner
authorSandro Santilli <strk@keybit.net>
Thu, 20 Dec 2012 17:51:38 +0000 (17:51 +0000)
committerSandro Santilli <strk@keybit.net>
Thu, 20 Dec 2012 17:51:38 +0000 (17:51 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@10877 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/lwgeom_geos_clean.c

index 1d89a70b3d3173c0dee7a3ce392a7e7872012a6c..f9ddf564ef830f73d5ba7b5143b2e6058cd78952 100644 (file)
@@ -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);