null deref of SfxViewShell

#0  desktop::CallbackFlushHandler::enqueueUpdatedType (this=this@entry=0x34f1a860, type=3, viewShell=viewShell@entry=0x0, viewId=9) at libreoffice/desktop/source/lib/init.cxx:2474
 #1  0x00007f1d866182a4 in desktop::CallbackFlushHandler::enqueueUpdatedTypes (this=0x34f1a860) at libreoffice/desktop/source/lib/init.cxx:2437
 #2  0x00007f1d866184a0 in desktop::CallbackFlushHandler::invoke (this=0x34f1a860) at libreoffice/desktop/source/lib/init.cxx:2503
 #3  0x00007f1d87648db0 in Link<void*, void>::Call (data=<optimized out>, this=0x30d537e8) at libreoffice/include/tools/link.hxx:111
 #4  ImplHandleUserEvent (pSVEvent=0x30d537e0) at libreoffice/vcl/source/window/winproc.cxx:2285
 #5  ImplWindowFrameProc (_pWindow=<optimized out>, nEvent=SalEvent::UserEvent, pEvent=0x30d537e0) at libreoffice/vcl/source/window/winproc.cxx:2849
 #6  0x00007f1d87b3accc in SalFrame::CallCallback (pEvent=0x30d537e0, nEvent=SalEvent::UserEvent, this=0x38abd50) at libreoffice/vcl/inc/salframe.hxx:311
 #7  SvpSalInstance::ProcessEvent (this=0xe87940, aEvent=...) at libreoffice/vcl/headless/svpinst.cxx:272
 #8  0x00007f1d87937029 in operator() (__closure=<synthetic pointer>) at libreoffice/vcl/source/app/salusereventlist.cxx:119
 #9  SalUserEventList::DispatchUserEvents (this=this@entry=0xe87968, bHandleAllCurrentEvents=bHandleAllCurrentEvents@entry=false) at libreoffice/vcl/source/app/salusereventlist.cxx:120
 #10 0x00007f1d87b3b4d9 in SvpSalInstance::ImplYield (this=this@entry=0xe87940, bWait=bWait@entry=true, bHandleAllCurrentEvents=bHandleAllCurrentEvents@entry=false)
     at libreoffice/vcl/headless/svpinst.cxx:425

Change-Id: Id6961b300ce67f5cfcbb91284a84bf02edc6aec3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187632
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 6034be914e4afdbdc330a6d1b43ff02cf966dacf)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187661
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
This commit is contained in:
Caolán McNamara
2025-07-10 22:27:20 +02:00
parent b0a648fa8a
commit cc93fa1d10
+12 -3
View File
@@ -2425,13 +2425,22 @@ void CallbackFlushHandler::enqueueUpdatedTypes()
LOK_CALLBACK_INVALIDATE_VIEW_CURSOR,
LOK_CALLBACK_TEXT_VIEW_SELECTION };
for( int type : orderedUpdatedTypes )
if (viewShell)
{
if(o3tl::make_unsigned( type ) < updatedTypes.size() && updatedTypes[ type ])
for( int type : orderedUpdatedTypes )
{
enqueueUpdatedType( type, viewShell, m_viewId );
if(o3tl::make_unsigned( type ) < updatedTypes.size() && updatedTypes[ type ])
{
enqueueUpdatedType( type, viewShell, m_viewId );
}
}
}
else
{
// View removed, probably cleaning up.
SAL_INFO("lok", "View #" << m_viewId << " no longer found for updated events");
}
for( const auto& it : updatedTypesPerViewId )
{
int viewId = it.first;