aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/io.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-04-05 12:54:56 +0200
committerEven Rouault <even.rouault@spatialys.com>2019-04-05 12:54:56 +0200
commit3aed84243a8188b54d19d7e9c26028796eb398b0 (patch)
treedda3a21057e3f823c56d0247b5241428518c406f /src/iso19111/io.cpp
parent70ed3efe60718be74d73d92ec2d121e2de268e53 (diff)
downloadPROJ-3aed84243a8188b54d19d7e9c26028796eb398b0.tar.gz
PROJ-3aed84243a8188b54d19d7e9c26028796eb398b0.zip
_buildUnit(): avoid later division by zero
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14055 Credit to OSS Fuzz
Diffstat (limited to 'src/iso19111/io.cpp')
-rw-r--r--src/iso19111/io.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp
index 51fda1c1..360d55a2 100644
--- a/src/iso19111/io.cpp
+++ b/src/iso19111/io.cpp
@@ -6091,6 +6091,9 @@ static UnitOfMeasure _buildUnit(const LinearUnitDesc *unitsMatch) {
static UnitOfMeasure _buildUnit(double to_meter_value) {
// TODO: look-up in EPSG catalog
+ if (to_meter_value == 0) {
+ throw ParsingException("invalid unit value");
+ }
return UnitOfMeasure("unknown", to_meter_value,
UnitOfMeasure::Type::LINEAR);
}