diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-09-05 18:01:42 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-09-05 18:01:42 +0200 |
| commit | 9c38babea4650a20ec94eff9ab644f5c84c89874 (patch) | |
| tree | a48db5c76293b1acd769193cfe80294f68b079e6 /src/proj_internal.h | |
| parent | 06578ae686d85c1e7b0fff663d25a8e394c67f19 (diff) | |
| download | PROJ-9c38babea4650a20ec94eff9ab644f5c84c89874.tar.gz PROJ-9c38babea4650a20ec94eff9ab644f5c84c89874.zip | |
PROJStringParser::createFromPROJString(): avoid potential infinite recursion (fixes #1574)
The exact circumstances are a bit difficult to explain, but they involve
using a non-default context, enabling proj_context_use_proj4_init_rules() on it,
using proj_create(ctxt, "+init=epsg:XXXX +type=crs"), whereas PROJ_LIB is
defined to a directory that has a 'epsg' file in it.
Diffstat (limited to 'src/proj_internal.h')
| -rw-r--r-- | src/proj_internal.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/proj_internal.h b/src/proj_internal.h index 761746c1..4a126e98 100644 --- a/src/proj_internal.h +++ b/src/proj_internal.h @@ -706,7 +706,7 @@ struct projCtx_t { const char* (*file_finder) (PJ_CONTEXT *, const char*, void* user_data) = nullptr; void* file_finder_user_data = nullptr; - std::string curStringInCreateFromPROJString{}; + int projStringParserCreateFromPROJStringRecursionCounter = 0; // to avoid potential infinite recursion in PROJStringParser::createFromPROJString() projCtx_t() = default; projCtx_t(const projCtx_t&); |
