From 6bde8881169cdf37256b0148e7d383232a4e305e Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 15 Mar 2019 23:52:33 +0100 Subject: Helmert: avoid potential division by zero Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11893 Credit to OSS Fuzz --- src/transformations/helmert.cpp | 4 ++-- test/gie/4D-API_cs2cs-style.gie | 2 +- 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 -- cgit v1.2.3