external/libgpg-error/UnpackedTarball_libgpg-error.mk | 1 external/libgpg-error/libgpg-error_gawk5.patch | 114 ++++++++++++++++++ external/libgpg-error/w32-build-fixes.patch | 2 sw/source/core/layout/fly.cxx | 2 sw/source/core/layout/ssfrm.cxx | 2 sw/source/core/unocore/unoframe.cxx | 2 6 files changed, 121 insertions(+), 2 deletions(-)
New commits: commit 7aea534459b293d3553b7bdf0a89b8fbc6c6e0da Author: nd101 <f...@nd.com.cn> AuthorDate: Wed Jul 3 09:41:06 2019 +0800 Commit: Thorsten Behrens <thorsten.behr...@cib.de> CommitDate: Sun Jul 28 00:23:56 2019 +0200 Fix libgpg-error compilation error with gawk5 This is an adaptation of upstream patch https://github.com/gpg/libgpg-error/commit/7865041c77f4f7005282f10f9b6666b19072fbdf plus a fix to Makefile.in Change-Id: I5bf946cf93e5849b8a3428064ab86f6255be97da Reviewed-on: https://gerrit.libreoffice.org/75022 Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Tested-by: Mike Kaganski <mike.kagan...@collabora.com> (cherry picked from commit af3b993ebea2f653fabba981d4c22b9aa779b32a) Reviewed-on: https://gerrit.libreoffice.org/75075 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@cib.de> (cherry picked from commit 87215115618de0c12d287a300fc5fde993886089) Reviewed-on: https://gerrit.libreoffice.org/76308 Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> Tested-by: Thorsten Behrens <thorsten.behr...@cib.de> diff --git a/external/libgpg-error/UnpackedTarball_libgpg-error.mk b/external/libgpg-error/UnpackedTarball_libgpg-error.mk index ad2145a96aa7..ea99c3c3c076 100644 --- a/external/libgpg-error/UnpackedTarball_libgpg-error.mk +++ b/external/libgpg-error/UnpackedTarball_libgpg-error.mk @@ -14,6 +14,7 @@ $(eval $(call gb_UnpackedTarball_set_tarball,libgpg-error,$(LIBGPGERROR_TARBALL) $(eval $(call gb_UnpackedTarball_set_patchlevel,libgpg-error,0)) $(eval $(call gb_UnpackedTarball_add_patches,libgpg-error, \ + external/libgpg-error/libgpg-error_gawk5.patch \ $(if $(filter MSC,$(COM)),external/libgpg-error/w32-build-fixes.patch) \ $(if $(filter MSC,$(COM)),external/libgpg-error/w32-build-fixes-2.patch.1) \ $(if $(filter MSC,$(COM)),external/libgpg-error/w32-build-fixes-3.patch.1) \ diff --git a/external/libgpg-error/libgpg-error_gawk5.patch b/external/libgpg-error/libgpg-error_gawk5.patch new file mode 100644 index 000000000000..3be76a4538a8 --- /dev/null +++ b/external/libgpg-error/libgpg-error_gawk5.patch @@ -0,0 +1,114 @@ +--- src/Makefile.am ++++ src/Makefile.am~ +@@ -266,7 +266,7 @@ + + errnos-sym.h: Makefile mkstrtable.awk errnos.in + $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ +- -v prefix=GPG_ERR_ -v namespace=errnos_ \ ++ -v prefix=GPG_ERR_ -v pkg_namespace=errnos_ \ + $(srcdir)/errnos.in >$@ + + +--- src/mkerrcodes.awk ++++ src/mkerrcodes.awk~ +@@ -81,7 +81,7 @@ + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +--- src/mkerrcodes1.awk ++++ src/mkerrcodes1.awk~ +@@ -81,7 +81,7 @@ + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +--- src/mkerrcodes2.awk ++++ src/mkerrcodes2.awk~ +@@ -91,7 +91,7 @@ + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +--- src/mkerrnos.awk ++++ src/mkerrnos.awk~ +@@ -83,7 +83,7 @@ + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +--- src/mkstrtable.awk ++++ src/mkstrtable.awk~ +@@ -77,7 +77,7 @@ + # + # The variable prefix can be used to prepend a string to each message. + # +-# The variable namespace can be used to prepend a string to each ++# The variable pkg_namespace can be used to prepend a string to each + # variable and macro name. + + BEGIN { +@@ -102,7 +102,7 @@ + print "/* The purpose of this complex string table is to produce"; + print " optimal code with a minimum of relocations. */"; + print ""; +- print "static const char " namespace "msgstr[] = "; ++ print "static const char " pkg_namespace "msgstr[] = "; + header = 0; + } + else +@@ -110,7 +110,7 @@ + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +@@ -150,7 +150,7 @@ + else + print " gettext_noop (\"" last_msgstr "\");"; + print ""; +- print "static const int " namespace "msgidx[] ="; ++ print "static const int " pkg_namespace "msgidx[] ="; + print " {"; + for (i = 0; i < coded_msgs; i++) + print " " pos[i] ","; +@@ -158,7 +158,7 @@ + print " };"; + print ""; + print "static GPG_ERR_INLINE int"; +- print namespace "msgidxof (int code)"; ++ print pkg_namespace "msgidxof (int code)"; + print "{"; + print " return (0 ? 0"; + +--- src/Makefile.in ++++ src/Makefile.in~ +@@ -1321,7 +1321,7 @@ + + errnos-sym.h: Makefile mkstrtable.awk errnos.in + $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ +- -v prefix=GPG_ERR_ -v namespace=errnos_ \ ++ -v prefix=GPG_ERR_ -v pkg_namespace=errnos_ \ + $(srcdir)/errnos.in >$@ + + mkheader: mkheader.c Makefile + diff --git a/external/libgpg-error/w32-build-fixes.patch b/external/libgpg-error/w32-build-fixes.patch index e8a6b6145d46..96a62e32042c 100644 --- a/external/libgpg-error/w32-build-fixes.patch +++ b/external/libgpg-error/w32-build-fixes.patch @@ -136,7 +136,7 @@ diff -ru libgpg-error.orig/src/Makefile.in libgpg-error/src/Makefile.in errnos-sym.h: Makefile mkstrtable.awk errnos.in @@ -1325,7 +1325,7 @@ - -v prefix=GPG_ERR_ -v namespace=errnos_ \ + -v prefix=GPG_ERR_ -v pkg_namespace=errnos_ \ $(srcdir)/errnos.in >$@ -mkheader: mkheader.c Makefile commit 2bc538cc081f252cfe3832f074b3620e80b438de Author: Michael Stahl <michael.st...@cib.de> AuthorDate: Wed Jul 17 17:40:50 2019 +0200 Commit: Thorsten Behrens <thorsten.behr...@cib.de> CommitDate: Sun Jul 28 00:23:41 2019 +0200 sw: missing SolarMutexGuard in SwXFrame::attach() Causes assert in a test i'm adding... Change-Id: I5be24aa9683ec0d31494c0c97270d1d58692f764 Reviewed-on: https://gerrit.libreoffice.org/75796 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@cib.de> (cherry picked from commit 8dfe166a879a17bd8c2e0859d027ff923258a9d8) Reviewed-on: https://gerrit.libreoffice.org/75827 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 922aacddc86a5ae6cc3eeab9d47219bcb45ef1bc) Reviewed-on: https://gerrit.libreoffice.org/76307 Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> Tested-by: Thorsten Behrens <thorsten.behr...@cib.de> diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx index b0de9f773463..03003683e2d3 100644 --- a/sw/source/core/unocore/unoframe.cxx +++ b/sw/source/core/unocore/unoframe.cxx @@ -3000,6 +3000,8 @@ void SwXFrame::attachToRange(const uno::Reference< text::XTextRange > & xTextRan void SwXFrame::attach(const uno::Reference< text::XTextRange > & xTextRange) { + SolarMutexGuard g; + SwFrameFormat* pFormat; if(IsDescriptor()) attachToRange(xTextRange); commit 195feed8fa78d84793a6212079fe84d46e551465 Author: Michael Stahl <michael.st...@cib.de> AuthorDate: Thu Jul 18 14:07:06 2019 +0200 Commit: Thorsten Behrens <thorsten.behr...@cib.de> CommitDate: Sun Jul 28 00:23:25 2019 +0200 sw: fix use after free on tdf117215-1.odt Move the fix from 6d0ea082889c89eb8b408779f2de08da7441ff54 to SwFlyFrame::DestroyImpl() so we unregister every SwFlyFrame. ==1550==ERROR: AddressSanitizer: heap-use-after-free on address 0x615000383f56 at pc 0x7efcd70d5ab9 bp 0x7ffeb7ac7c40 sp 0x7ffeb7ac7c38 WRITE of size 1 at 0x615000383f56 thread T0 0 SwAnchoredObject::SetTmpConsiderWrapInfluence(bool) sw/source/core/layout/anchoredobject.cxx:743:32 1 SwObjsMarkedAsTmpConsiderWrapInfluence::Clear() sw/source/core/layout/objstmpconsiderwrapinfl.cxx:53:23 2 SwLayouter::ClearObjsTmpConsiderWrapInfluence(SwDoc const&) sw/source/core/layout/layouter.cxx:387:84 3 sw::DocumentLayoutManager::ClearSwLayouterEntries() sw/source/core/doc/DocumentLayoutManager.cxx:497:5 4 sw::DocumentStateManager::SetModified() sw/source/core/doc/DocumentStateManager.cxx:45:39 5 sw::DocumentContentOperationsManager::DeleteRangeImplImpl(SwPaM&) sw/source/core/doc/DocumentContentOperationsManager.cxx:3942:36 0x615000383f56 is located 342 bytes inside of 504-byte region [0x615000383e00,0x615000383ff8) freed by thread T0 here: 1 SwFlyAtContentFrame::~SwFlyAtContentFrame() sw/source/core/inc/flyfrms.hxx:159:7 2 SwFrame::DestroyFrame(SwFrame*) sw/source/core/layout/ssfrm.cxx:389:9 3 SwFrameFormat::DelFrames() sw/source/core/layout/atrfrm.cxx:2624:17 4 SwUndoFlyBase::DelFly(SwDoc*) sw/source/core/undo/undobj1.cxx:161:19 5 SwUndoDelLayFormat::SwUndoDelLayFormat(SwFrameFormat*) sw/source/core/undo/undobj1.cxx:403:5 6 SwHistoryTextFlyCnt::SwHistoryTextFlyCnt(SwFrameFormat*) sw/source/core/undo/rolbck.cxx:538:20 7 SwHistory::Add(SwFlyFrameFormat&, unsigned short&) sw/source/core/undo/rolbck.cxx:1083:50 8 SwUndoSaveContent::DelContentIndex(SwPosition const&, SwPosition const&, DelContentType) sw/source/core/undo/undobj.cxx:1020:39 9 SwUndoDelete::SwUndoDelete(SwPaM&, bool, bool) sw/source/core/undo/undel.cxx:229:9 11 sw::DocumentContentOperationsManager::DeleteRangeImplImpl(SwPaM&) sw/source/core/doc/DocumentContentOperationsManager.cxx:3939:55 Change-Id: Ia0c28c9d5792615cbb566e502374efd0f4056daf Reviewed-on: https://gerrit.libreoffice.org/75857 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@cib.de> (cherry picked from commit dea72ef111ee8a0b1b178f8cd48757514d5ca831) Reviewed-on: https://gerrit.libreoffice.org/75941 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 4b9324b93dcbd72c8c8949309d45790dd8f7d5fd) Reviewed-on: https://gerrit.libreoffice.org/76306 Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> Tested-by: Thorsten Behrens <thorsten.behr...@cib.de> diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx index 74a2f6201e4b..f23e95acdcde 100644 --- a/sw/source/core/layout/fly.cxx +++ b/sw/source/core/layout/fly.cxx @@ -265,6 +265,8 @@ void SwFlyFrame::DestroyImpl() if( GetFormat() && !GetFormat()->GetDoc()->IsInDtor() ) { + ClearTmpConsiderWrapInfluence(); // remove this from SwLayouter + // OD 2004-01-19 #110582# Unchain(); diff --git a/sw/source/core/layout/ssfrm.cxx b/sw/source/core/layout/ssfrm.cxx index 9506b8dd13b4..68a8a422cbc7 100644 --- a/sw/source/core/layout/ssfrm.cxx +++ b/sw/source/core/layout/ssfrm.cxx @@ -493,7 +493,6 @@ void SwLayoutFrame::DestroyImpl() const size_t nCnt = pFrame->GetDrawObjs()->size(); // #i28701# SwAnchoredObject* pAnchoredObj = (*pFrame->GetDrawObjs())[0]; - pAnchoredObj->ClearTmpConsiderWrapInfluence(); if (SwFlyFrame* pFlyFrame = dynamic_cast<SwFlyFrame*>(pAnchoredObj)) { SwFrame::DestroyFrame(pFlyFrame); @@ -501,6 +500,7 @@ void SwLayoutFrame::DestroyImpl() } else { + pAnchoredObj->ClearTmpConsiderWrapInfluence(); SdrObject* pSdrObj = pAnchoredObj->DrawObj(); SwDrawContact* pContact = static_cast<SwDrawContact*>(pSdrObj->GetUserCall()); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits