summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2013-11-12 16:58:29 +0000
committerAlan Conway <aconway@apache.org>2013-11-12 16:58:29 +0000
commitba564948e875e681f640c8e3e84e2e3253760936 (patch)
tree3eeb99af1c95ec446fea3d6c22398692cf3dc46f
parent65547070fe449b061ee848874cbb64a7736d646d (diff)
downloadqpid-python-ba564948e875e681f640c8e3e84e2e3253760936.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@1541144 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/SaslFactory.cpp2
1 files changed, 2 insertions, 0 deletions
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<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;