]> granicus.if.org Git - postgis/commitdiff
Do not release serialized input until output is deserialized
authorSandro Santilli <strk@keybit.net>
Wed, 8 Feb 2012 09:36:46 +0000 (09:36 +0000)
committerSandro Santilli <strk@keybit.net>
Wed, 8 Feb 2012 09:36:46 +0000 (09:36 +0000)
See http://postgis.refractions.net/pipermail/postgis-devel/2012-February/018336.html

git-svn-id: http://svn.osgeo.org/postgis/trunk@9095 b70326c6-7e19-0410-871a-916f4a2858ee

postgis/lwgeom_geos.c

index bc7dfc7e7fd49d516f3464c7e79081724007c555..5f4e370b26b66f572f0d9c3dea04763d178bef54 100644 (file)
@@ -3493,16 +3493,17 @@ Datum ST_Split(PG_FUNCTION_ARGS)
        lwgeom_out = lwgeom_split(lwgeom_in, lwblade_in);
        lwgeom_free(lwgeom_in);
        lwgeom_free(lwblade_in);
-       PG_FREE_IF_COPY(in, 0);
        PG_FREE_IF_COPY(blade_in, 1);
        
        if ( ! lwgeom_out )
        {
+               PG_FREE_IF_COPY(in, 0); /* possibly referenced by lwgeom_out */
                PG_RETURN_NULL();
        }
 
        out = geometry_serialize(lwgeom_out);
        lwgeom_free(lwgeom_out);
+       PG_FREE_IF_COPY(in, 0); /* possibly referenced by lwgeom_out */
 
        PG_RETURN_POINTER(out);
 }