aboutsummaryrefslogtreecommitdiff
path: root/src/projections/geos.cpp
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2019-05-06 07:10:56 +0200
committerGitHub <noreply@github.com>2019-05-06 07:10:56 +0200
commitf642aadbbcd816a7ae3173ea954c5d5562a11ba4 (patch)
treed5a653a6a306ad4c7fc7bc1586c20fac6d48f627 /src/projections/geos.cpp
parentc5346c7c25ca9fe281df39eaeefebc1aa4009266 (diff)
parent96af6dbf69dd38421916438702be80f73276d879 (diff)
downloadPROJ-f642aadbbcd816a7ae3173ea954c5d5562a11ba4.tar.gz
PROJ-f642aadbbcd816a7ae3173ea954c5d5562a11ba4.zip
geos: avoid division by zero (#1451)
geos: avoid division by zero
Diffstat (limited to 'src/projections/geos.cpp')
-rw-r--r--src/projections/geos.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/projections/geos.cpp b/src/projections/geos.cpp
index 7c15f22a..5b3e594c 100644
--- a/src/projections/geos.cpp
+++ b/src/projections/geos.cpp
@@ -202,8 +202,7 @@ PJ *PROJECTION(geos) {
return pj_default_destructor (P, ENOMEM);
P->opaque = Q;
- if ((Q->h = pj_param(P->ctx, P->params, "dh").f) <= 0.)
- return pj_default_destructor (P, PJD_ERR_H_LESS_THAN_ZERO);
+ Q->h = pj_param(P->ctx, P->params, "dh").f;
sweep_axis = pj_param(P->ctx, P->params, "ssweep").s;
if (sweep_axis == nullptr)
@@ -220,6 +219,8 @@ PJ *PROJECTION(geos) {
}
Q->radius_g_1 = Q->h / P->a;
+ if ( Q->radius_g_1 <= 0 || Q->radius_g_1 > 1e10 )
+ return pj_default_destructor (P, PJD_ERR_INVALID_H);
Q->radius_g = 1. + Q->radius_g_1;
Q->C = Q->radius_g * Q->radius_g - 1.0;
if (P->es != 0.0) {