diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-12-13 00:38:18 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-12-13 00:38:18 +0100 |
| commit | c86bd69147a289ead837e5400776393bd9072a82 (patch) | |
| tree | 45487e2f5dbb2d0d2272b9a9ab3236c6aa20fca4 /src/iso19111/io.cpp | |
| parent | 5b4e60f4f9ec353f79fba01790a3b945c50cab8e (diff) | |
| download | PROJ-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.cpp | 4 |
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)); |
