[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