]> granicus.if.org Git - postgis/commitdiff
lwpoly_construct_circle: Avoid division by zero (Raúl Marín Rodríguez)
authorPaul Ramsey <pramsey@cleverelephant.ca>
Fri, 26 Jan 2018 14:56:52 +0000 (14:56 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Fri, 26 Jan 2018 14:56:52 +0000 (14:56 +0000)
References #4003

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

NEWS
liblwgeom/lwpoly.c

diff --git a/NEWS b/NEWS
index 0596f779ac7c4e3ea8f0e5adbc95789b510e59f3..c7e42d0e8ca35d57587ba8647c3da7ec895a911c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,8 @@ PostGIS 2.3.7dev
   * Bug Fixes and Enhancements
 
   - #3978, Fix KNN when upgrading from 2.1 or older (Sandro Santilli)
+  - #4003, lwpoly_construct_circle: Avoid division by zero (Raúl Marín Rodríguez)
+
 
 PostGIS 2.3.6
 2018/01/17
index 293133060d5e472dac7f1367b7166dd555c80d76..be4354ec9aab3aa186f3d14a722c24e2e3995338 100644 (file)
@@ -98,13 +98,13 @@ LWPOLY*
 lwpoly_construct_circle(int srid, double x, double y, double radius, uint32_t segments_per_quarter, char exterior)
 {
        const int segments = 4*segments_per_quarter;
-       const double theta = 2*M_PI / segments;
+       double theta;
        LWPOLY *lwpoly;
        POINTARRAY *pa;
        POINT4D pt;
        uint32_t i;
 
-       if (segments_per_quarter < 1)
+       if (segments_per_quarter == 0)
        {
                lwerror("Need at least one segment per quarter-circle.");
                return NULL;
@@ -116,6 +116,8 @@ lwpoly_construct_circle(int srid, double x, double y, double radius, uint32_t se
                return NULL;
        }
 
+       theta = 2*M_PI / segments;
+
        lwpoly = lwpoly_construct_empty(srid, LW_FALSE, LW_FALSE);
        pa = ptarray_construct_empty(LW_FALSE, LW_FALSE, segments + 1);