vcl/source/window/mouse.cxx |    2 ++
 1 file changed, 2 insertions(+)

New commits:
commit b763d57a023406049d2f6490a1a4b14c6a217463
Author:     Miklos Vajna <[email protected]>
AuthorDate: Mon Nov 7 10:48:06 2022 +0100
Commit:     Miklos Vajna <[email protected]>
CommitDate: Tue Nov 8 08:59:15 2022 +0100

    vcl: fix crash in Window::LeaveWait()
    
    Crashreport signature:
    
    SIG   Fatal signal received: SIGSEGV code: 128 for address: 0x0
    program/libmergedlo.so
            vcl::Window::LeaveWait()
                    vcl/source/window/mouse.cxx:640
    program/../program/libsclo.so
            ScSpellingEngine::ShowTableWrapDialog()
                    sc/source/ui/view/spelleng.cxx:315
    program/libsclo.so
            ScConversionEngineBase::FindNextConversionCell()
                    sc/source/ui/view/spelleng.cxx:168
    program/../program/libsclo.so
            ScSpellDialogChildWindow::GetNextWrongSentence(bool)
                    
/opt/rh/devtoolset-10/root/usr/include/c++/10/bits/unique_ptr.h:173
    
    Seeing that e.g. Window::GetDropTarget() also handles a disposed
    vcl::Window, let's do the same here.
    
    Change-Id: Ia4ad312ae91dfef24266c5bd45751778acbee367
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142367
    Reviewed-by: Michael Meeks <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>

diff --git a/vcl/source/window/mouse.cxx b/vcl/source/window/mouse.cxx
index 9b533b991a9e..c77391f8393a 100644
--- a/vcl/source/window/mouse.cxx
+++ b/vcl/source/window/mouse.cxx
@@ -636,6 +636,8 @@ void Window::EnterWait()
 
 void Window::LeaveWait()
 {
+    if( !mpWindowImpl )
+        return;
 
     if ( mpWindowImpl->mnWaitCount )
     {

Reply via email to