diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2024-03-14 23:03:55 +0500 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2024-03-14 21:56:46 +0100 |
commit | ad161bf882099553949469f99759493c38169c8a (patch) | |
tree | f4aa7421327f986f5175d6418984c08a6a5bddb1 /svgio/qa/cppunit/SvgImportTest.cxx | |
parent | 3d8951fa1c7fe30632d4e8151a4a54af2e3befc0 (diff) |
Make sure we hold the solar mutex before trying to release it
Might be not guarded by the solar mutex (and need not to!) e.g. when
an external script calls XDispatchHelper::executeDispatch, with stack
like this:
vcllo.dll!vcl::SolarThreadExecutor::execute() Line 55 C++
fwklo.dll!vcl::solarthread::detail::GenericSolarThreadExecutor<`framework::DispatchHelper::executeDispatch'::`8'::<lambda_1>,com::sun::star::uno::Any>::exec(const framework::DispatchHelper::executeDispatch::__l8::<lambda_1> & func) Line 63 C++
fwklo.dll!vcl::solarthread::syncExecute<`framework::DispatchHelper::executeDispatch'::`8'::<lambda_1>>(const framework::DispatchHelper::executeDispatch::__l8::<lambda_1> & func) Line 166 C++
fwklo.dll!framework::DispatchHelper::executeDispatch(const com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider> & xDispatchProvider, const rtl::OUString & sURL, const rtl::OUString & sTargetFrameName, long nSearchFlags, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lArguments) Line 116 C++
mscx_uno.dll!`anonymous namespace'::cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy * pThis, bridges::cpp_uno::shared::VtableSlot aVtableSlot, _typelib_TypeDescriptionReference * pReturnTypeRef, long nParams, _typelib_MethodParameter * pParams, void * pUnoReturn, void * * pUnoArgs, _uno_Any * * ppUnoExc) Line 214 C++
mscx_uno.dll!unoInterfaceProxyDispatch(_uno_Interface * pUnoI, const _typelib_TypeDescription * pMemberTD, void * pReturn, void * * pArgs, _uno_Any * * ppException) Line 430 C++
binaryurplo.dll!binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny * returnValue, std::vector<binaryurp::BinaryAny,std::allocator<binaryurp::BinaryAny>> * outArguments) Line 239 C++
binaryurplo.dll!binaryurp::IncomingRequest::execute() Line 79 C++
binaryurplo.dll!request(void * pThreadSpecificData) Line 84 C++
cppu3.dll!cppu_threadpool::JobQueue::enter(const void * nDisposeId, bool bReturnWhenNoJob) Line 101 C++
cppu3.dll!cppu_threadpool::ORequestThread::run() Line 169 C++
cppu3.dll!threadFunc(void * param) Line 190 C++
sal3.dll!oslWorkerWrapperFunction(void * pData) Line 69 C++
ucrtbased.dll!thread_start<unsigned int (__cdecl*)(void *),1>(void * const parameter) Line 97 C++
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
Change-Id: Ic8ffa802f8d9f9165bf5274ddbc06fd70d3a5f5e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164843
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'svgio/qa/cppunit/SvgImportTest.cxx')
0 files changed, 0 insertions, 0 deletions