mirror of
https://github.com/zeek/zeek.git
synced 2025-10-09 01:58:20 +00:00
Merge remote-tracking branch 'origin/topic/jsiwek/zeekenv-static-local-fix'
* origin/topic/jsiwek/zeekenv-static-local-fix: Fix potential thread safety issue with zeekenv util function
This commit is contained in:
commit
418ab0e33a
3 changed files with 28 additions and 17 deletions
11
CHANGES
11
CHANGES
|
@ -1,4 +1,15 @@
|
||||||
|
|
||||||
|
2.6-591 | 2019-07-11 13:29:28 -0700
|
||||||
|
|
||||||
|
* Fix potential thread safety issue with zeekenv util function
|
||||||
|
|
||||||
|
Observed segfault accessing the local static std::map of zeekenv() from
|
||||||
|
a logging thread, but only in non-debug builds using Apple/Clang
|
||||||
|
compiler, not in a debug build or GCC. Don't quite get this behavior
|
||||||
|
since static local variable initialization is supposed to be thread-safe
|
||||||
|
since C++11, but moving to a global static works and is "more efficient"
|
||||||
|
anyway since there's no longer any run-time overhead. (Jon Siwek, Corelight)
|
||||||
|
|
||||||
2.6-589 | 2019-07-11 13:14:52 -0700
|
2.6-589 | 2019-07-11 13:14:52 -0700
|
||||||
|
|
||||||
* GH-421: fix bugs/regressions in DNP3 analyzer (Hui Lin)
|
* GH-421: fix bugs/regressions in DNP3 analyzer (Hui Lin)
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
2.6-589
|
2.6-591
|
||||||
|
|
|
@ -1842,9 +1842,7 @@ void bro_strerror_r(int bro_errno, char* buf, size_t buflen)
|
||||||
strerror_r_helper(res, buf, buflen);
|
strerror_r_helper(res, buf, buflen);
|
||||||
}
|
}
|
||||||
|
|
||||||
char* zeekenv(const char* name)
|
static const std::map<const char*, const char*, CompareString> legacy_vars = {
|
||||||
{
|
|
||||||
static std::map<const char*, const char*, CompareString> legacy_vars = {
|
|
||||||
{ "ZEEKPATH", "BROPATH" },
|
{ "ZEEKPATH", "BROPATH" },
|
||||||
{ "ZEEK_PLUGIN_PATH", "BRO_PLUGIN_PATH" },
|
{ "ZEEK_PLUGIN_PATH", "BRO_PLUGIN_PATH" },
|
||||||
{ "ZEEK_PLUGIN_ACTIVATE", "BRO_PLUGIN_ACTIVATE" },
|
{ "ZEEK_PLUGIN_ACTIVATE", "BRO_PLUGIN_ACTIVATE" },
|
||||||
|
@ -1860,6 +1858,8 @@ char* zeekenv(const char* name)
|
||||||
{ "ZEEK_DEFAULT_LISTEN_RETRY", "BRO_DEFAULT_LISTEN_RETRY" },
|
{ "ZEEK_DEFAULT_LISTEN_RETRY", "BRO_DEFAULT_LISTEN_RETRY" },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
char* zeekenv(const char* name)
|
||||||
|
{
|
||||||
auto rval = getenv(name);
|
auto rval = getenv(name);
|
||||||
|
|
||||||
if ( rval )
|
if ( rval )
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue