[SCM] PostGIS branch stable-3.5 updated. 3.5.6-8-g826718222
git at osgeo.org
git at osgeo.org
Mon Jun 8 10:28:35 PDT 2026
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "PostGIS".
The branch, stable-3.5 has been updated
via 826718222abbe0b38c5e56c7086007279d6df942 (commit)
via 2cbcdd94dd99caaf147ed07b572aba48853c2783 (commit)
from 05d7932adf91edd05fc6e891d6b067f193379218 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 826718222abbe0b38c5e56c7086007279d6df942
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date: Thu Jun 4 13:44:11 2026 -0700
News entry for #3916
diff --git a/NEWS b/NEWS
index 1bbd739c9..86b1fe3f2 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,7 @@ PostGIS 3.5.7
- Flatgeobuf schema mismatch vulnerability (NeuroWinter)
- #5899, pg_upgrade issue for non-standard geography SRID (Paul Ramsey)
+ - #5916, ST_Split hang with very large ordinates (Paul Ramsey)
PostGIS 3.5.6
commit 2cbcdd94dd99caaf147ed07b572aba48853c2783
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date: Thu Jun 4 13:38:04 2026 -0700
Avoid Inf looping and memory use in ST_Split
When fed with very large coordinates, ST_Split could be
fooled into an Inf loop, this fixes that case,
closes #5916
diff --git a/liblwgeom/lwgeom_geos_split.c b/liblwgeom/lwgeom_geos_split.c
index a69b3d502..15ca6ff5c 100644
--- a/liblwgeom/lwgeom_geos_split.c
+++ b/liblwgeom/lwgeom_geos_split.c
@@ -282,9 +282,12 @@ lwline_split_by_point_to(const LWLINE* lwline_in, const LWPOINT* blade_in,
LWDEBUGF(3, "Projected point:(%.15g %.15g), seg:%d, p1:(%.15g %.15g), p2:(%.15g %.15g)", pt_projected.x, pt_projected.y, seg, p1.x, p1.y, p2.x, p2.y);
- /* When closest point == an endpoint, this is a boundary intersection */
- if ( ( (seg == nsegs-1) && P4D_SAME_STRICT(&pt_projected, &p2) ) ||
- ( (seg == 0) && P4D_SAME_STRICT(&pt_projected, &p1) ) )
+ /* When closest point == an endpoint, this is a boundary intersection.
+ * Compare only X and Y since pt_projected.x/y were forced to pt.x/y above,
+ * and Z/M may be NaN when line coordinates are very large (causing Inf/Inf
+ * in closest_point_on_segment). See #5916. */
+ if ( ( (seg == nsegs-1) && (pt_projected.x == p2.x) && (pt_projected.y == p2.y) ) ||
+ ( (seg == 0) && (pt_projected.x == p1.x) && (pt_projected.y == p1.y) ) )
{
return 1;
}
-----------------------------------------------------------------------
Summary of changes:
NEWS | 1 +
liblwgeom/lwgeom_geos_split.c | 9 ++++++---
2 files changed, 7 insertions(+), 3 deletions(-)
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list