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)

Reply via email to