aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/io.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-12-13 00:38:18 +0100
committerEven Rouault <even.rouault@spatialys.com>2019-12-13 00:38:18 +0100
commitc86bd69147a289ead837e5400776393bd9072a82 (patch)
tree45487e2f5dbb2d0d2272b9a9ab3236c6aa20fca4 /src/iso19111/io.cpp
parent5b4e60f4f9ec353f79fba01790a3b945c50cab8e (diff)
downloadPROJ-c86bd69147a289ead837e5400776393bd9072a82.tar.gz
PROJ-c86bd69147a289ead837e5400776393bd9072a82.zip
WKTParser: fix assertion that can trigger on corrupted input. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19367
Diffstat (limited to 'src/iso19111/io.cpp')
-rw-r--r--src/iso19111/io.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp
index e0e6152a..b57d1de5 100644
--- a/src/iso19111/io.cpp
+++ b/src/iso19111/io.cpp
@@ -2683,7 +2683,9 @@ WKTParser::Private::buildGeodeticCRS(const WKTNodeNNPtr &node) {
auto cs = buildCS(csNode, node, angularUnit);
auto ellipsoidalCS = nn_dynamic_pointer_cast<EllipsoidalCS>(cs);
if (ellipsoidalCS) {
- assert(!ci_equal(nodeName, WKTConstants::GEOCCS));
+ if (ci_equal(nodeName, WKTConstants::GEOCCS)) {
+ throw ParsingException("ellipsoidal CS not expected in GEOCCS");
+ }
try {
auto crs = GeographicCRS::create(props, datum, datumEnsemble,
NN_NO_CHECK(ellipsoidalCS));