Skip to content
Commits on Source (3)
postgis (2.4.3+dfsg-3) UNRELEASED; urgency=medium
postgis (2.4.3+dfsg-3) unstable; urgency=medium
* Fix deprecated source override location.
* Add patch to fix FTBFS with proj 5.0.0.
(closes: #889981)
* Strip trailing whitespace from changelog file.
-- Bas Couwenberg <sebastic@debian.org> Sat, 10 Feb 2018 11:48:30 +0100
-- Bas Couwenberg <sebastic@debian.org> Sat, 17 Feb 2018 12:24:27 +0100
postgis (2.4.3+dfsg-2) unstable; urgency=medium
......
link-liblwgeom
relax-test-timing-constraints.patch
autotools-pkg-config-macro-not-cross-compilation-safe.patch
svn-r16382-pj_transform-Reset-pj_errno-after-any-error.patch
Description: pj_transform: Reset pj_errno after any error.
Author: Raúl Marín Rodríguez
Origin: https://trac.osgeo.org/postgis/changeset/16382
Bug: https://trac.osgeo.org/postgis/ticket/4016
Bug-Debian: https://bugs.debian.org/889981
--- a/liblwgeom/lwgeom_transform.c
+++ b/liblwgeom/lwgeom_transform.c
@@ -130,7 +130,7 @@ lwgeom_transform(LWGEOM *geom, projPJ in
int
point4d_transform(POINT4D *pt, projPJ srcpj, projPJ dstpj)
{
- int* pj_errno_ref;
+
POINT4D orig_pt;
/* Make a copy of the input point so we can report the original should an error occur */
@@ -142,25 +142,25 @@ point4d_transform(POINT4D *pt, projPJ sr
LWDEBUGF(4, "transforming POINT(%f %f) from '%s' to '%s'", orig_pt.x, orig_pt.y, pj_get_def(srcpj,0), pj_get_def(dstpj,0));
- /* Perform the transform */
- pj_transform(srcpj, dstpj, 1, 0, &(pt->x), &(pt->y), &(pt->z));
+ if (pj_transform(srcpj, dstpj, 1, 0, &(pt->x), &(pt->y), &(pt->z)) != 0)
+ {
+ int* pj_errno_ref = pj_get_errno_ref();
+ int pj_errno_val = *pj_errno_ref;
- /* For NAD grid-shift errors, display an error message with an additional hint */
- pj_errno_ref = pj_get_errno_ref();
+ /* Force a reset of pj_errno to avoid future errors */
+ *pj_errno_ref = 0;
- if (*pj_errno_ref != 0)
- {
- if (*pj_errno_ref == -38)
+ if (pj_errno_val == -38)
{
lwnotice("PostGIS was unable to transform the point because either no grid shift files were found, or the point does not lie within the range for which the grid shift is defined. Refer to the ST_Transform() section of the PostGIS manual for details on how to configure PostGIS to alter this behaviour.");
lwerror("transform: couldn't project point (%g %g %g): %s (%d)",
- orig_pt.x, orig_pt.y, orig_pt.z, pj_strerrno(*pj_errno_ref), *pj_errno_ref);
+ orig_pt.x, orig_pt.y, orig_pt.z, pj_strerrno(pj_errno_val), pj_errno_val);
return 0;
}
else
{
lwerror("transform: couldn't project point (%g %g %g): %s (%d)",
- orig_pt.x, orig_pt.y, orig_pt.z, pj_strerrno(*pj_errno_ref), *pj_errno_ref);
+ orig_pt.x, orig_pt.y, orig_pt.z, pj_strerrno(pj_errno_val), pj_errno_val);
return 0;
}
}