]> granicus.if.org Git - postgis/commitdiff
Fix undefined behaviour in raster intersection
authorRaúl Marín Rodríguez <rmrodriguez@carto.com>
Wed, 21 Nov 2018 14:13:03 +0000 (14:13 +0000)
committerRaúl Marín Rodríguez <rmrodriguez@carto.com>
Wed, 21 Nov 2018 14:13:03 +0000 (14:13 +0000)
References #4249

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

NEWS
raster/rt_core/rt_spatial_relationship.c

diff --git a/NEWS b/NEWS
index 634821baf9d9f6aec8b0ec3815117731caa290e7..3ce34a43ba8355f95c0f665de21aed34b03d24c2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,7 @@ XXXX/XX/XX
 
  * Bug fixes *
   - #4247, Avoid undefined behaviour in next_float functions (Raúl Marín)
+  - #4249, Fix undefined behaviour in raster intersection (Raúl Marín)
 
 PostGIS 2.5.1
 2018/11/18
index 60db67349bf6918bf770f3bfe930298b0b7ee0c6..c3afd203b146918dda31656f623d7c45132855cc 100644 (file)
@@ -715,11 +715,9 @@ int rt_raster_intersects_algorithm(
                gt2
        );
 
-       /* parallel vertically */
-       if (FLT_EQ(line1[X2] - line1[X1], 0.) && FLT_EQ(line2[X2] - line2[X1], 0.))
-               byHeight = 0;
-       /* parallel */
-       else if (FLT_EQ(((line1[Y2] - line1[Y1]) / (line1[X2] - line1[X1])), ((line2[Y2] - line2[Y1]) / (line2[X2] - line2[X1]))))
+       /* Parallel lines */
+       if (FLT_EQ(((line1[X2] - line1[X1]) * (line2[Y2] - line2[Y1])),
+                  ((line2[X2] - line2[X1]) * (line1[Y2] - line1[Y1]))))
                byHeight = 0;
 
        if (byHeight)