[postgis-tickets] r14970 - #3583, geojson crash on malformed multipolygon

Paul Ramsey pramsey at cleverelephant.ca
Fri Jun 17 15:19:49 PDT 2016


Author: pramsey
Date: 2016-06-17 15:19:49 -0700 (Fri, 17 Jun 2016)
New Revision: 14970

Modified:
   branches/2.1/NEWS
   branches/2.1/liblwgeom/lwin_geojson.c
   branches/2.1/regress/tickets.sql
   branches/2.1/regress/tickets_expected
Log:
#3583, geojson crash on malformed multipolygon


Modified: branches/2.1/NEWS
===================================================================
--- branches/2.1/NEWS	2016-06-16 14:06:47 UTC (rev 14969)
+++ branches/2.1/NEWS	2016-06-17 22:19:49 UTC (rev 14970)
@@ -29,6 +29,7 @@
            platforms
   - #3565, ST_SetPoint can crash backend
   - #3579, Crash in LWGEOM2GEOS
+  - #3583, Crash in ST_GeomFromGeoJSON on malformed multipolygon
 
 
 PostGIS 2.1.8

Modified: branches/2.1/liblwgeom/lwin_geojson.c
===================================================================
--- branches/2.1/liblwgeom/lwin_geojson.c	2016-06-16 14:06:47 UTC (rev 14969)
+++ branches/2.1/liblwgeom/lwin_geojson.c	2016-06-17 22:19:49 UTC (rev 14970)
@@ -397,7 +397,7 @@
 				{
 					json_object* points = json_object_array_get_idx( poObjPoly, j );
 					
-					if( json_type_array == json_object_get_type( poObjPoly ) )
+					if( json_type_array == json_object_get_type( points ) )
 					{
 
 						POINTARRAY *pa = ptarray_construct_empty(1, 0, 1);

Modified: branches/2.1/regress/tickets.sql
===================================================================
--- branches/2.1/regress/tickets.sql	2016-06-16 14:06:47 UTC (rev 14969)
+++ branches/2.1/regress/tickets.sql	2016-06-17 22:19:49 UTC (rev 14970)
@@ -910,5 +910,9 @@
     ST_Intersects(ST_Buffer(road.geom, sidewalk_offset + epsilon), sidewalks.geom) -- should be true
 from road, sidewalks, params;
 
+-- #3583
+Select '#3583', ST_AsText(ST_GeomFromGeoJSON('{"type":"MultiPolygon", "coordinates":[[[139.10030364990232,35.16777444430609],5842.4224490305424]]}')); 
+
+
 -- Clean up
 DELETE FROM spatial_ref_sys;

Modified: branches/2.1/regress/tickets_expected
===================================================================
--- branches/2.1/regress/tickets_expected	2016-06-16 14:06:47 UTC (rev 14969)
+++ branches/2.1/regress/tickets_expected	2016-06-17 22:19:49 UTC (rev 14970)
@@ -188,6 +188,7 @@
 #745|GEOMETRYCOLLECTION(POLYGON((-72 42 1,-70 43 1,-71 41 1,-72 42 1)))
 #1450|POINT|POLYGON
 #1482|4326
+COPY 2
 #852.1|1|f|f
 #852.1|2|f|f
 #852.2|1|t|t
@@ -263,3 +264,4 @@
 #3375|GEOMETRYCOLLECTION(POINT(1 1))
 ERROR:  Cannot set point values on EMPTY geometry, use ST_AddPoint to add points
 #3579|f|t
+#3583|MULTIPOLYGON Z (EMPTY)



More information about the postgis-tickets mailing list