sc/qa/unit/data/xls/fail/CVE-2006-3059-1.xls |binary sc/qa/unit/data/xls/pass/CVE-2006-3086-1.xls |binary sc/qa/unit/data/xls/pass/CVE-2009-3129-1.xls |binary sc/qa/unit/data/xls/pass/CVE-2010-0822-1.xls |binary sc/qa/unit/data/xls/pass/CVE-2010-1245-1.xls |binary sc/qa/unit/data/xls/pass/CVE-2010-1248-1.xls |binary sc/qa/unit/data/xls/pass/CVE-2011-0105-1.xls |binary sc/qa/unit/data/xls/pass/CVE-2011-0978-1.xls |binary sc/qa/unit/filters-test.cxx | 3 + sc/source/filter/excel/xicontent.cxx | 48 ++++++++++++++------------- vcl/win/source/gdi/salgdi3.cxx | 3 + 11 files changed, 31 insertions(+), 23 deletions(-)
New commits: commit d4c791b13efa973d1d85d7ebce3c449545520996 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Mar 13 10:45:16 2012 +0000 some more test documents diff --git a/sc/qa/unit/data/xls/pass/CVE-2009-3129-1.xls b/sc/qa/unit/data/xls/pass/CVE-2009-3129-1.xls new file mode 100644 index 0000000..703cfda Binary files /dev/null and b/sc/qa/unit/data/xls/pass/CVE-2009-3129-1.xls differ diff --git a/sc/qa/unit/data/xls/pass/CVE-2010-1245-1.xls b/sc/qa/unit/data/xls/pass/CVE-2010-1245-1.xls new file mode 100644 index 0000000..90b8301 Binary files /dev/null and b/sc/qa/unit/data/xls/pass/CVE-2010-1245-1.xls differ diff --git a/sc/qa/unit/data/xls/pass/CVE-2010-1248-1.xls b/sc/qa/unit/data/xls/pass/CVE-2010-1248-1.xls new file mode 100644 index 0000000..94c02d0 Binary files /dev/null and b/sc/qa/unit/data/xls/pass/CVE-2010-1248-1.xls differ diff --git a/sc/qa/unit/data/xls/pass/CVE-2011-0105-1.xls b/sc/qa/unit/data/xls/pass/CVE-2011-0105-1.xls new file mode 100644 index 0000000..dafb72c Binary files /dev/null and b/sc/qa/unit/data/xls/pass/CVE-2011-0105-1.xls differ diff --git a/sc/qa/unit/data/xls/pass/CVE-2011-0978-1.xls b/sc/qa/unit/data/xls/pass/CVE-2011-0978-1.xls new file mode 100644 index 0000000..9ccffbd Binary files /dev/null and b/sc/qa/unit/data/xls/pass/CVE-2011-0978-1.xls differ commit 3beb6f66cbead4526ff74e212cd6af1f837f665b Author: Caolán McNamara <caol...@redhat.com> Date: Tue Mar 13 10:44:46 2012 +0000 missing namespace diff --git a/vcl/win/source/gdi/salgdi3.cxx b/vcl/win/source/gdi/salgdi3.cxx index 674567d..4d866f9 100644 --- a/vcl/win/source/gdi/salgdi3.cxx +++ b/vcl/win/source/gdi/salgdi3.cxx @@ -551,7 +551,8 @@ namespace const com::sun::star::lang::Locale& rLocale ) { // get the default font for a specified locale - const DefaultFontConfiguration& rDefaults = utl::DefaultFontConfiguration::get(); + const utl::DefaultFontConfiguration& rDefaults = + utl::DefaultFontConfiguration::get(); const rtl::OUString aDefault = rDefaults.getUserInterfaceFont(rLocale); return rDevFontList.ImplFindByTokenNames(aDefault); } commit 1038fd6d4bc1d6c49928446a449e2903bd04b9c8 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Mar 12 17:07:33 2012 +0000 add some tests diff --git a/sc/qa/unit/data/xls/fail/.gitignore b/sc/qa/unit/data/xls/fail/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/sc/qa/unit/data/xls/fail/CVE-2006-3059-1.xls b/sc/qa/unit/data/xls/fail/CVE-2006-3059-1.xls new file mode 100644 index 0000000..e58082f Binary files /dev/null and b/sc/qa/unit/data/xls/fail/CVE-2006-3059-1.xls differ diff --git a/sc/qa/unit/data/xls/indeterminate/.gitignore b/sc/qa/unit/data/xls/indeterminate/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/sc/qa/unit/data/xls/pass/.gitignore b/sc/qa/unit/data/xls/pass/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/sc/qa/unit/data/xls/pass/CVE-2006-3086-1.xls b/sc/qa/unit/data/xls/pass/CVE-2006-3086-1.xls new file mode 100644 index 0000000..675f4f7 Binary files /dev/null and b/sc/qa/unit/data/xls/pass/CVE-2006-3086-1.xls differ diff --git a/sc/qa/unit/data/xls/pass/CVE-2010-0822-1.xls b/sc/qa/unit/data/xls/pass/CVE-2010-0822-1.xls new file mode 100644 index 0000000..076d79f Binary files /dev/null and b/sc/qa/unit/data/xls/pass/CVE-2010-0822-1.xls differ diff --git a/sc/qa/unit/filters-test.cxx b/sc/qa/unit/filters-test.cxx index dc70d5e..de17ced 100644 --- a/sc/qa/unit/filters-test.cxx +++ b/sc/qa/unit/filters-test.cxx @@ -199,6 +199,9 @@ void ScFiltersTest::testCVEs() //not indicate that it imported as .slk. testDir(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SYLK")), getURLFromSrc("/sc/qa/unit/data/slk/"), rtl::OUString()); + + testDir(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MS Excel 97")), + getURLFromSrc("/sc/qa/unit/data/xls/"), rtl::OUString()); } #if TEST_BUG_FILES diff --git a/sc/source/filter/excel/xicontent.cxx b/sc/source/filter/excel/xicontent.cxx index 74422f2..50b72e8 100644 --- a/sc/source/filter/excel/xicontent.cxx +++ b/sc/source/filter/excel/xicontent.cxx @@ -80,8 +80,8 @@ XclImpSst::XclImpSst( const XclImpRoot& rRoot ) : void XclImpSst::ReadSst( XclImpStream& rStrm ) { - sal_uInt32 nStrCount; rStrm.Ignore( 4 ); + sal_uInt32 nStrCount(0); rStrm >> nStrCount; maStrings.clear(); maStrings.reserve( static_cast< size_t >( nStrCount ) ); @@ -136,7 +136,7 @@ void lclAppendString32( String& rString, XclImpStream& rStrm, bool b16Bit ) @param b16Bit true = 16-bit characters, false = 8-bit characters. */ void lclIgnoreString32( XclImpStream& rStrm, bool b16Bit ) { - sal_uInt32 nChars; + sal_uInt32 nChars(0); rStrm >> nChars; if( b16Bit ) nChars *= 2; @@ -240,10 +240,10 @@ String XclImpHyperlink::ReadEmbeddedData( XclImpStream& rStrm ) OSL_ENSURE_BIFF( rRoot.GetBiff() == EXC_BIFF8 ); - sal_uInt32 nFlags; XclGuid aGuid; rStrm >> aGuid; rStrm.Ignore( 4 ); + sal_uInt32 nFlags(0); rStrm >> nFlags; OSL_ENSURE( aGuid == XclTools::maGuidStdLink, "XclImpHyperlink::ReadEmbeddedData - unknown header GUID" ); @@ -285,10 +285,11 @@ String XclImpHyperlink::ReadEmbeddedData( XclImpStream& rStrm ) lclAppendString32( *xShortName, rStrm, false ); rStrm.Ignore( 24 ); - sal_uInt32 nStrLen; + sal_uInt32 nStrLen = 0; rStrm >> nStrLen; if( nStrLen ) { + nStrLen = 0; rStrm >> nStrLen; nStrLen /= 2; // it's byte count here... rStrm.Ignore( 2 ); @@ -301,7 +302,7 @@ String XclImpHyperlink::ReadEmbeddedData( XclImpStream& rStrm ) } else if( aGuid == XclTools::maGuidUrlMoniker ) { - sal_uInt32 nStrLen; + sal_uInt32 nStrLen(0); rStrm >> nStrLen; nStrLen /= 2; // it's byte count here... xLongName.reset( new String ); @@ -516,9 +517,9 @@ void XclImpCondFormat::ReadCF( XclImpStream& rStrm ) if( maRanges.empty() ) return; - sal_uInt8 nType, nOperator; - sal_uInt16 nFmlaSize1, nFmlaSize2; - sal_uInt32 nFlags; + sal_uInt8 nType(0), nOperator(0); + sal_uInt16 nFmlaSize1(0), nFmlaSize2(0); + sal_uInt32 nFlags(0); rStrm >> nType >> nOperator >> nFmlaSize1 >> nFmlaSize2 >> nFlags; rStrm.Ignore( 2 ); @@ -575,8 +576,8 @@ void XclImpCondFormat::ReadCF( XclImpStream& rStrm ) if( ::get_flag( nFlags, EXC_CF_BLOCK_BORDER ) ) { - sal_uInt16 nLineStyle; - sal_uInt32 nLineColor; + sal_uInt16 nLineStyle(0); + sal_uInt32 nLineColor(0); rStrm >> nLineStyle >> nLineColor; rStrm.Ignore( 2 ); @@ -589,7 +590,7 @@ void XclImpCondFormat::ReadCF( XclImpStream& rStrm ) if( ::get_flag( nFlags, EXC_CF_BLOCK_AREA ) ) { - sal_uInt16 nPattern, nColor; + sal_uInt16 nPattern(0), nColor(0); rStrm >> nPattern >> nColor; XclImpCellArea aArea; @@ -706,7 +707,7 @@ void XclImpValidationManager::ReadDval( XclImpStream& rStrm ) const XclImpRoot& rRoot = rStrm.GetRoot(); OSL_ENSURE_BIFF( rRoot.GetBiff() == EXC_BIFF8 ); - sal_uInt32 nObjId; + sal_uInt32 nObjId(0); rStrm.Ignore( 10 ); rStrm >> nObjId; if( nObjId != EXC_DVAL_NOOBJ ) @@ -726,7 +727,7 @@ void XclImpValidationManager::ReadDV( XclImpStream& rStrm ) ExcelToSc& rFmlaConv = rRoot.GetOldFmlaConverter(); // flags - sal_uInt32 nFlags; + sal_uInt32 nFlags(0); rStrm >> nFlags; // message strings @@ -744,7 +745,6 @@ void XclImpValidationManager::ReadDV( XclImpStream& rStrm ) // Not enough bytes left in the record. Bail out. return; - sal_uInt16 nLen; // first formula // string list is single tStr token with NUL separators -> replace them with LF @@ -752,6 +752,8 @@ void XclImpValidationManager::ReadDV( XclImpStream& rStrm ) SAL_WNODEPRECATED_DECLARATIONS_PUSH ::std::auto_ptr< ScTokenArray > xTokArr1; SAL_WNODEPRECATED_DECLARATIONS_POP + + sal_uInt16 nLen = 0; rStrm >> nLen; rStrm.Ignore( 2 ); if( nLen > 0 ) @@ -769,6 +771,8 @@ void XclImpValidationManager::ReadDV( XclImpStream& rStrm ) SAL_WNODEPRECATED_DECLARATIONS_PUSH ::std::auto_ptr< ScTokenArray > xTokArr2; SAL_WNODEPRECATED_DECLARATIONS_POP + + nLen = 0; rStrm >> nLen; rStrm.Ignore( 2 ); if( nLen > 0 ) @@ -923,8 +927,8 @@ void XclImpWebQuery::ReadWqstring( XclImpStream& rStrm ) void XclImpWebQuery::ReadWqsettings( XclImpStream& rStrm ) { - sal_uInt16 nFlags; rStrm.Ignore( 10 ); + sal_uInt16 nFlags(0); rStrm >> nFlags; rStrm.Ignore( 10 ); rStrm >> mnRefresh; @@ -1048,7 +1052,7 @@ XclImpDecrypterRef lclReadFilepass5( XclImpStream& rStrm ) OSL_ENSURE( rStrm.GetRecLeft() == 4, "lclReadFilepass5 - wrong record size" ); if( rStrm.GetRecLeft() == 4 ) { - sal_uInt16 nKey, nHash; + sal_uInt16 nKey(0), nHash(0); rStrm >> nKey >> nHash; xDecr.reset( new XclImpBiff5Decrypter( nKey, nHash ) ); } @@ -1082,7 +1086,7 @@ XclImpDecrypterRef lclReadFilepass8( XclImpStream& rStrm ) { XclImpDecrypterRef xDecr; - sal_uInt16 nMode; + sal_uInt16 nMode(0); rStrm >> nMode; switch( nMode ) { @@ -1093,7 +1097,7 @@ XclImpDecrypterRef lclReadFilepass8( XclImpStream& rStrm ) case EXC_FILEPASS_BIFF8: { rStrm.Ignore( 2 ); - sal_uInt16 nSubMode; + sal_uInt16 nSubMode(0); rStrm >> nSubMode; switch( nSubMode ) { @@ -1240,7 +1244,7 @@ void XclImpSheetProtectBuffer::ReadOptions( XclImpStream& rStrm, SCTAB nTab ) // feature type can be either 2 or 4. If 2, this record stores flag for // enhanced protection, whereas if 4 it stores flag for smart tag. - sal_uInt16 nFeatureType; + sal_uInt16 nFeatureType(0); rStrm >> nFeatureType; if (nFeatureType != 2) // We currently only support import of enhanced protection data. @@ -1252,14 +1256,14 @@ void XclImpSheetProtectBuffer::ReadOptions( XclImpStream& rStrm, SCTAB nTab ) // feature data. If -1 it depends on the feature type imported earlier. // For enhanced protection data, the size is always 4. For the most xls // documents out there this value is almost always -1. - sal_Int32 nFlagSize; + sal_Int32 nFlagSize(0); rStrm >> nFlagSize; if (nFlagSize != -1) return; // There are actually 4 bytes to read, but the upper 2 bytes currently // don't store any bits. - sal_uInt16 nOptions; + sal_uInt16 nOptions(0); rStrm >> nOptions; Sheet* pSheet = GetSheetItem(nTab); @@ -1269,7 +1273,7 @@ void XclImpSheetProtectBuffer::ReadOptions( XclImpStream& rStrm, SCTAB nTab ) void XclImpSheetProtectBuffer::ReadPasswordHash( XclImpStream& rStrm, SCTAB nTab ) { - sal_uInt16 nHash; + sal_uInt16 nHash(0); rStrm >> nHash; Sheet* pSheet = GetSheetItem(nTab); if (pSheet)
_______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits