diff options
| author | Kristian Evers <kristianevers@gmail.com> | 2017-05-24 22:03:14 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-05-24 22:03:14 +0200 |
| commit | 5f03cc76126835b81ced3d9eaa65edc0fc5d2749 (patch) | |
| tree | 2ca008b22d5dd895a31acc3b7881cc8d7abf5f6a /src/pj_init.c | |
| parent | bdb02c7c5a36d501b8c856dee539a5f28db2c36f (diff) | |
| parent | add78833eb84b40ca6b4b1d3985f287310e76c75 (diff) | |
| download | PROJ-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.c | 8 |
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; |
