[Libreoffice-commits] core.git: sw/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Thu Aug 26 09:13:59 UTC 2021


 sw/source/core/doc/DocumentContentOperationsManager.cxx |    6 ++++++
 1 file changed, 6 insertions(+)

New commits:
commit 2be207ed8969a96da8bdc0ffd7f2a2215233ee4a
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Wed Aug 25 11:40:54 2021 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Thu Aug 26 11:13:24 2021 +0200

    crashtesting: crash on re-export of tdf137357-1.docx to docx
    
     #0  SfxPoolItem::Which() const (this=0xffffffffffffffff) at include/svl/poolitem.hxx:148
     #1  0x00007fff9d0454a5 in sw::util::GetPoolItems(SfxItemSet const&, std::__debug::map<unsigned short, SfxPoolItem const*, sw::util::ItemSort, std::allocator<std::pair<unsigned short const, SfxPoolItem const*> > >&, bool)
         (rSet=SfxItemSet of pool 0x5368720 with parent 0x0 and Which ranges: [(1, 55), (153, 153)] = {...}, rItems=std::__debug::map with 0 elements, bExportParentItemSet=false) at sw/source/filter/ww8/writerhelper.cxx:411
     #2  0x00007fff9d1ceae4 in MSWordExportBase::OutputItemSet(SfxItemSet const&, bool, bool, unsigned short, bool)
         (this=0x7fffffff5348, rSet=SfxItemSet of pool 0x5368720 with parent 0x0 and Which ranges: [(1, 55), (153, 153)] = {...}, bPapFormat=false, bChpFormat=true, nScript=1, bExportParentItemSet=false) at sw/source/filter/ww8/ww8atr.cxx:351
     #3  0x00007fff9ce92a66 in DocxAttributeOutput::Redline(SwRedlineData const*) (this=0x59e44e0, pRedlineData=0x68110d0)
        at sw/source/filter/ww8/docxattributeoutput.cxx:3199
    
    starting happening at:
    
    commit 5e891c2ee82f2d7566ddb4e15b9c03cecb9fc1f8
    Date:   Thu Aug 19 11:47:53 2021 +0200
    
        tdf#143939 sw: track format changes of the actual word
    
    Change-Id: Idb2b07368233152db519e70627b43847c7392128
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121031
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index 6fcca55fbbe0..35044a92a3bd 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -1269,6 +1269,12 @@ namespace //local functions originally from docfmt.cxx
                 aSet.ClearItem( RES_TXTATR_INETFMT );
                 aSet.ClearItem( RES_TXTATR_META );
                 aSet.ClearItem( RES_TXTATR_METAFIELD );
+
+                // After GetParaAttr aSet can contain INVALID_POOL_ITEM items, e.g. RES_TXTATR_CHARFMT
+                // and (a copy of) this SfxItemSet can be passed to MSWordExportBase::OutputItemSet
+                // which doesn't handle INVALID_POOL_ITEM items so clear InvalidItems here
+                aSet.ClearInvalidItems();
+
                 xExtra.reset(new SwRedlineExtraData_FormatColl("", USHRT_MAX, &aSet));
             }
 


More information about the Libreoffice-commits mailing list