aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ell_set.cpp4
-rw-r--r--test/gie/ellipsoid.gie3
2 files changed, 7 insertions, 0 deletions
diff --git a/src/ell_set.cpp b/src/ell_set.cpp
index 71746895..386b4f46 100644
--- a/src/ell_set.cpp
+++ b/src/ell_set.cpp
@@ -399,6 +399,10 @@ static int ellps_spherification (PJ *P) {
break;
}
+ if (P->a <= 0.) {
+ return proj_errno_set(P, PJD_ERR_MAJOR_AXIS_NOT_GIVEN);
+ }
+
/* Clean up the ellipsoidal parameters to reflect the sphere */
P->es = P->e = P->f = 0;
P->rf = HUGE_VAL;
diff --git a/test/gie/ellipsoid.gie b/test/gie/ellipsoid.gie
index 2a6d02a5..2a7bdd60 100644
--- a/test/gie/ellipsoid.gie
+++ b/test/gie/ellipsoid.gie
@@ -67,6 +67,9 @@ expect failure errno major_axis_not_given
operation proj=merc +R=0
expect failure errno major_axis_not_given
+operation +proj=merc +R_a +a=2 +f=2
+expect failure errno major_axis_not_given
+
operation
expect failure
operation cobra