aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-07-13Implemented proj_create_crs_to_crs()Kristian Evers
2017-07-10Introducing the Molodensky transform (#541)Kristian Evers
2017-07-07obs_api revision and improvements: new namespace etc. (#530)Thomas Knudsen
* obs_api revision and improvements: new namespace etc. * Minor corrections: use unused functions, add missing prototype, added fwd/invcoord to PJ * Minor correction: MSVC barfs on va_arg type specification. Trying once more with added parens * Reverting paren correction, which appears to be a non-solution * Significant improvements to the OBS_API, plus a number of corrections, mostly in test code, to reflect API changes * Added two missing prototypes * Adding the proj_transform function and some related checks * Improvements to proj_transform etc. based on suggestions from Even Rouault * Reducing the libc include footprint of proj.h - again based on suggestions from Even Rouault * A few minor corrections * Eliminate a MSVC warning about non-initialized usage. Not an actual issue, as another check has locked the path, but at least this should calm down MSVC * Improved support for the errno reset/restore paradigm * Introduced the internal header proj_internal.h; Moved most non-API stuff from pj_obs_api.c to pj_internal.c * Adding proj_internal.h to HEADERS_LIBPROJ to solve build problems * Correcting a few pj...proj blunders in PJ_pipeline.c * Correcting a few additional blunders in PJ_pipeline.c * Changed angle-brackets to quotation marks in includes of proj_internal.h * Some minor build system repairs * Some PJ_CONTEXT usage simplifications following suggestions by Kristian Evers @kbevers * Added version numbering to proj.h - Fixes #529 * remove proj_errno_restore macro, provide function implementation * Add proj_get_definition. Fixes #538 * Added library specific deallocator proj_buffer_free, eliminating a potential cross heap issues on Windows. Thx to Even Rouault for spotting this * Got rid of a meaningless cast in proj_buffer_free * Added some missing functions to proj.def (again spotted by @rouault); removed some not-yet-implemented material from proj.h * Renamed proj_get_definition/proj_buffer_free to proj_definition_create/proj_definition_destroy, for symmetry and clarity * Renaming the definition handlers to proj_definition_retrieve / proj_free * Renaming proj_free to proj_release
2017-07-05Merge pull request #527 from kbevers/issue-526Kristian Evers
Correct calculation of meridian convergence for non-conformal projections
2017-07-05Respect -r flag when calling proj with -V. Fixes #184.Kristian Evers
2017-07-05Let pj_init() expand more than one +init argument.Kristian Evers
With the introduction of transformation pipelines it is now a valid use case to have more than one +init argument in a proj string. This commit makes sure that all +init's are expanded. Added test case to PJ_pipeline.c for use of multiple +init's in a proj-string. Fixes #479.
2017-06-22Use *pj_get_errno_ref() instead of pj_errno because it seems pj_errno is not ↵Kristian Evers
set correctly on some versions of VS. Fixes #484.
2017-06-21Correct calculation of meridian convergence for non-conformal projections. ↵Kristian Evers
Fixes #526.
2017-06-21Reformatting files before making functional changes. Getting rid of old ↵Kristian Evers
coding style and mixed whitespace.
2017-06-13PJ_vgridshift.c: fix memleak in initialization if grid loading failEven Rouault
When gridloading fail for one grid, but return a gridlist, we leak the grid list array. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2230. Credit to OSS Fuzz
2017-06-09PJ_igh.c: assign ctx of igh projection to its children projection objects. ↵Even Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2167. Credit to OSS Fuzz
2017-06-08PJ_krovak.c: avoid infinite loop in inverse method. Credit to OSS FuzzEven Rouault
2017-06-08PJ_urm5.c: fix memory leak in destructor. Credit to OSS FuzzEven Rouault
2017-06-08Add upper limit to number of iterations for all (documented as such) ↵Even Rouault
computations using Newton-Raphson. Credit to OSS Fuzz
2017-06-08PJ_comill.c: avoid infinite loop in inverse method. Credit to OSS FuzzEven Rouault
2017-06-08pj_gridlist_from_nadgrids(): fix memory leak in error code path. Credit to ↵Even Rouault
OSS Fuzz
2017-06-08PJ_igh.c: fix memory leak. Credit to OSS FuzzEven Rouault
2017-06-02Disallow usage of m<0 and n<0 in gn_sinu.Kristian Evers
Negative values of m and n are not valid. Can for certain values of m and n result in zero division. An error is raised at projection setup if m or n is negative. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1836 Credit to OSS-Fuzz.
2017-06-02Merge pull request #520 from QuLogic/macro-deletionKristian Evers
Remove confusing macros.
2017-06-01Fix memory leaks. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2000. Credit to OSS Fuzz
2017-06-01Disallow +s=0 when in 4-param. mode.Kristian Evers
Avoids zero-division in PJ_helmert.c Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1956 Credit to OSS-Fuzz.
2017-05-31pj_apply_vgridshift(): avoid integer overflow / read heap-buffer-overflow. ↵Even Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1950. Credit to OSS Fuzz
2017-05-30PJ_ob_tran: avoid infinite recursion on +proj=ob_tran +o_proj=ob_tranEven Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1932 Credit to OSS Fuzz
2017-05-30PJ_ob_tran: fix crash if underlying projection has no fwd methodEven Rouault
For example +proj=ob_tran +o_proj=hgridshift Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1927 Credit to OSS Fuzz
2017-05-30catalog: memory leak and crashes related fixesEven Rouault
* pj_transform() crashes on a catalog that has no matching grid * pj_free() and pj_gc_unloadall() badly interact. No longer try to free the catalog object in pj_free(). That is the job of pj_gc_unloadall() * Fix memory leaks in pj_gc_readcatalog() and pj_gc_unloadall() Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1923 Credit to OSS Fuzz.
2017-05-29PJ_imw_p.c: fix infinite loop in e_inverse() and memory leak.Even Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1873 Credit to OSS Fuzz
2017-05-29PJ_ob_tran.c: fix memory leak in freeup_new() function. Found when running ↵Even Rouault
'make check' on a build with -fsanitize=undefined,address
2017-05-29Fix undefined behaviour on memcpy() when provided with NULL source. Found ↵Even Rouault
when running 'make check' on a build with -fsanitize=undefined,address
2017-05-29pj_compare_datums(): fix null pointer dereference.Even Rouault
Can happen when any of the src/dest projection has a +catalog parameter. Fix a memory leak on catalog_name as well. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1799 Credit to OSS Fuzz
2017-05-28Add commentEven Rouault
2017-05-24Remove confusing macros.Elliott Sales de Andrade
The upper-case macro `VAR` casts the lower-case variable `var` to an expected type, but that usage obfuscates the variables to the casual reader. This is especially prevalent in the allocation function in which `var` is the correct type already, so both `var` and `VAR` are valid *and* in use. In any case, for those functions that don't obtain `var` in the correct type from their parameters, it's much simpler to just case once at the beginning.
2017-05-24Merge pull request #519 from kbevers/avoid-zero-divisionKristian Evers
Handle zero division errors reported by OSS-Fuzz
2017-05-24Avoid zero div. in pj_Convert_Geocentric_To_Geodetic().Kristian Evers
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1800 Credit to OSS-Fuzz.
2017-05-24Avoid zero division in pj_gauss_ini().Kristian Evers
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1795 Credit to OSS-Fuzz.
2017-05-24Avoid division by zero in pj_ell_set().Kristian Evers
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1787 Credit to OSS-Fuzz.
2017-05-24Avoid zero division in PJ_eck3.c s_inverser().Kristian Evers
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1789 Credit to OSS-Fuzz.
2017-05-24Avoid zero division in PJ_aea.c setup().Kristian Evers
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1791 Credit to OSS-Fuzz.
2017-05-24Mixed whitespace. Replace tabs with spaces.Kristian Evers
2017-05-24Avoid zero division in pj_init_ctx().Kristian Evers
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1793 Credit to OSS-Fuzz.
2017-05-23pj_transform(): fix segfault when z == NULL and dest defn has a fwd3dEven Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1794 Credit to OSS Fuzz
2017-05-23pj_open_lib_ex(): protect against write stack buffer overflows.Even Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1796 Credit to OSS Fuzz
2017-05-23Merge pull request #518 from rouault/fix_ossfuzz_1809Even Rouault
Avoid potentially very long loop when normalizing longitudes around long_wrap_center
2017-05-23Avoid zero division in PJ_stere e_forward().Kristian Evers
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1797 Credit to OSS-Fuzz.
2017-05-23Avoid possible zero division in pj_qsfn().Kristian Evers
Fixes https://oss-fuzz.com/v2/testcase-detail/5224053675655168?noredirect=1 Credit to OSS-Fuzz
2017-05-23Fix possible zero division.Kristian Evers
For some extreme values of eccentricity a zero divison can occur. In those rare cases we return HUGE_VAL to indicate something went wrong while still returning a defined value. Credit to OSS Fuzz. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1801
2017-05-23Avoid potentially very long loop when normalizing longitudes around ↵Even Rouault
long_wrap_center Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1809 Credit to OSS Fuzz
2017-05-22PJ_wag3: Fix memory leak of opaque memberEven Rouault
Credit to OSS Fuzz
2017-05-22pj_init(): fix memory leak of pj->geodEven Rouault
Whe PIN = (*proj)(PIN) fails, it doesn't free the geod member. So allocate it afterwards. Credit to OSS Fuzz
2017-05-19Unit conversion pseudo-projection.Kristian Evers
A pseudo-projection that can be used to convert units of input and output data. Primarily useful in pipelines. Unit conversion is performed by means of a pivot unit. The pivot unit for distance units are the meter and for time we use the modified julian date. A time unit conversion is performed like Unit A -> Modified Julian date -> Unit B distance units are converted in the same manner, with meter being the central unit. The modified Julian date is chosen as the pivout unit since it has a fairly high precision, goes sufficiently long backwards in time, has no danger of hitting the upper limit in the near future and it is a fairly common time unit in astronomy and geodesy. Note that we are using the Julian date and not day. The difference being that the latter is defined as an integer and is thus limited to days in resolution. This approach has been extended wherever it makes sense, e.g. the GPS week unit also has a fractional part that makes it possible to determine the day, hour and minute of an observation. In- and output units are controlled with the parameters +xy_in, +xy_out, +z_in, +z_out, +t_in and +t_out where xy denotes horizontal units, z vertical units and t time units. Distance units are converted similar to what is already in use in PROJ.4. To ease usage of the already defined conversion factors a new column with the factors defined as doubles has been added to the pj_units array. This simplifies the code significantly, since parsing the defined strings can be avoided.
2017-05-17Check validity of +n parameter in urm5 projection and fix selftest.Adam Wulkiewicz