vcl/source/window/window2.cxx |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

New commits:
commit 8adad652f9853f54784cf8b9c99ce595e7bd4e9d
Author:     Aron Budea <aron.bu...@collabora.com>
AuthorDate: Thu Feb 2 00:08:41 2023 +0100
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Thu Feb 2 07:19:13 2023 +0000

    vcl: fix online crash in vcl::Window::IsTracking()
    
    Crashreport signature:
    
    program/libmergedlo.so
            vcl::Window::IsTracking() const
                    vcl/source/window/window2.cxx:340
    program/libmergedlo.so
            (anonymous namespace)::LOKPostAsyncEvent(void*, void*)
                    sfx2/source/view/lokhelper.cxx:812
    program/libmergedlo.so
            LokChartHelper::postMouseEvent(int, int, int, int, int, int, 
double, double)
                    include/rtl/ref.hxx:128
    program/libmergedlo.so
            SfxLokHelper::testInPlaceComponentMouseEventHit(SfxViewShell*, int, 
int, int, int, int, int, double, double, bool)
                    sfx2/source/view/lokhelper.cxx:980
    /program/libswlo.so
            SwXTextDocument::postMouseEvent(int, int, int, int, int, int)
                    sw/source/uibase/uno/unotxdoc.cxx:3663
    program/libmergedlo.so
            doc_postMouseEvent
                    desktop/source/lib/init.cxx:4831
    
    Change-Id: Iab7d24a901e57dc8af3fb2c77fbea3b4fdad9fb9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146483
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>

diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index 7334d423e9bc..e16113add965 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -339,9 +339,15 @@ bool Window::IsTracking() const
 {
     if (!mpWindowImpl)
         return false;
-    return (mpWindowImpl->mbUseFrameData ?
-            mpWindowImpl->mpFrameData->mpTrackWin == this :
-            ImplGetSVData()->mpWinData->mpTrackWin == this);
+    if (mpWindowImpl->mbUseFrameData && mpWindowImpl->mpFrameData)
+    {
+        return mpWindowImpl->mpFrameData->mpTrackWin == this;
+    }
+    if (!mpWindowImpl->mbUseFrameData && ImplGetSVData()->mpWinData)
+    {
+        return ImplGetSVData()->mpWinData->mpTrackWin == this;
+    }
+    return false;
 }
 
 void Window::StartAutoScroll( StartAutoScrollFlags nFlags )

Reply via email to