From 61308112435628177b7884ab833ece843d37cd28 Mon Sep 17 00:00:00 2001 From: Matt K Date: Sun, 26 Nov 2023 19:01:20 -0600 Subject: tdf#156648 Prevent LO from adding an empty event listener The problem is that an empty interface listener can be added in Basic, which then crashes when trying to fire an event on that listener. The fix is to check for the existence of the listener before adding to the list of listeners. Change-Id: I3205ec1e6cdad431f6297f2b7833295b9eb64b8e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159978 Tested-by: Jenkins Reviewed-by: Noel Grandin --- comphelper/source/container/interfacecontainer2.cxx | 3 +++ 1 file changed, 3 insertions(+) (limited to 'comphelper') diff --git a/comphelper/source/container/interfacecontainer2.cxx b/comphelper/source/container/interfacecontainer2.cxx index 9acff0a7f761..df1c9e0e69e9 100644 --- a/comphelper/source/container/interfacecontainer2.cxx +++ b/comphelper/source/container/interfacecontainer2.cxx @@ -172,6 +172,9 @@ void OInterfaceContainerHelper2::copyAndResetInUse() sal_Int32 OInterfaceContainerHelper2::addInterface( const Reference & rListener ) { OSL_ASSERT( rListener.is() ); + if ( !rListener.is() ) + return 0; + MutexGuard aGuard( rMutex ); if( bInUse ) copyAndResetInUse(); -- cgit