sfx2/source/control/unoctitm.cxx |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

New commits:
commit b11854606f033c91532649786c3544f7cf875046
Author:     Miklos Vajna <vmik...@collabora.com>
AuthorDate: Fri Apr 12 08:52:43 2024 +0200
Commit:     Michael Meeks <michael.me...@collabora.com>
CommitDate: Fri Apr 12 14:21:23 2024 +0200

    sfx2: fix crash in InterceptLOKStateChangeEvent()
    
    Notice how e.g. the TransformPosX case already performed the same null
    pointer check.
    
    Crashreport backtrace:
    
    > program/libmergedlo.so
    >       InterceptLOKStateChangeEvent
    >               sfx2/source/control/unoctitm.cxx:1143
    > program/libmergedlo.so
    >       SfxStateCache::SetState_Impl(SfxItemState, SfxPoolItem const*, bool)
    >               sfx2/source/control/statcach.cxx:432
    > program/libmergedlo.so
    >       SfxBindings::Update_Impl(SfxStateCache&)
    >               
/opt/rh/devtoolset-10/root/usr/include/c++/10/bits/stl_vector.h:919 
(discriminator 2)
    > program/libmergedlo.so
    >       SfxBindings::NextJob_Impl(Timer const*)
    >               
/opt/rh/devtoolset-10/root/usr/include/c++/10/bits/unique_ptr.h:173
    
    Change-Id: I141d4f9ec50d0ce7a0eeaba69752c31390a1f9ba
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166027
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Michael Meeks <michael.me...@collabora.com>

diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx
index 0e3a092cd8b3..47d88aafbf2f 100644
--- a/sfx2/source/control/unoctitm.cxx
+++ b/sfx2/source/control/unoctitm.cxx
@@ -1140,7 +1140,11 @@ static void InterceptLOKStateChangeEvent(sal_uInt16 
nSID, SfxViewFrame* pViewFra
         aTree.put("commandName", aEvent.FeatureURL.Complete);
         aTree.put("disabled", !aEvent.IsEnabled);
         aTree.put("state", bTemp ? "true" : "false");
-        
SfxViewShell::Current()->libreOfficeKitViewCallback(LOK_CALLBACK_STATE_CHANGED, 
aTree.extractData());
+        const SfxViewShell* pViewShell = SfxViewShell::Current();
+        if (pViewShell)
+        {
+            pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_STATE_CHANGED, 
aTree.extractData());
+        }
         return;
     }
     else if (aEvent.FeatureURL.Path == "AssignLayout" ||

Reply via email to