aboutsummaryrefslogtreecommitdiff
path: root/src/pj_transform.c
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2017-05-23 22:28:43 +0200
committerEven Rouault <even.rouault@spatialys.com>2017-05-23 22:28:43 +0200
commitbdb02c7c5a36d501b8c856dee539a5f28db2c36f (patch)
tree23a3a5329ca0756214e26b13c76860369d19af93 /src/pj_transform.c
parent52d5ea847b5ea712ba9f975f2c1aafe9f1798ff5 (diff)
downloadPROJ-bdb02c7c5a36d501b8c856dee539a5f28db2c36f.tar.gz
PROJ-bdb02c7c5a36d501b8c856dee539a5f28db2c36f.zip
pj_transform(): fix segfault when z == NULL and dest defn has a fwd3d
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1794 Credit to OSS Fuzz
Diffstat (limited to 'src/pj_transform.c')
-rw-r--r--src/pj_transform.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/pj_transform.c b/src/pj_transform.c
index 212d8842..f566fcfc 100644
--- a/src/pj_transform.c
+++ b/src/pj_transform.c
@@ -344,6 +344,13 @@ int pj_transform( PJ *srcdefn, PJ *dstdefn, long point_count, int point_offset,
if( dstdefn->fwd3d != NULL)
{
+ /* Three dimensions must be defined */
+ if ( z == NULL)
+ {
+ pj_ctx_set_errno( pj_get_ctx(dstdefn), PJD_ERR_GEOCENTRIC);
+ return PJD_ERR_GEOCENTRIC;
+ }
+
for( i = 0; i < point_count; i++ )
{
XYZ projected_loc;