[PostGIS] #5906: Server crashes when densifyFrac is set too low in ST_FrechetDistance
PostGIS
trac at osgeo.org
Wed May 28 00:40:06 PDT 2025
#5906: Server crashes when densifyFrac is set too low in ST_FrechetDistance
----------------------+--------------------------------------
Reporter: dmyzl | Owner: pramsey
Type: defect | Status: new
Priority: medium | Milestone: PostGIS 3.5.4
Component: postgis | Version: 3.5.x
Resolution: | Keywords: ST_FrechetDistance crash
----------------------+--------------------------------------
Comment (by lnicola):
Can reproduce with GEOS 3.13.0. It's a SIGSEGV, or possibly a stack
overflow:
{{{
#0 0x00007fe4e9471216 in
geos::algorithm::distance::DiscreteFrechetDistance::getFrechetDistance
(this=0x7ffd5acabca0, ca=std::vector of length 10001, capacity 10001 =
{...}, i=0, j=13107, p=..., q=...)
at
/usr/src/debug/geos-3.13.0-2.fc42.x86_64/src/algorithm/distance/DiscreteFrechetDistance.cpp:112
#1 0x00007fe4e9471441 in
geos::algorithm::distance::DiscreteFrechetDistance::getFrechetDistance
(this=0x7ffd5acabca0, ca=std::vector of length 10001, capacity 10001 =
{...}, i=<optimized out>, j=13108, p=...,
q=...) at
/usr/src/debug/geos-3.13.0-2.fc42.x86_64/src/algorithm/distance/DiscreteFrechetDistance.cpp:121
#2 0x00007fe4e9471441 in
geos::algorithm::distance::DiscreteFrechetDistance::getFrechetDistance
(this=0x7ffd5acabca0, ca=std::vector of length 10001, capacity 10001 =
{...}, i=<optimized out>, j=13109, p=...,
q=...) at
/usr/src/debug/geos-3.13.0-2.fc42.x86_64/src/algorithm/distance/DiscreteFrechetDistance.cpp:121
#3 0x00007fe4e9471441 in
geos::algorithm::distance::DiscreteFrechetDistance::getFrechetDistance
(this=0x7ffd5acabca0, ca=std::vector of length 10001, capacity 10001 =
{...}, i=<optimized out>, j=13110, p=...,
q=...) at
/usr/src/debug/geos-3.13.0-2.fc42.x86_64/src/algorithm/distance/DiscreteFrechetDistance.cpp:121
#4 0x00007fe4e9471441 in
geos::algorithm::distance::DiscreteFrechetDistance::getFrechetDistance
(this=0x7ffd5acabca0, ca=std::vector of length 10001, capacity 10001 =
{...}, i=<optimized out>, j=13111, p=...,
q=...) at
/usr/src/debug/geos-3.13.0-2.fc42.x86_64/src/algorithm/distance/DiscreteFrechetDistance.cpp:121
[...]
#16894 0x00007fe4e9477b74 in
geos::algorithm::distance::DiscreteFrechetDistance::compute
(this=this at entry=0x7ffd5acabca0, discreteGeom=..., geom=...) at
/usr/include/c++/15/bits/unique_ptr.h:448
#16895 0x00007fe4e9477e2c in
geos::algorithm::distance::DiscreteFrechetDistance::distance
(this=0x7ffd5acabca0)
at
/usr/src/debug/geos-3.13.0-2.fc42.x86_64/include/geos/algorithm/distance/DiscreteFrechetDistance.h:136
#16896 geos::algorithm::distance::DiscreteFrechetDistance::distance
(g0=..., g1=..., densifyFrac=<optimized out>)
}}}
--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5906#comment:3>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-tickets
mailing list