From 3ff04e06a2ba9d40ead861be0ebdb22af45eaa0d Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 19 Apr 2019 14:21:42 +0200 Subject: Inverse cart: better deal with x,y,z equal of very close to zero In that case, for a non-spherical ellipsoid, a phi = 180deg was returned, which caused a division by zero in the foward path of moll.cpp Fixup the latitude to be 0 when that happens. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14348 Credit to OSS Fuzz --- test/gie/more_builtins.gie | 59 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) (limited to 'test') diff --git a/test/gie/more_builtins.gie b/test/gie/more_builtins.gie index ba146b06..75ba55e9 100644 --- a/test/gie/more_builtins.gie +++ b/test/gie/more_builtins.gie @@ -794,5 +794,64 @@ expect 25 25 25 25 operation +proj=aeqd +R=1 +lat_0=91 expect failure errno lat_larger_than_90 +------------------------------------------------------------------------------- +# cart +------------------------------------------------------------------------------- + +operation +proj=cart +ellps=GRS80 +tolerance 0.001mm + +accept 0 0 0 +expect 6378137 0 0 + +accept 0 90 0 +expect 0 0 6356752.314140347 + +accept 0 -90 0 +expect 0 0 -6356752.314140347 + +accept 90 0 0 +expect 0 6378137 0 + +accept -90 0 0 +expect 0 -6378137 0 + +accept 180 0 0 +expect -6378137 0 0 + +accept -180 0 0 +expect -6378137 0 0 + +# Center of Earth ! +accept 0 0 -6378137 +expect 0 0 0 + +accept 0 90 -6356752.314140347 +expect 0 0 0 + +direction inverse + +accept 6378137 0 0 +expect 0 0 0 + +accept 0 0 6356752.314140347 +expect 0 90 0 + +accept 0 0 -6356752.314140347 +expect 0 -90 0 + +accept 0 6378137 0 +expect 90 0 0 + +accept 0 -6378137 0 +expect -90 0 0 + +accept -6378137 0 0 +expect 180 0 0 + +# Center of Earth ! +accept 0 0 0 +expect 0 0 -6378137 + -- cgit v1.2.3