diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-02-03 15:16:01 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-02-03 15:16:01 +0100 |
| commit | e121dc35abafd9a2eda01b05aa5fa13b13e6196e (patch) | |
| tree | 7f49c0ccf0c9792da32cf1fdbd6868bd6f6aded3 /test/unit/test_datum.cpp | |
| parent | 24c1272cf4397614fb7ea5502bba9258e6a8f972 (diff) | |
| download | PROJ-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.cpp | 12 |
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), |
