svtools/source/control/valueacc.cxx |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

New commits:
commit 7b218d6b4f3217b0fc629ef354b0fa4a94315597
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Wed Oct 16 20:46:39 2024 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Thu Oct 17 20:25:29 2024 +0200

    cid#1555697 Data race condition
    
    Change-Id: Ib022e1fbccf456e89f16a26efb50e6c8d98372ad
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175065
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Tested-by: Jenkins

diff --git a/svtools/source/control/valueacc.cxx 
b/svtools/source/control/valueacc.cxx
index f29da058aa4e..5d44c91cc298 100644
--- a/svtools/source/control/valueacc.cxx
+++ b/svtools/source/control/valueacc.cxx
@@ -377,8 +377,14 @@ void ValueItemAcc::FireAccessibleEvent( short nEventId, 
const uno::Any& rOldValu
     if( !nEventId )
         return;
 
-    ::std::vector< uno::Reference< accessibility::XAccessibleEventListener > > 
                 aTmpListeners( mxEventListeners );
-    accessibility::AccessibleEventObject                                       
                 aEvtObject;
+    std::vector<uno::Reference<accessibility::XAccessibleEventListener>> 
aTmpListeners;
+
+    {
+        std::scoped_lock aGuard(maMutex);
+        aTmpListeners = mxEventListeners;
+    }
+
+    accessibility::AccessibleEventObject aEvtObject;
 
     aEvtObject.EventId = nEventId;
     aEvtObject.Source = getXWeak();

Reply via email to