From ba564948e875e681f640c8e3e84e2e3253760936 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Tue, 12 Nov 2013 16:58:29 +0000 Subject: 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@1541144 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qpid/SaslFactory.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'qpid/cpp/src') diff --git a/qpid/cpp/src/qpid/SaslFactory.cpp b/qpid/cpp/src/qpid/SaslFactory.cpp index bd771fc920..f5b2b0108f 100644 --- a/qpid/cpp/src/qpid/SaslFactory.cpp +++ b/qpid/cpp/src/qpid/SaslFactory.cpp @@ -603,8 +603,10 @@ namespace { class SecretsMap { typedef std::map 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; -- cgit v1.2.1