aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-09-20 18:50:29 +0200
committerEven Rouault <even.rouault@spatialys.com>2021-09-20 18:50:29 +0200
commit4ff0aea1879b594dd6317edc50fe1fea34974f2f (patch)
treea2d6a644ab573c4599aa85f9caffdecbe587a4a6 /src/iso19111
parent5f3f02163e9611cec7713b1885ed61d4823946a1 (diff)
downloadPROJ-4ff0aea1879b594dd6317edc50fe1fea34974f2f.tar.gz
PROJ-4ff0aea1879b594dd6317edc50fe1fea34974f2f.zip
Conversion::inverse(): avoid harmless division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39033
Diffstat (limited to 'src/iso19111')
-rw-r--r--src/iso19111/operation/conversion.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/iso19111/operation/conversion.cpp b/src/iso19111/operation/conversion.cpp
index 3db62a7d..9927892d 100644
--- a/src/iso19111/operation/conversion.cpp
+++ b/src/iso19111/operation/conversion.cpp
@@ -2493,6 +2493,9 @@ CoordinateOperationNNPtr Conversion::inverse() const {
if (methodEPSGCode == EPSG_CODE_METHOD_CHANGE_VERTICAL_UNIT) {
const double convFactor = parameterValueNumericAsSI(
EPSG_CODE_PARAMETER_UNIT_CONVERSION_SCALAR);
+ if (convFactor == 0) {
+ throw InvalidOperation("Invalid conversion factor");
+ }
auto conv = createChangeVerticalUnit(
createPropertiesForInverse(this, false, false),
common::Scale(1.0 / convFactor));