aboutsummaryrefslogtreecommitdiff
path: root/src/pj_init.c
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2017-05-24 22:03:14 +0200
committerGitHub <noreply@github.com>2017-05-24 22:03:14 +0200
commit5f03cc76126835b81ced3d9eaa65edc0fc5d2749 (patch)
tree2ca008b22d5dd895a31acc3b7881cc8d7abf5f6a /src/pj_init.c
parentbdb02c7c5a36d501b8c856dee539a5f28db2c36f (diff)
parentadd78833eb84b40ca6b4b1d3985f287310e76c75 (diff)
downloadPROJ-5f03cc76126835b81ced3d9eaa65edc0fc5d2749.tar.gz
PROJ-5f03cc76126835b81ced3d9eaa65edc0fc5d2749.zip
Merge pull request #519 from kbevers/avoid-zero-division
Handle zero division errors reported by OSS-Fuzz
Diffstat (limited to 'src/pj_init.c')
-rw-r--r--src/pj_init.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/pj_init.c b/src/pj_init.c
index 6568033f..113cc9f4 100644
--- a/src/pj_init.c
+++ b/src/pj_init.c
@@ -626,6 +626,10 @@ pj_init_ctx(projCtx ctx, int argc, char **argv) {
PIN->to_meter = pj_strtod(s, &s);
if (*s == '/') /* ratio number */
PIN->to_meter /= pj_strtod(++s, 0);
+ if (PIN->to_meter <= 0.0) {
+ pj_ctx_set_errno( ctx, -51);
+ goto bum_call;
+ }
PIN->fr_meter = 1. / PIN->to_meter;
} else
PIN->to_meter = PIN->fr_meter = 1.;
@@ -641,6 +645,10 @@ pj_init_ctx(projCtx ctx, int argc, char **argv) {
PIN->vto_meter = pj_strtod(s, &s);
if (*s == '/') /* ratio number */
PIN->vto_meter /= pj_strtod(++s, 0);
+ if (PIN->vto_meter <= 0.0) {
+ pj_ctx_set_errno( ctx, -51);
+ goto bum_call;
+ }
PIN->vfr_meter = 1. / PIN->vto_meter;
} else {
PIN->vto_meter = PIN->to_meter;