aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_datum.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-02-03 15:16:01 +0100
committerEven Rouault <even.rouault@spatialys.com>2019-02-03 15:16:01 +0100
commite121dc35abafd9a2eda01b05aa5fa13b13e6196e (patch)
tree7f49c0ccf0c9792da32cf1fdbd6868bd6f6aded3 /test/unit/test_datum.cpp
parent24c1272cf4397614fb7ea5502bba9258e6a8f972 (diff)
downloadPROJ-e121dc35abafd9a2eda01b05aa5fa13b13e6196e.tar.gz
PROJ-e121dc35abafd9a2eda01b05aa5fa13b13e6196e.zip
Avoid division by zero in Ellipsoid::computeSemiMinorAxis(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12867. Credit to OSS Fuzz. master only
Diffstat (limited to 'test/unit/test_datum.cpp')
-rw-r--r--test/unit/test_datum.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/unit/test_datum.cpp b/test/unit/test_datum.cpp
index 18cf244a..c6ccf5cf 100644
--- a/test/unit/test_datum.cpp
+++ b/test/unit/test_datum.cpp
@@ -127,6 +127,18 @@ TEST(datum, ellipsoid_from_inverse_flattening) {
// ---------------------------------------------------------------------------
+TEST(datum, ellipsoid_from_null_inverse_flattening) {
+
+ auto ellipsoid = Ellipsoid::createFlattenedSphere(
+ PropertyMap(), Length(6378137), Scale(0));
+ EXPECT_FALSE(ellipsoid->inverseFlattening().has_value());
+ EXPECT_FALSE(ellipsoid->semiMinorAxis().has_value());
+ EXPECT_FALSE(ellipsoid->semiMedianAxis().has_value());
+ EXPECT_TRUE(ellipsoid->isSphere());
+}
+
+// ---------------------------------------------------------------------------
+
TEST(datum, ellipsoid_from_semi_minor_axis) {
auto ellipsoid = Ellipsoid::createTwoAxis(PropertyMap(), Length(6378137),