diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-09-17 19:41:15 +0000 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-09-17 19:41:15 +0000 |
| commit | 39ed5dda1722c55248399614ffd6a97668e43b03 (patch) | |
| tree | 3e228fb164472d9e5b2020d4f2afb35ac1c340b6 /src | |
| parent | b66081ceef1481340017ba78fcf4b1dcc2176332 (diff) | |
| download | PROJ-39ed5dda1722c55248399614ffd6a97668e43b03.tar.gz PROJ-39ed5dda1722c55248399614ffd6a97668e43b03.zip | |
helmert: validate scale parameter to avoid later division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16106
Diffstat (limited to 'src')
| -rw-r--r-- | src/transformations/helmert.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/transformations/helmert.cpp b/src/transformations/helmert.cpp index 63785ea5..7a3e64d0 100644 --- a/src/transformations/helmert.cpp +++ b/src/transformations/helmert.cpp @@ -612,6 +612,8 @@ PJ *TRANSFORMATION(helmert, 0) { /* Scale */ if (pj_param (P->ctx, P->params, "ts").i) { Q->scale_0 = pj_param (P->ctx, P->params, "ds").f; + if( Q->scale_0 <= -1.0e6 ) + return pj_default_destructor (P, PJD_ERR_INVALID_SCALE); if (pj_param (P->ctx, P->params, "ttheta").i && Q->scale_0 == 0.0) return pj_default_destructor (P, PJD_ERR_INVALID_SCALE); } |
