diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-04-05 12:54:56 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-04-05 12:54:56 +0200 |
| commit | 3aed84243a8188b54d19d7e9c26028796eb398b0 (patch) | |
| tree | dda3a21057e3f823c56d0247b5241428518c406f /src/iso19111/io.cpp | |
| parent | 70ed3efe60718be74d73d92ec2d121e2de268e53 (diff) | |
| download | PROJ-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.cpp | 3 |
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); } |
