bridges/source/cpp_uno/shared/vtablefactory.cxx | 1 filter/source/svg/svgexport.cxx | 1 idlc/source/idlccompile.cxx | 1 javaunohelper/source/preload.cxx | 16 +++++-------- oox/source/drawingml/table/tableproperties.cxx | 6 ---- sw/source/filter/ww8/ww8glsy.cxx | 2 - sw/source/filter/ww8/ww8par.cxx | 6 ++-- sw/source/filter/ww8/ww8par2.cxx | 2 - sw/source/filter/ww8/ww8par5.cxx | 2 - sw/source/filter/ww8/ww8scan.cxx | 29 +++++++++++++++--------- sw/source/filter/ww8/ww8scan.hxx | 2 - 11 files changed, 37 insertions(+), 31 deletions(-)
New commits: commit c96e8a174f915e46b0f0814271e53938d8f07373 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Dec 15 12:17:06 2014 +0000 Resolves: fdo#87248 assume 0 chse means use encoding that matches lid Change-Id: I813cc6bdc92b03bdfdd5202a85e958020a9c52c8 diff --git a/sw/source/filter/ww8/ww8glsy.cxx b/sw/source/filter/ww8/ww8glsy.cxx index 2836518..cb60ebf 100644 --- a/sw/source/filter/ww8/ww8glsy.cxx +++ b/sw/source/filter/ww8/ww8glsy.cxx @@ -197,7 +197,7 @@ bool WW8Glossary::Load( SwTextBlocks &rBlocks, bool bSaveRelFile ) std::vector<ww::bytes> aData; rtl_TextEncoding eStructCharSet = - WW8Fib::GetFIBCharset(pGlossary->chseTables); + WW8Fib::GetFIBCharset(pGlossary->chseTables, pGlossary->lid); WW8ReadSTTBF(true, *xTableStream, pGlossary->fcSttbfglsy, pGlossary->lcbSttbfglsy, 0, eStructCharSet, aStrings, &aData ); diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index 4d24c0a..94962bc 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -5001,8 +5001,8 @@ sal_uLong SwWW8ImplReader::CoreLoad(WW8Glossary *pGloss, const SwPosition &rPos) bVer67 = bVer6 || bVer7; bVer8 = (8 == pWwFib->nVersion); - eTextCharSet = WW8Fib::GetFIBCharset(pWwFib->chse); - eStructCharSet = WW8Fib::GetFIBCharset(pWwFib->chseTables); + eTextCharSet = WW8Fib::GetFIBCharset(pWwFib->chse, pWwFib->lid); + eStructCharSet = WW8Fib::GetFIBCharset(pWwFib->chseTables, pWwFib->lid); bWWBugNormal = pWwFib->nProduct == 0xc03d; @@ -5568,7 +5568,7 @@ namespace OUString sUniPassword = QueryPasswordForMedium( rMedium ); OString sPassword(OUStringToOString(sUniPassword, - WW8Fib::GetFIBCharset(pWwFib->chseTables))); + WW8Fib::GetFIBCharset(pWwFib->chseTables, pWwFib->lid))); sal_Int32 nLen = sPassword.getLength(); if( nLen <= 15 ) diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx index bbea4c0..4929642 100644 --- a/sw/source/filter/ww8/ww8par2.cxx +++ b/sw/source/filter/ww8/ww8par2.cxx @@ -4216,7 +4216,7 @@ void WW8RStyle::ImportOldFormatStyles() } rtl_TextEncoding eStructChrSet = WW8Fib::GetFIBCharset( - pIo->pWwFib->chseTables); + pIo->pWwFib->chseTables, pIo->pWwFib->lid); sal_uInt16 cstcStd(0); rSt.ReadUInt16( cstcStd ); diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx index f5b71fb..dbc1de5 100644 --- a/sw/source/filter/ww8/ww8scan.cxx +++ b/sw/source/filter/ww8/ww8scan.cxx @@ -3984,7 +3984,7 @@ WW8PLCFx_Book::WW8PLCFx_Book(SvStream* pTblSt, const WW8Fib& rFib) pBook[1] = new WW8PLCFspecial(pTblSt,rFib.fcPlcfbkl,rFib.lcbPlcfbkl,0); - rtl_TextEncoding eStructChrSet = WW8Fib::GetFIBCharset(rFib.chseTables); + rtl_TextEncoding eStructChrSet = WW8Fib::GetFIBCharset(rFib.chseTables, rFib.lid); WW8ReadSTTBF( (7 < rFib.nVersion), *pTblSt, rFib.fcSttbfbkmk, rFib.lcbSttbfbkmk, 0, eStructChrSet, aBookNames ); @@ -5944,14 +5944,23 @@ bool WW8Fib::Write(SvStream& rStrm) return 0 == rStrm.GetError(); } -rtl_TextEncoding WW8Fib::GetFIBCharset(sal_uInt16 chs) +rtl_TextEncoding WW8Fib::GetFIBCharset(sal_uInt16 chs, sal_uInt16 nLidLocale) { OSL_ENSURE(chs <= 0x100, "overflowed winword charset set"); - rtl_TextEncoding eCharSet = - (0x0100 == chs) - ? RTL_TEXTENCODING_APPLE_ROMAN - : rtl_getTextEncodingFromWindowsCharset( static_cast<sal_uInt8>(chs) ); - return eCharSet; + if (chs == 0x0100) + return RTL_TEXTENCODING_APPLE_ROMAN; + if (chs == 0 && nLidLocale != 0 && nLidLocale >= 999) + { + /* + nLidLocale: + language stamp -- localized version In pre-WinWord 2.0 files this + value was the nLocale. If value is < 999, then it is the nLocale, + otherwise it is the lid. + */ + ::com::sun::star::lang::Locale aLocale(LanguageTag::convertToLocale(nLidLocale)); + return msfilter::util::getBestTextEncodingFromLocale(aLocale); + } + return rtl_getTextEncodingFromWindowsCharset(static_cast<sal_uInt8>(chs)); } WW8Style::WW8Style(SvStream& rStream, WW8Fib& rFibPara) @@ -6334,7 +6343,7 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib& rFib ) the font, e.g load the doc in 97 and save to see the unicode ver of the asian fontnames in that example to confirm. */ - rtl_TextEncoding eEnc = WW8Fib::GetFIBCharset(p->chs); + rtl_TextEncoding eEnc = WW8Fib::GetFIBCharset(p->chs, rFib.lid); if ((eEnc == RTL_TEXTENCODING_SYMBOL) || (eEnc == RTL_TEXTENCODING_DONTKNOW)) eEnc = RTL_TEXTENCODING_MS_1252; @@ -6364,7 +6373,7 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib& rFib ) the font, e.g load the doc in 97 and save to see the unicode ver of the asian fontnames in that example to confirm. */ - rtl_TextEncoding eEnc = WW8Fib::GetFIBCharset(p->chs); + rtl_TextEncoding eEnc = WW8Fib::GetFIBCharset(p->chs, rFib.lid); if ((eEnc == RTL_TEXTENCODING_SYMBOL) || (eEnc == RTL_TEXTENCODING_DONTKNOW)) eEnc = RTL_TEXTENCODING_MS_1252; p->sFontname = OUString(pVer6->szFfn, rtl_str_getLength(pVer6->szFfn), eEnc); @@ -6378,7 +6387,7 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib& rFib ) { //#i18369# if it's a symbol font set Symbol as fallback if ( - RTL_TEXTENCODING_SYMBOL == WW8Fib::GetFIBCharset(p->chs) + RTL_TEXTENCODING_SYMBOL == WW8Fib::GetFIBCharset(p->chs, rFib.lid) && p->sFontname!="Symbol" ) { diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx index 2dec722..dd3638b 100644 --- a/sw/source/filter/ww8/ww8scan.hxx +++ b/sw/source/filter/ww8/ww8scan.hxx @@ -1433,7 +1433,7 @@ public: WW8Fib( sal_uInt8 nVersion = 6, bool bDot = false ); bool WriteHeader(SvStream& rStrm); bool Write(SvStream& rStrm); - static rtl_TextEncoding GetFIBCharset(sal_uInt16 chs); + static rtl_TextEncoding GetFIBCharset(sal_uInt16 chs, sal_uInt16 nLidLocale); ww::WordVersion GetFIBVersion() const; WW8_CP GetBaseCp(ManTypes nType) const; sal_Unicode getNumDecimalSep() const { return nNumDecimalSep;} commit dc46c9266afa239281fd4c624be6be5700582fb6 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Dec 15 09:52:22 2014 +0000 coverity#1078451 Unchecked return value Change-Id: I286df7dc70e7f8e6e911f02d2e8aa6ebb390ef61 diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx index a94b503..2d85b8e 100644 --- a/sw/source/filter/ww8/ww8par5.cxx +++ b/sw/source/filter/ww8/ww8par5.cxx @@ -1417,7 +1417,7 @@ eF_ResT SwWW8ImplReader::Read_F_DocInfo( WW8FieldDesc* pF, OUString& rStr ) break; case '*': //Skip over MERGEFORMAT - aReadParam.SkipToNextToken(); + (void)aReadParam.SkipToNextToken(); break; } } commit 1ee1d0992439177f206faf0748ebf5d75fd582f5 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Dec 15 09:51:46 2014 +0000 no point checking for null before delete Change-Id: I58cbb075a56518d71874137180ad92ae764ec4bf diff --git a/oox/source/drawingml/table/tableproperties.cxx b/oox/source/drawingml/table/tableproperties.cxx index 85d758a..4de51ee 100644 --- a/oox/source/drawingml/table/tableproperties.cxx +++ b/oox/source/drawingml/table/tableproperties.cxx @@ -296,11 +296,7 @@ void TableProperties::pushToPropSet( const ::oox::core::XmlFilterBase& rFilterBa if(mbOwnTblStyle) { TableStyle* pTableStyle = (TableStyle*)&rTableStyle; - if(pTableStyle != NULL) - { - delete pTableStyle; - pTableStyle = NULL; - } + delete pTableStyle; mbOwnTblStyle = false; } } commit 3ec0a2f69e6fd5e870cdf7185e667deac67e036f Author: Caolán McNamara <caol...@redhat.com> Date: Mon Dec 15 09:46:03 2014 +0000 document coverity#735433 Logically dead code Change-Id: I4a6917c78b527245ff1ae78c180aaf3a4a198045 diff --git a/filter/source/svg/svgexport.cxx b/filter/source/svg/svgexport.cxx index f08f9a4..678aa44 100644 --- a/filter/source/svg/svgexport.cxx +++ b/filter/source/svg/svgexport.cxx @@ -2262,6 +2262,7 @@ IMPL_LINK( SVGFilter, CalcFieldHdl, EditFieldInfo*, pInfo ) sDate += SvxDateField::GetFormatted( aDate, eDateFormat, *pNumberFormatter, eLang ); } break; + // coverity[dead_error_begin] - following conditions exist to avoid compiler warning case SVXDATEFORMAT_STDSMALL: case SVXDATEFORMAT_A: // 13.02.96 case SVXDATEFORMAT_B: // 13.02.1996 commit 35f75566501d4c2455b393e04d25da11c67495ee Author: Caolán McNamara <caol...@redhat.com> Date: Mon Dec 15 09:41:36 2014 +0000 add link to mkstemp coverity warning wrt threading fiasco Change-Id: Ic8fea32a163ca5e85ac3e2a34d04e4fa1a1943f9 diff --git a/bridges/source/cpp_uno/shared/vtablefactory.cxx b/bridges/source/cpp_uno/shared/vtablefactory.cxx index 865dd66..2e2d74c 100644 --- a/bridges/source/cpp_uno/shared/vtablefactory.cxx +++ b/bridges/source/cpp_uno/shared/vtablefactory.cxx @@ -247,6 +247,7 @@ bool VtableFactory::createBlock(Block &block, sal_Int32 slotCount) const OString aTmpName = OUStringToOString(strDirectory, osl_getThreadTextEncoding()); char *tmpfname = new char[aTmpName.getLength()+1]; strncpy(tmpfname, aTmpName.getStr(), aTmpName.getLength()+1); + // coverity[secure_temp] - https://communities.coverity.com/thread/3179 if ((block.fd = mkstemp(tmpfname)) == -1) fprintf(stderr, "mkstemp(\"%s\") failed: %s\n", tmpfname, strerror(errno)); if (block.fd == -1) diff --git a/idlc/source/idlccompile.cxx b/idlc/source/idlccompile.cxx index 695db41..45dbfbc 100644 --- a/idlc/source/idlccompile.cxx +++ b/idlc/source/idlccompile.cxx @@ -153,6 +153,7 @@ OString makeTempName(const OString& prefix) strncat(tmpFilePattern, "XXXXXX", sizeof(tmpFilePattern)-1-strlen(tmpFilePattern)); #ifdef SAL_UNX + // coverity[secure_temp] - https://communities.coverity.com/thread/3179 int nDescriptor = mkstemp(tmpFilePattern); if( -1 == nDescriptor ) { commit 78d35f281c33b9f62a5b7c8d20817ea822e1b0c8 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Dec 15 09:38:32 2014 +0000 silence coverity#705667 Resource leak still leaks on usual success case of course Change-Id: Ia6e0f61b5a08271c03690bbb1c0af59081bea663 diff --git a/javaunohelper/source/preload.cxx b/javaunohelper/source/preload.cxx index 57c980a..a4e9c20 100644 --- a/javaunohelper/source/preload.cxx +++ b/javaunohelper/source/preload.cxx @@ -22,7 +22,7 @@ #include "jni.h" #include "rtl/ustring.hxx" -#include "osl/module.h" +#include "osl/module.hxx" #include "juhx-export-types.hxx" @@ -51,9 +51,8 @@ static bool inited_juhx( JNIEnv * jni_env ) if (s_inited) return true; OUString lib_name = SAL_DLLPREFIX "juhx" SAL_DLLEXTENSION; - oslModule hModule = - osl_loadModuleRelative( &thisModule, lib_name.pData, SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL ); - if (0 == hModule) + osl::Module aModule; + if (!aModule.loadRelative(&thisModule, lib_name, SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL)) { jclass c = jni_env->FindClass( "java/lang/RuntimeException" ); jni_env->ThrowNew( @@ -64,16 +63,14 @@ static bool inited_juhx( JNIEnv * jni_env ) { OUString symbol = "Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1writeInfo"; - s_writeInfo = (javaunohelper::detail::Func_writeInfo *)osl_getFunctionSymbol( - hModule, symbol.pData ); + s_writeInfo = (javaunohelper::detail::Func_writeInfo *)aModule.getFunctionSymbol(symbol); symbol = "Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1getFactory"; - s_getFactory = (javaunohelper::detail::Func_getFactory *)osl_getFunctionSymbol( - hModule, symbol.pData ); + s_getFactory = (javaunohelper::detail::Func_getFactory *)aModule.getFunctionSymbol(symbol); symbol = "Java_com_sun_star_comp_helper_Bootstrap_cppuhelper_1bootstrap"; s_bootstrap = - (javaunohelper::detail::Func_bootstrap *)osl_getFunctionSymbol( hModule, symbol.pData ); + (javaunohelper::detail::Func_bootstrap *)aModule.getFunctionSymbol(symbol); if (0 == s_writeInfo || 0 == s_getFactory || @@ -84,6 +81,7 @@ static bool inited_juhx( JNIEnv * jni_env ) c, "error resolving symbols of " SAL_DLLPREFIX "juhx" SAL_DLLEXTENSION "!" ); return false; } + aModule.release(); } s_inited = true; return true;
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits