From c1a7bd366f6a4d621249f3f00ca19cff554955f1 Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Thu, 12 Apr 2012 07:21:38 +0000 Subject: [PATCH] Fix NaN from ptarray_locate_point with zero-length lines (#1772) git-svn-id: http://svn.osgeo.org/postgis/trunk@9630 b70326c6-7e19-0410-871a-916f4a2858ee --- liblwgeom/ptarray.c | 4 ++++ regress/regress_lrs.sql | 2 ++ regress/regress_lrs_expected | 1 + regress/split.sql | 7 +++++++ regress/split_expected | 2 ++ 5 files changed, 16 insertions(+) diff --git a/liblwgeom/ptarray.c b/liblwgeom/ptarray.c index 381c5112e..4b9416c0b 100644 --- a/liblwgeom/ptarray.c +++ b/liblwgeom/ptarray.c @@ -1034,6 +1034,10 @@ ptarray_locate_point(const POINTARRAY *pa, const POINT4D *p4d, double *mindistou LWDEBUGF(3, "tlen %g", tlen); + /* Location of any point on a zero-length line is 0 */ + /* See http://trac.osgeo.org/postgis/ticket/1772#comment:2 */ + if ( tlen == 0 ) return 0; + plen=0; getPoint2d_p(pa, 0, &start); for (t=0; t