From bf8e3135ac906ce0ab7d6d9ccbd434f1597f2ff4 Mon Sep 17 00:00:00 2001 From: Herbert Dürr Date: Thu, 2 May 2013 09:24:10 +0000 Subject: protect UNO EnvStack's s_setCurrent() against unknown threadid untracked threadIds have been observed and can result in crashes. s_getCurrent() already checks them and s_setCurrent() does it now. --- cppu/source/uno/EnvStack.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'cppu/source/uno') diff --git a/cppu/source/uno/EnvStack.cxx b/cppu/source/uno/EnvStack.cxx index 46865115d97f..6fce75c5ae5b 100644 --- a/cppu/source/uno/EnvStack.cxx +++ b/cppu/source/uno/EnvStack.cxx @@ -76,11 +76,11 @@ static void s_setCurrent(uno_Environment * pEnv) osl::MutexGuard guard(s_threadMap_mutex); if (pEnv) s_threadMap[threadId] = pEnv; - else { ThreadMap::iterator iEnv = s_threadMap.find(threadId); - s_threadMap.erase(iEnv); + if( iEnv != s_threadMap.end()) + s_threadMap.erase(iEnv); } } -- cgit v1.2.3