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. (cherry picked from commit bf8e3135ac906ce0ab7d6d9ccbd434f1597f2ff4) Conflicts: cppu/source/uno/EnvStack.cxx Change-Id: If35237179c1ee3b854e6183294ed72a6d0b105a8
This commit is contained in:
parent
1cab60bb06
commit
1ad6f436b5
@ -74,10 +74,15 @@ static void s_setCurrent(uno_Environment * pEnv)
|
||||
osl::MutexGuard guard(s_threadMap_mutex::get());
|
||||
ThreadMap &rThreadMap = s_threadMap::get();
|
||||
if (pEnv)
|
||||
{
|
||||
rThreadMap[threadId] = pEnv;
|
||||
|
||||
}
|
||||
else
|
||||
rThreadMap.erase(threadId);
|
||||
{
|
||||
ThreadMap::iterator iEnv = rThreadMap.find(threadId);
|
||||
if( iEnv != rThreadMap.end())
|
||||
rThreadMap.erase(iEnv);
|
||||
}
|
||||
}
|
||||
|
||||
static uno_Environment * s_getCurrent(void)
|
||||
|
Loading…
x
Reference in New Issue
Block a user