diff options
| author | Alan Conway <aconway@apache.org> | 2013-11-12 16:58:29 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2013-11-12 16:58:29 +0000 |
| commit | c5f0fe7d141b1679323452d3ee9a96b502accbc0 (patch) | |
| tree | 3f484323fefb4574bcf1e8a59eaad5e1e9dce9f5 /cpp/src/qpid/SaslFactory.cpp | |
| parent | e77cabaa0b8007a8f17c406aec523abfe9eb439e (diff) | |
| download | qpid-python-c5f0fe7d141b1679323452d3ee9a96b502accbc0.tar.gz | |
QPID-5275: Segmentation fault in SaslFactory.
Discovered while working on QPID-5275: SecretsMap in SaslFactory.cpp was thread
unsafe, added a mutex.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1541144 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/SaslFactory.cpp')
| -rw-r--r-- | cpp/src/qpid/SaslFactory.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/cpp/src/qpid/SaslFactory.cpp b/cpp/src/qpid/SaslFactory.cpp index bd771fc920..f5b2b0108f 100644 --- a/cpp/src/qpid/SaslFactory.cpp +++ b/cpp/src/qpid/SaslFactory.cpp @@ -603,8 +603,10 @@ namespace { class SecretsMap { typedef std::map<sasl_conn_t*, void*> Map; Map map; + sys::Mutex lock; public: void keep(sasl_conn_t* conn, void* secret) { + sys::Mutex::ScopedLock l(lock); Map::iterator i = map.find(conn); if (i != map.end()) free(i->second); map[conn] = secret; |
