aboutsummaryrefslogtreecommitdiff
path: root/test/unit
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-09-03 22:48:41 +0200
committerEven Rouault <even.rouault@spatialys.com>2021-09-03 22:49:12 +0200
commit126991dea06eb7160fe572b147f8a74a306b5c58 (patch)
tree68fb2d4f930a44d011aabec81b4c8b57ba8126bc /test/unit
parent24baa80540947808a3fb76457c918415b3ed0ab8 (diff)
downloadPROJ-126991dea06eb7160fe572b147f8a74a306b5c58.tar.gz
PROJ-126991dea06eb7160fe572b147f8a74a306b5c58.zip
pj_obj_create(): avoid passing invalid ellipsoid parameters ot pj_calc_ellipsoid_params(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31964
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/test_c_api.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index 44dceb97..721c54d5 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -346,6 +346,32 @@ TEST_F(CApi, proj_create_from_wkt) {
ObjectKeeper keeper(obj);
EXPECT_NE(obj, nullptr);
}
+ {
+ // Invalid ellipsoidal parameter (semi major axis)
+ auto obj = proj_create_from_wkt(
+ m_ctxt,
+ "GEOGCS[\"test\",\n"
+ " DATUM[\"test\",\n"
+ " SPHEROID[\"test\",0,298.257223563,\"unused\"]],\n"
+ " PRIMEM[\"Greenwich\",0],\n"
+ " UNIT[\"degree\",0.0174532925199433]]",
+ nullptr, nullptr, nullptr);
+ ObjectKeeper keeper(obj);
+ EXPECT_EQ(obj, nullptr);
+ }
+ {
+ // Invalid ellipsoidal parameter (inverse flattening)
+ auto obj = proj_create_from_wkt(
+ m_ctxt,
+ "GEOGCS[\"test\",\n"
+ " DATUM[\"test\",\n"
+ " SPHEROID[\"test\",6378137,-1,\"unused\"]],\n"
+ " PRIMEM[\"Greenwich\",0],\n"
+ " UNIT[\"degree\",0.0174532925199433]]",
+ nullptr, nullptr, nullptr);
+ ObjectKeeper keeper(obj);
+ EXPECT_EQ(obj, nullptr);
+ }
}
// ---------------------------------------------------------------------------