framework/source/services/sessionlistener.cxx | 3 ++- vcl/source/app/session.cxx | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-)
New commits: commit 918cd8cbf383e0099d80db2e12a1071a0bc4f200 Author: Justin Luth <[email protected]> AuthorDate: Tue Aug 15 08:55:09 2023 -0400 Commit: Justin Luth <[email protected]> CommitDate: Tue Aug 15 19:04:45 2023 +0200 VCLSession: avoid null dereferences Found while I was (mis)using XSessionManagerListener2 in https://gerrit.libreoffice.org/c/core/+/155460 But I think these are valid anyway. Certainly one is when it is checked in the try clause but not in the catch clause. Change-Id: Ia3f7211e4a4c86dd503ffe1b04e5b5c13227218e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155719 Tested-by: Jenkins Reviewed-by: Justin Luth <[email protected]> diff --git a/framework/source/services/sessionlistener.cxx b/framework/source/services/sessionlistener.cxx index 188b082fe94c..a77e7f961ebb 100644 --- a/framework/source/services/sessionlistener.cxx +++ b/framework/source/services/sessionlistener.cxx @@ -366,7 +366,8 @@ void SAL_CALL SessionListener::approveInteraction( sal_Bool bInteractionGranted catch( const css::uno::Exception& ) { StoreSession( true ); - m_rSessionManager->interactionDone( this ); + if (m_rSessionManager.is()) + m_rSessionManager->interactionDone(this); } if ( m_rSessionManager.is() && m_bTerminated ) diff --git a/vcl/source/app/session.cxx b/vcl/source/app/session.cxx index c0dfe71d7bc3..3b1bf3565bb2 100644 --- a/vcl/source/app/session.cxx +++ b/vcl/source/app/session.cxx @@ -309,7 +309,9 @@ void SAL_CALL VCLSession::queryInteraction( const css::uno::Reference<XSessionMa osl::MutexGuard aGuard( m_aMutex ); if( ! m_bInteractionRequested ) { - m_xSession->queryInteraction(); + if (m_xSession) + m_xSession->queryInteraction(); + m_bInteractionRequested = true; } for (auto & listener: m_aListeners)
