diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-03-15 23:52:33 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-03-16 10:10:03 +0100 |
| commit | 6bde8881169cdf37256b0148e7d383232a4e305e (patch) | |
| tree | 27092b5af4414fcc7b2695a6cebbac9dc314497e | |
| parent | 1c4988d6be1cce93c866df98786d2eca3a244816 (diff) | |
| download | PROJ-6bde8881169cdf37256b0148e7d383232a4e305e.tar.gz PROJ-6bde8881169cdf37256b0148e7d383232a4e305e.zip | |
Helmert: avoid potential division by zero
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11893
Credit to OSS Fuzz
| -rw-r--r-- | src/transformations/helmert.cpp | 4 | ||||
| -rw-r--r-- | test/gie/4D-API_cs2cs-style.gie | 2 | ||||
| -rw-r--r-- | test/gie/more_builtins.gie | 5 |
3 files changed, 8 insertions, 3 deletions
diff --git a/src/transformations/helmert.cpp b/src/transformations/helmert.cpp index 034f76f4..c00fad2f 100644 --- a/src/transformations/helmert.cpp +++ b/src/transformations/helmert.cpp @@ -567,14 +567,14 @@ PJ *TRANSFORMATION(helmert, 0) { if (pj_param_exists (P->params, "theta")) { P->left = PJ_IO_UNITS_PROJECTED; P->right = PJ_IO_UNITS_PROJECTED; + P->fwd = helmert_forward; + P->inv = helmert_reverse; } P->fwd4d = helmert_forward_4d; P->inv4d = helmert_reverse_4d; P->fwd3d = helmert_forward_3d; P->inv3d = helmert_reverse_3d; - P->fwd = helmert_forward; - P->inv = helmert_reverse; Q = (struct pj_opaque_helmert *)P->opaque; diff --git a/test/gie/4D-API_cs2cs-style.gie b/test/gie/4D-API_cs2cs-style.gie index bcdc256f..424501cc 100644 --- a/test/gie/4D-API_cs2cs-style.gie +++ b/test/gie/4D-API_cs2cs-style.gie @@ -185,7 +185,7 @@ operation proj=pipeline k_0=1 x_0=2600000 y_0=1200000 ellps=bessel units=m ------------------------------------------------------------------------------- tolerance 20 cm -accept 7.438632495 46.951082877 +accept 7.438632495 46.951082877 0 expect 2600000.0 1200000.0 ------------------------------------------------------------------------------- diff --git a/test/gie/more_builtins.gie b/test/gie/more_builtins.gie index d1c978a3..e16443d4 100644 --- a/test/gie/more_builtins.gie +++ b/test/gie/more_builtins.gie @@ -433,6 +433,11 @@ expect failure errno invalid_arg operation proj=helmert transpose expect failure errno invalid_arg +# Use of 2D Helmert interface with 3D Helmert setup +operation +proj=ob_tran +o_proj=helmert +o_lat_p=0 +direction inverse +accept 0 0 +expect failure errno 22 ------------------------------------------------------------------------------- Molodensky-Badekas from IOGP Guidance 7.2, Transformation from La Canoa to REGVEN |
