]> granicus.if.org Git - postgis/commitdiff
Fix crash on face-collapsing edge change
authorSandro Santilli <strk@keybit.net>
Tue, 23 Feb 2016 15:53:12 +0000 (15:53 +0000)
committerSandro Santilli <strk@keybit.net>
Tue, 23 Feb 2016 15:53:12 +0000 (15:53 +0000)
See #3463

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

liblwgeom/lwgeom_topo.c

index 2372319e0dee9525d531ad0a41fb3f50596e5529..d2741c36f3e0f8fafa4f1baf1f3310d658598ae2 100644 (file)
@@ -3586,6 +3586,13 @@ lwt_ChangeEdgeGeom(LWT_TOPOLOGY* topo, LWT_ELEMID edge_id, LWLINE *geom)
   if ( oldedge->face_left != 0 )
   {
     nface1 = lwt_GetFaceGeometry(topo, oldedge->face_left);
+    if ( ! nface1 )
+    {
+      lwerror("lwt_ChangeEdgeGeom could not construct face %"
+                 PRId64 ", on the left of edge %" PRId64,
+                oldedge->face_left, edge_id);
+      return -1;
+    }
 #if 0
     {
     size_t sz;
@@ -3604,6 +3611,13 @@ lwt_ChangeEdgeGeom(LWT_TOPOLOGY* topo, LWT_ELEMID edge_id, LWLINE *geom)
        && oldedge->face_right != oldedge->face_left )
   {
     nface2 = lwt_GetFaceGeometry(topo, oldedge->face_right);
+    if ( ! nface2 )
+    {
+      lwerror("lwt_ChangeEdgeGeom could not construct face %"
+                 PRId64 ", on the right of edge %" PRId64,
+                oldedge->face_right, edge_id);
+      return -1;
+    }
 #if 0
     {
     size_t sz;