aboutsummaryrefslogtreecommitdiff
path: root/src/proj_internal.h
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-09-05 18:01:42 +0200
committerEven Rouault <even.rouault@spatialys.com>2019-09-05 18:01:42 +0200
commit9c38babea4650a20ec94eff9ab644f5c84c89874 (patch)
treea48db5c76293b1acd769193cfe80294f68b079e6 /src/proj_internal.h
parent06578ae686d85c1e7b0fff663d25a8e394c67f19 (diff)
downloadPROJ-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.h2
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&);