sc/source/ui/docshell/docsh4.cxx |   14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

New commits:
commit 6f7fed899a124a1a5a34fc9fecfe270cdf980a8c
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Fri Dec 16 09:53:21 2022 +0100
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Fri Dec 16 11:10:50 2022 +0000

    sc: fix null deref in ScDocShell::Execute
    
    See 
https://crashreport.libreoffice.org/stats/signature/ScViewData::GetDispatcher()
    
    Change-Id: I3271738b3c7f456adad1309c52195d98646f1acc
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144301
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index 04b605edb57a..494057b12087 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -1180,11 +1180,15 @@ void ScDocShell::Execute( SfxRequest& rReq )
 #endif
         case SID_OPEN_CALC:
         {
-            SfxStringItem aApp(SID_DOC_SERVICE, 
"com.sun.star.sheet.SpreadsheetDocument");
-            SfxStringItem aTarget(SID_TARGETNAME, "_blank");
-            GetViewData()->GetDispatcher().ExecuteList(
-                SID_OPENDOC, SfxCallMode::API|SfxCallMode::SYNCHRON,
-                { &aApp, &aTarget });
+            ScViewData* pViewData = GetViewData();
+            if (pViewData)
+            {
+                SfxStringItem aApp(SID_DOC_SERVICE, 
"com.sun.star.sheet.SpreadsheetDocument");
+                SfxStringItem aTarget(SID_TARGETNAME, "_blank");
+                pViewData->GetDispatcher().ExecuteList(
+                    SID_OPENDOC, SfxCallMode::API|SfxCallMode::SYNCHRON,
+                    { &aApp, &aTarget });
+            }
         }
         break;
         case SID_NOTEBOOKBAR:

Reply via email to