New Defects reported by Coverity Scan for LibreOffice
scan-admin at coverity.com
scan-admin at coverity.com
Thu Feb 25 18:45:43 UTC 2021
Hi,
Please find the latest report on new defect(s) introduced to LibreOffice found with Coverity Scan.
3 new defect(s) introduced to LibreOffice found with Coverity Scan.
1 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.
New defect(s) Reported-by: Coverity Scan
Showing 3 of 3 defect(s)
** CID 1473323: Incorrect expression (IDENTICAL_BRANCHES)
/sd/source/ui/app/sdpopup.cxx: 122 in SdFieldPopup::Fill(o3tl::strong_int<unsigned short, LanguageTypeTag>)()
________________________________________________________________________________________________________
*** CID 1473323: Incorrect expression (IDENTICAL_BRANCHES)
/sd/source/ui/app/sdpopup.cxx: 122 in SdFieldPopup::Fill(o3tl::strong_int<unsigned short, LanguageTypeTag>)()
116 m_xPopup->set_active(OString::number(static_cast<sal_uInt16>( pTimeField->GetFormat() ) + 1), true); // - 2 + 3 !
117 }
118 else if( auto pFileField = dynamic_cast< const SvxExtFileField *>( m_pField ) )
119 {
120 //SvxExtFileField aFileField( *pFileField );
121
>>> CID 1473323: Incorrect expression (IDENTICAL_BRANCHES)
>>> The same code is executed regardless of whether "pFileField->GetType() == SvxFileType::Fix" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced?
122 if( pFileField->GetType() == SvxFileType::Fix )
123 m_xPopup->set_active("1", true);
124 else
125 m_xPopup->set_active("1", true);
126
127 m_xPopup->append_radio(OUString::number(nID++), SdResId(STR_FILEFORMAT_NAME_EXT));
** CID 1473322: Incorrect expression (DIVIDE_BY_ZERO)
/emfio/source/reader/mtftools.cxx: 423 in emfio::ScaledFontDetectCorrectHelper::evaluateAlternativeFontScale(const rtl::OUString &, long)()
________________________________________________________________________________________________________
*** CID 1473322: Incorrect expression (DIVIDE_BY_ZERO)
/emfio/source/reader/mtftools.cxx: 423 in emfio::ScaledFontDetectCorrectHelper::evaluateAlternativeFontScale(const rtl::OUString &, long)()
417 vcl::Font rFontCandidate2(rFontCandidate);
418 rFontCandidate2.SetAverageFontWidth(static_cast<tools::Long>(fCorrectedAverageFontWidth));
419 pTempVirtualDevice->SetFont(rFontCandidate2);
420 nCorrectedTextLength = pTempVirtualDevice->GetTextWidth(rText);
421 }
422
>>> CID 1473322: Incorrect expression (DIVIDE_BY_ZERO)
>>> In expression "static_cast<double>(nImportedTextLength) / static_cast<double>(nCorrectedTextLength)", division by expression "nCorrectedTextLength" which may be zero has undefined behavior.
423 const double fFactorCorrectedText(static_cast<double>(nImportedTextLength) / static_cast<double>(nCorrectedTextLength));
424 const double fFactorCorrectedTextPercent(fabs(1.0 - fFactorCorrectedText) * 100.0);
425
426 // If FactorCorrectedText fits better than FactorText this is probably
427 // an import of an old EMF/WMF written by LibreOffice on a non-Windows (unx) system
428 // and should be corrected.
** CID 1473321: Incorrect expression (DIVIDE_BY_ZERO)
/emfio/source/reader/mtftools.cxx: 394 in emfio::ScaledFontDetectCorrectHelper::evaluateAlternativeFontScale(const rtl::OUString &, long)()
________________________________________________________________________________________________________
*** CID 1473321: Incorrect expression (DIVIDE_BY_ZERO)
/emfio/source/reader/mtftools.cxx: 394 in emfio::ScaledFontDetectCorrectHelper::evaluateAlternativeFontScale(const rtl::OUString &, long)()
388 pTempVirtualDevice->SetFont(rFontCandidate);
389 const tools::Long nMeasuredTextLength(pTempVirtualDevice->GetTextWidth(rText));
390
391 // compare expected and imported TextLengths
392 if(nImportedTextLength != nMeasuredTextLength)
393 {
>>> CID 1473321: Incorrect expression (DIVIDE_BY_ZERO)
>>> In expression "static_cast<double>(nImportedTextLength) / static_cast<double>(nMeasuredTextLength)", division by expression "nMeasuredTextLength" which may be zero has undefined behavior.
394 const double fFactorText(static_cast<double>(nImportedTextLength) / static_cast<double>(nMeasuredTextLength));
395 const double fFactorTextPercent(fabs(1.0 - fFactorText) * 100.0);
396
397 // if we assume that loaded file was written on old linux, we have to
398 // back-convert the scale value depending on which system we run
399 #ifdef _WIN32
________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50ypSs1kiFPuCn2xFdlMIFBirii0zZ9j2-2F9F2XPBcBm2BNgi9duPy3v-2FzgFDd2LJ-2BDKI-3DOLSO_OTq2XUZbbipYjyLSo6GRo-2FpVxQ9OzkDINu9UTS-2FQhSdO0F0jQniitrGlNxDIzPJiLJUfyb0bF1Q9zS-2BNbCP2cZKHvpzgfJskEVYkiDf36tpw85TtTyLedRtE1EsbQ7-2BgA1WVXNpRxGMhMnX22N6-2BB6wiQx-2FbHXCQM2ijzc-2F5HeHYtwe3KlXd5DDpiSAYqzieAHbsnyqPissAei0v8x7bJXUPdrUETCREzGlelyXlLaGBj7Jr7qs92WHR9hbbtx-2Fv
More information about the LibreOffice
mailing list