[libreoffice] 67/152: lp#1569500. lp#1569589, lp#1566050, lp#1560328: fix various crashers

Rene Engelhard rene at moszumanska.debian.org
Thu Jul 27 19:16:58 UTC 2017


This is an automated email from the git hooks/post-receive script.

rene pushed a commit to tag libreoffice_3.5.0_rc3-0ubuntu2
in repository libreoffice.

commit 32f5cf1bcdfaf666c8775806f35bc77e10d173f2
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Apr 13 01:19:45 2016 +0200

    lp#1569500. lp#1569589, lp#1566050, lp#1560328: fix various crashers
---
 changelog              |  9 +++++++++
 patches/lp1560328.diff | 26 ++++++++++++++++++++++++++
 patches/lp1566050.diff | 41 +++++++++++++++++++++++++++++++++++++++++
 patches/lp1569500.diff | 28 ++++++++++++++++++++++++++++
 patches/lp1569589.diff | 30 ++++++++++++++++++++++++++++++
 patches/series         |  4 ++++
 6 files changed, 138 insertions(+)

diff --git a/changelog b/changelog
index 6badb42..175003a 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,12 @@
+libreoffice (1:5.1.2-0ubuntu2) xenial; urgency=medium
+
+  * fix crash with nullptr SdrObjList (LP: #1569500)
+  * fix crash with ViewTabListBox_Impl living beyond VCL shutdown (LP: #1569589)
+  * fix crash with ScCsvGrid living beyond VCL shutdown (LP: #1566050)
+  * fix crash with non-empty BlendFrameCache in late VCL shutdown (LP: #1560328)
+
+ -- Bjoern Michaelsen <bjoern.michaelsen at canonical.com>  Wed, 13 Apr 2016 01:01:53 +0200
+
 libreoffice (1:5.1.2-0ubuntu1) xenial; urgency=medium
 
   * new upstream bugfix release
diff --git a/patches/lp1560328.diff b/patches/lp1560328.diff
new file mode 100644
index 0000000..54506d4
--- /dev/null
+++ b/patches/lp1560328.diff
@@ -0,0 +1,26 @@
+From: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
+Date: Tue, 12 Apr 2016 23:23:51 +0200
+Subject: [PATCH] lp#1560328: clear cache before disposing rest of VCL
+
+Change-Id: Iac325cf934953c61cb4dbbb67cfbab1777dc45cc
+
+---
+ vcl/source/app/svmain.cxx | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
+--- a/vcl/source/app/svmain.cxx
++++ b/vcl/source/app/svmain.cxx
+@@ -335,6 +335,9 @@ VCLUnoWrapperDeleter::disposing(lang::EventObject const& /* rSource */)
+ void DeInitVCL()
+ {
+     ImplSVData* pSVData = ImplGetSVData();
++    // lp#1560328: clear cache before disposing rest of VCL
++    if(pSVData->mpBlendFrameCache)
++        pSVData->mpBlendFrameCache->m_aLastResult.Clear();
+     pSVData->mbDeInit = true;
+ 
+     vcl::DeleteOnDeinitBase::ImplDeleteOnDeInit();
+-- 
+2.5.0
+
diff --git a/patches/lp1566050.diff b/patches/lp1566050.diff
new file mode 100644
index 0000000..363eb98
--- /dev/null
+++ b/patches/lp1566050.diff
@@ -0,0 +1,41 @@
+From: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
+Date: Tue, 12 Apr 2016 12:20:07 +0200
+Subject: [PATCH] lp#1566050: prevent cyclic reference zombies
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+regression, likely from 2660d24a07866e083c5135ea263030f3e3a2e729:
+
+1/ Since that change mxAccessible in ScCsvGrid holds a rtl::Reference on
+a ScAccessibleCsvGrid
+2/ Which in turn holds a VclPtr<> (aka a rtl::Reference with lipstick)
+on the ScCsvControl
+
+These are a circular references, making both of them live forever and
+leak past the point where on LibreOffice close all of Vcl is long gone,
+when these are dtored. Clearing mxAccessible on disposing should help.
+
+Change-Id: Iebb2635ec4ea143e7f0dbfebad2e6141a68e72e8
+Reviewed-on: https://gerrit.libreoffice.org/24021
+Reviewed-by: Björn Michaelsen <bjoern.michaelsen at canonical.com>
+Tested-by: Björn Michaelsen <bjoern.michaelsen at canonical.com>
+
+---
+ sc/source/ui/dbgui/csvcontrol.cxx | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sc/source/ui/dbgui/csvcontrol.cxx b/sc/source/ui/dbgui/csvcontrol.cxx
+--- a/sc/source/ui/dbgui/csvcontrol.cxx
++++ b/sc/source/ui/dbgui/csvcontrol.cxx
+@@ -81,6 +81,7 @@ void ScCsvControl::dispose()
+ {
+     if( mxAccessible.is() )
+         mxAccessible->dispose();
++    mxAccessible = nullptr; // lp#1566050: prevent cyclic reference zombies
+     Control::dispose();
+ }
+ 
+-- 
+2.5.0
+
diff --git a/patches/lp1569500.diff b/patches/lp1569500.diff
new file mode 100644
index 0000000..3041532
--- /dev/null
+++ b/patches/lp1569500.diff
@@ -0,0 +1,28 @@
+From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm at redhat.com>
+Date: Wed, 27 Jan 2016 15:17:44 +0000
+Subject: [PATCH] Resolves: rhbz#1301346 crash with null ObjList
+
+Change-Id: Ia9446b06087907a2d9d1889ba7d4ccd1f78697d9
+
+---
+ svx/source/svdraw/svdedtv2.cxx | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx
+--- a/svx/source/svdraw/svdedtv2.cxx
++++ b/svx/source/svdraw/svdedtv2.cxx
+@@ -484,8 +484,9 @@ void SdrEditView::ImpCheckToTopBtmPossible()
+     { // special-casing for single selection
+         SdrObject* pObj=GetMarkedObjectByIndex(0);
+         SdrObjList* pOL=pObj->GetObjList();
+-        size_t nMax=pOL->GetObjCount();
+-        size_t nMin=0;
++        SAL_WARN_IF(!pOL, "svx", "Object somehow has no ObjList");
++        size_t nMax = pOL ? pOL->GetObjCount() : 0;
++        size_t nMin = 0;
+         const size_t nObjNum=pObj->GetOrdNum();
+         SdrObject* pRestrict=GetMaxToTopObj(pObj);
+         if (pRestrict!=nullptr) {
+-- 
+2.5.0
+
diff --git a/patches/lp1569589.diff b/patches/lp1569589.diff
new file mode 100644
index 0000000..65d380e
--- /dev/null
+++ b/patches/lp1569589.diff
@@ -0,0 +1,30 @@
+From: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
+Date: Wed, 13 Apr 2016 00:07:56 +0200
+Subject: [PATCH] lp#1569589: a more honest attempt at disposing
+ SvtFileView_Impl
+
+Dunno yet if that completely fixes the story -- the reference here are
+quite messy: ownership isnt exactly obvious.
+
+Change-Id: I54d71ac724590e85549bd152c963fdc8de46746e
+
+---
+ svtools/source/contnr/fileview.cxx | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/svtools/source/contnr/fileview.cxx b/svtools/source/contnr/fileview.cxx
+--- a/svtools/source/contnr/fileview.cxx
++++ b/svtools/source/contnr/fileview.cxx
+@@ -1486,6 +1486,9 @@ SvtFileView_Impl::~SvtFileView_Impl()
+ {
+     Clear();
+     mpView.disposeAndClear();
++    mpCurView.clear();
++    mpIconView.disposeAndClear();
++    mpAntiImpl.clear();
+ }
+ 
+ 
+-- 
+2.5.0
+
diff --git a/patches/series b/patches/series
index 4e71c1a..2244d15 100644
--- a/patches/series
+++ b/patches/series
@@ -30,3 +30,7 @@ disable-npapi-plugin-support.diff
 lp-753627-readd-updated-Ubuntu-brand-palette-colors.diff
 integraltrans.diff
 unity-default-breeze.diff
+lp1560328.diff
+lp1566050.diff
+lp1569500.diff
+lp1569589.diff

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-openoffice/libreoffice.git



More information about the Pkg-openoffice-commits mailing list