summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-08-26 18:43:14 +0200
committerStephan Bergmann <sbergman@redhat.com>2014-08-26 18:43:14 +0200
commitd71aff6c47d1fc40d425a4d7fc4e718c7de5acdc (patch)
tree504c3a74e93425b830c446a0139a803992f9ff11
parent7c82d8a5c7595ae19e662ae4d64527512828451b (diff)
Avoid undefined null pointer dereferences
...as observed during CppunitTest_sw_rtfexport under -fsanitize=undefined Change-Id: I8f488188e233c1814a7b4bb3d21e7398d7d7c15a
-rw-r--r--sw/source/filter/ww8/docxattributeoutput.cxx8
-rw-r--r--sw/source/filter/ww8/rtfattributeoutput.cxx6
-rw-r--r--sw/source/filter/ww8/wrtw8nds.cxx4
-rw-r--r--sw/source/filter/ww8/wrtw8sty.cxx14
-rw-r--r--sw/source/filter/ww8/wrtww8.hxx4
-rw-r--r--sw/source/filter/ww8/ww8atr.cxx6
6 files changed, 21 insertions, 21 deletions
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index f6ec6e35896b..3e78a1a97bff 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -2138,7 +2138,7 @@ void DocxAttributeOutput::StartRuby( const SwTxtNode& rNode, sal_Int32 nPos, con
SwWW8AttrIter aAttrIt( m_rExport, rNode );
aAttrIt.OutAttr( nPos, true );
- sal_uInt16 nStyle = m_rExport.GetId( *rRuby.GetTxtRuby()->GetCharFmt() );
+ sal_uInt16 nStyle = m_rExport.GetId( rRuby.GetTxtRuby()->GetCharFmt() );
OString aStyleId(m_rExport.pStyles->GetStyleId(nStyle));
m_pSerializer->singleElementNS( XML_w, XML_rStyle,
FSNS( XML_w, XML_val ), aStyleId.getStr(), FSEND );
@@ -6361,14 +6361,14 @@ void DocxAttributeOutput::TextINetFormat( const SwFmtINetFmt& rLink )
const SwTxtINetFmt* pINetFmt = rLink.GetTxtINetFmt();
const SwCharFmt* pCharFmt = pINetFmt->GetCharFmt();
- OString aStyleId(m_rExport.pStyles->GetStyleId(m_rExport.GetId(*pCharFmt)));
+ OString aStyleId(m_rExport.pStyles->GetStyleId(m_rExport.GetId(pCharFmt)));
m_pSerializer->singleElementNS( XML_w, XML_rStyle, FSNS( XML_w, XML_val ), aStyleId.getStr(), FSEND );
}
void DocxAttributeOutput::TextCharFormat( const SwFmtCharFmt& rCharFmt )
{
- OString aStyleId(m_rExport.pStyles->GetStyleId(m_rExport.GetId(*rCharFmt.GetCharFmt())));
+ OString aStyleId(m_rExport.pStyles->GetStyleId(m_rExport.GetId(rCharFmt.GetCharFmt())));
m_pSerializer->singleElementNS( XML_w, XML_rStyle, FSNS( XML_w, XML_val ), aStyleId.getStr(), FSEND );
}
@@ -6579,7 +6579,7 @@ void DocxAttributeOutput::TextFootnote_Impl( const SwFmtFtn& rFootnote )
// footnote/endnote run properties
const SwCharFmt* pCharFmt = rInfo.GetAnchorCharFmt( *m_rExport.pDoc );
- OString aStyleId(m_rExport.pStyles->GetStyleId(m_rExport.GetId(*pCharFmt)));
+ OString aStyleId(m_rExport.pStyles->GetStyleId(m_rExport.GetId(pCharFmt)));
m_pSerializer->singleElementNS( XML_w, XML_rStyle, FSNS( XML_w, XML_val ), aStyleId.getStr(), FSEND );
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx
index 6364b98c0f30..107aea3a8945 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -2410,7 +2410,7 @@ void RtfAttributeOutput::TextINetFormat(const SwFmtINetFmt& rURL)
if (pTxtAtr && 0 != (pFmt = pTxtAtr->GetCharFmt()))
{
- sal_uInt16 nStyle = m_rExport.GetId(*pFmt);
+ sal_uInt16 nStyle = m_rExport.GetId(pFmt);
OString* pString = m_rExport.GetStyle(nStyle);
if (pString)
m_aStyles.append(*pString);
@@ -2420,7 +2420,7 @@ void RtfAttributeOutput::TextINetFormat(const SwFmtINetFmt& rURL)
void RtfAttributeOutput::TextCharFormat(const SwFmtCharFmt& rCharFmt)
{
- sal_uInt16 nStyle = m_rExport.GetId(*rCharFmt.GetCharFmt());
+ sal_uInt16 nStyle = m_rExport.GetId(rCharFmt.GetCharFmt());
m_aStyles.append(OOO_STRING_SVTOOLS_RTF_CS);
m_aStyles.append((sal_Int32)nStyle);
OString* pString = m_rExport.GetStyle(nStyle);
@@ -2626,7 +2626,7 @@ void RtfAttributeOutput::ParaNumRule_Impl(const SwTxtNode* pTxtNd, sal_Int32 nLv
aLR.SetTxtLeft(aLR.GetTxtLeft() + pFmt->GetIndentAt());
aLR.SetTxtFirstLineOfst(pFmt->GetFirstLineOffset());
- sal_uInt16 nStyle = m_rExport.GetId(*pFmt->GetCharFmt());
+ sal_uInt16 nStyle = m_rExport.GetId(pFmt->GetCharFmt());
OString* pString = m_rExport.GetStyle(nStyle);
if (pString)
m_aStyles.append(*pString);
diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx
index 266997bfdf2b..c51d4ca0a2ac 100644
--- a/sw/source/filter/ww8/wrtw8nds.cxx
+++ b/sw/source/filter/ww8/wrtw8nds.cxx
@@ -1689,7 +1689,7 @@ void WW8AttributeOutput::FormatDrop( const SwTxtNode& rNode, const SwFmtDrop &rS
if ( pSwCharFmt )
{
m_rWW8Export.InsUInt16( NS_sprm::LN_CIstd );
- m_rWW8Export.InsUInt16( m_rWW8Export.GetId( *pSwCharFmt ) );
+ m_rWW8Export.InsUInt16( m_rWW8Export.GetId( pSwCharFmt ) );
}
m_rWW8Export.InsUInt16( NS_sprm::LN_CHpsPos ); // Lower the chars
@@ -1704,7 +1704,7 @@ void WW8AttributeOutput::FormatDrop( const SwTxtNode& rNode, const SwFmtDrop &rS
if ( pSwCharFmt )
{
m_rWW8Export.InsUInt16( 80 );
- m_rWW8Export.InsUInt16( m_rWW8Export.GetId( *pSwCharFmt ) );
+ m_rWW8Export.InsUInt16( m_rWW8Export.GetId( pSwCharFmt ) );
}
m_rWW8Export.pO->push_back( 101 ); // Lower the chars
diff --git a/sw/source/filter/ww8/wrtw8sty.cxx b/sw/source/filter/ww8/wrtw8sty.cxx
index ea10666f6cf4..ff70ccbfb5e5 100644
--- a/sw/source/filter/ww8/wrtw8sty.cxx
+++ b/sw/source/filter/ww8/wrtw8sty.cxx
@@ -117,9 +117,9 @@ public:
// GetId( SwCharFmt ) for use in text -> zero is not allowed,
// use "Default Char Style" instead
-sal_uInt16 MSWordExportBase::GetId( const SwCharFmt& rFmt ) const
+sal_uInt16 MSWordExportBase::GetId( const SwCharFmt* pFmt ) const
{
- sal_uInt16 nRet = pStyles->GetSlot( rFmt );
+ sal_uInt16 nRet = pStyles->GetSlot( pFmt );
return ( nRet != 0x0fff ) ? nRet : 10; // Default Char Style
}
@@ -127,7 +127,7 @@ sal_uInt16 MSWordExportBase::GetId( const SwCharFmt& rFmt ) const
// "Standard" instead
sal_uInt16 MSWordExportBase::GetId( const SwTxtFmtColl& rColl ) const
{
- sal_uInt16 nRet = pStyles->GetSlot( rColl );
+ sal_uInt16 nRet = pStyles->GetSlot( &rColl );
return ( nRet != 0xfff ) ? nRet : 0; // Default TxtFmtColl
}
@@ -163,11 +163,11 @@ MSWordStyles::~MSWordStyles()
}
// Sty_SetWWSlot() dependencies for the styles -> zero is allowed
-sal_uInt16 MSWordStyles::GetSlot( const SwFmt& rFmt ) const
+sal_uInt16 MSWordStyles::GetSlot( const SwFmt* pFmt ) const
{
sal_uInt16 n;
for ( n = 0; n < nUsedSlots; n++ )
- if ( pFmtA[n] == &rFmt )
+ if ( pFmtA[n] == pFmt )
return n;
return 0xfff; // 0xfff: WW: zero
}
@@ -541,7 +541,7 @@ void MSWordStyles::GetStyleData( SwFmt* pFmt, bool& bFmtColl, sal_uInt16& nBase,
// Derived from?
if ( !pFmt->IsDefault() )
- nBase = GetSlot( *pFmt->DerivedFrom() );
+ nBase = GetSlot( pFmt->DerivedFrom() );
SwFmt* pNext;
if ( bFmtColl )
@@ -549,7 +549,7 @@ void MSWordStyles::GetStyleData( SwFmt* pFmt, bool& bFmtColl, sal_uInt16& nBase,
else
pNext = pFmt; // CharFmt: next CharFmt == self
- nNext = GetSlot( *pNext );
+ nNext = GetSlot( pNext );
}
void WW8AttributeOutput::DefaultStyle( sal_uInt16 nStyle )
diff --git a/sw/source/filter/ww8/wrtww8.hxx b/sw/source/filter/ww8/wrtww8.hxx
index d4eaa228db4c..d2ca234b5409 100644
--- a/sw/source/filter/ww8/wrtww8.hxx
+++ b/sw/source/filter/ww8/wrtww8.hxx
@@ -590,7 +590,7 @@ public:
sal_uInt16 GetId( const SwTxtFmtColl& rColl ) const;
/// Return the numeric id of the style.
- sal_uInt16 GetId( const SwCharFmt& rFmt ) const;
+ sal_uInt16 GetId( const SwCharFmt* pFmt ) const;
sal_uInt16 GetId( const SwTOXType& rTOXType );
@@ -1611,7 +1611,7 @@ public:
void OutputStylesTable();
/// Get id of the style (rFmt).
- sal_uInt16 GetSlot( const SwFmt& rFmt ) const;
+ sal_uInt16 GetSlot( const SwFmt* pFmt ) const;
/// Get styleId of the nId-th style (nId is its position in pFmtA).
OString GetStyleId(sal_uInt16 nId) const;
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index 5e8de514b08f..82f8ea053b91 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -1718,7 +1718,7 @@ void WW8AttributeOutput::TextINetFormat( const SwFmtINetFmt& rINet )
else
m_rWW8Export.pO->push_back( 80 );
- m_rWW8Export.InsUInt16( m_rWW8Export.GetId( *pFmt ) );
+ m_rWW8Export.InsUInt16( m_rWW8Export.GetId( pFmt ) );
}
}
@@ -3281,7 +3281,7 @@ void WW8Export::WriteFtnBegin( const SwFmtFtn& rFtn, ww::bytes* pOutArr )
SwWW8Writer::InsUInt16( aAttrArr, NS_sprm::LN_CIstd );
else
aAttrArr.push_back( 80 );
- SwWW8Writer::InsUInt16( aAttrArr, GetId( *pCFmt ) );
+ SwWW8Writer::InsUInt16( aAttrArr, GetId( pCFmt ) );
// fSpec-Attribut true
// Fuer Auto-Nummer muss ein Spezial-Zeichen
@@ -3403,7 +3403,7 @@ void WW8AttributeOutput::TextCharFormat( const SwFmtCharFmt& rCharFmt )
else
m_rWW8Export.pO->push_back( 80 );
- m_rWW8Export.InsUInt16( m_rWW8Export.GetId( *rCharFmt.GetCharFmt() ) );
+ m_rWW8Export.InsUInt16( m_rWW8Export.GetId( rCharFmt.GetCharFmt() ) );
}
}