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

Stephan Bergmann sbergman at redhat.com
Thu Jun 19 08:57:16 PDT 2014


 sw/source/filter/ascii/ascatr.cxx |    8 ++++++--
 xmloff/source/text/txtparae.cxx   |    9 +++++----
 2 files changed, 11 insertions(+), 6 deletions(-)

New commits:
commit ef3e481be37a387f6549a561daee890da6712cf5
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Jun 19 17:54:27 2014 +0200

    Do not call SwASC_AttrIter::NextPos when nAktSwPos is already SAL_MAX_INT32
    
    ...and calculating nAktSwPos + 1 would overflow.  Reported by
    CppunitTest_sw_odfexport under -sanitize=undefined.
    
    Change-Id: I78bd540851192a768400ce348b42228f9cb10b72

diff --git a/sw/source/filter/ascii/ascatr.cxx b/sw/source/filter/ascii/ascatr.cxx
index 1fb879f..04a5d89 100644
--- a/sw/source/filter/ascii/ascatr.cxx
+++ b/sw/source/filter/ascii/ascatr.cxx
@@ -197,7 +197,7 @@ static Writer& OutASC_SwTxtNode( Writer& rWrt, SwCntntNode& rNode )
     const bool bExportSoftHyphens = RTL_TEXTENCODING_UCS2 == rWrt.GetAsciiOptions().GetCharSet() ||
                                     RTL_TEXTENCODING_UTF8 == rWrt.GetAsciiOptions().GetCharSet();
 
-    do {
+    for (;;) {
         const sal_Int32 nNextAttr = std::min(aAttrIter.WhereNext(), nEnd);
 
         if( !aAttrIter.OutAttr( nStrPos ))
@@ -209,8 +209,12 @@ static Writer& OutASC_SwTxtNode( Writer& rWrt, SwCntntNode& rNode )
             rWrt.Strm().WriteUnicodeOrByteText( aOutStr );
         }
         nStrPos = nNextAttr;
+        if (nStrPos >= nEnd)
+        {
+            break;
+        }
         aAttrIter.NextPos();
-    } while( nStrPos < nEnd );
+    }
 
     if( !bLastNd ||
         ( ( !rWrt.bWriteClipboardDoc && !rWrt.bASCII_NoLastLineEnd )
commit d8e7624c9a874aee3ab782715117b118ddd0c496
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Jun 19 17:51:36 2014 +0200

    Do not dereference null pointer
    
    ...and XMLTextCharStyleNamesElementExport only requires a non-null rPropSet arg
    when its bDoSomething arg is true.
    
    Reported by CppunitTest_sw_odfexport under -sanitize=undefined.
    
    Change-Id: Ia45fa7db250f83d746829c7f411e78bbc50bf721

diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx
index 7c91085..108fe8e 100644
--- a/xmloff/source/text/txtparae.cxx
+++ b/xmloff/source/text/txtparae.cxx
@@ -2843,11 +2843,12 @@ void XMLTextParagraphExport::exportAnyTextFrame(
             else
                 bIsUICharStyle = false;
 
+            bool bDoSomething = bIsUICharStyle
+                && aCharStyleNamesPropInfoCache.hasProperty( *pRangePropSet );
             XMLTextCharStyleNamesElementExport aCharStylesExport(
-                GetExport(), bIsUICharStyle &&
-                             aCharStyleNamesPropInfoCache.hasProperty(
-                                            *pRangePropSet ), bHasAutoStyle,
-                *pRangePropSet, sCharStyleNames );
+                GetExport(), bDoSomething, bHasAutoStyle,
+                bDoSomething ? *pRangePropSet : Reference<XPropertySet>(),
+                sCharStyleNames );
 
             if( !sStyle.isEmpty() )
                 GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_STYLE_NAME,


More information about the Libreoffice-commits mailing list