]> granicus.if.org Git - postgis/commitdiff
Plug memory leak on GEOS geom construction failure [RT-SIGTA]
authorSandro Santilli <strk@keybit.net>
Mon, 15 Feb 2010 20:40:32 +0000 (20:40 +0000)
committerSandro Santilli <strk@keybit.net>
Mon, 15 Feb 2010 20:40:32 +0000 (20:40 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@5243 b70326c6-7e19-0410-871a-916f4a2858ee

postgis/lwgeom_geos.c

index ae93236496d765f5a51b80d2fc9b452e4175e87e..1c5da159130c1face4a0bea11d30abbd0d655f5d 100644 (file)
@@ -3532,7 +3532,12 @@ LWGEOM2GEOS(LWGEOM *lwgeom)
                {
                        sq = ptarray_to_GEOSCoordSeq(lwpoly->rings[i]);
                        geoms[i-1] = GEOSGeom_createLinearRing(sq);
-                       if ( ! geoms[i-1] ) return NULL;
+                       if ( ! geoms[i-1] ) {
+                               --i;
+                               while (i) GEOSGeom_destroy(geoms[i-1]);
+                               free(geoms);
+                               return NULL;
+                       }
                        /*lwerror("LWGEOM2GEOS: exception during polygon hole conversion"); */
                }
                g = GEOSGeom_createPolygon(shell, geoms, ngeoms);