Hi, Please find the latest report on new defect(s) introduced to LibreOffice found with Coverity Scan. 16 new defect(s) introduced to LibreOffice found with Coverity Scan. 4 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 16 of 16 defect(s) ** CID 1438227: Error handling issues (NEGATIVE_RETURNS) /desktop/source/splash/unxsplash.cxx: 98 in desktop::UnxSplashScreen::initialize(const com::sun::star::uno::Sequence<com::sun::star::uno::Any> &)() ________________________________________________________________________________________________________ *** CID 1438227: Error handling issues (NEGATIVE_RETURNS) /desktop/source/splash/unxsplash.cxx: 98 in desktop::UnxSplashScreen::initialize(const com::sun::star::uno::Sequence<com::sun::star::uno::Any> &)() 92 OUString aArg; 93 osl_getCommandArg( i, &aArg.pData ); 94 OUString aNum; 95 if ( aArg.startsWithIgnoreAsciiCase("--splash-pipe=", &aNum) ) 96 { 97 int fd = aNum.toInt32(); >>> CID 1438227: Error handling issues (NEGATIVE_RETURNS) >>> "fd" is passed to a parameter that cannot be negative. 98 m_pOutFd = fdopen( fd, "w" ); 99 SAL_INFO("desktop.splash", "Got argument '--splash-pipe=" << fd << " ('" 100 << aNum << "') (" 101 << static_cast<void *>(m_pOutFd) << ")"); 102 } 103 } ** CID 1438226: Null pointer dereferences (FORWARD_NULL) ________________________________________________________________________________________________________ *** CID 1438226: Null pointer dereferences (FORWARD_NULL) /sw/source/core/unocore/unochart.cxx: 425 in GetFormatAndCreateCursorFromRangeRep(const SwDoc *, const rtl::OUString &, SwFrameFormat **, std::shared_ptr<SwUnoCursor> &)() 419 pUnoCursor->SetMark(); 420 pUnoCursor->GetPoint()->nNode = *pBRBox->GetSttNd(); 421 pUnoCursor->Move( fnMoveForward, GoInNode ); 422 SwUnoTableCursor* pCursor = 423 dynamic_cast<SwUnoTableCursor*>(pUnoCursor.get()); 424 // HACK: remove pending actions for old style tables >>> CID 1438226: Null pointer dereferences (FORWARD_NULL) >>> Passing null pointer "pCursor" to "UnoActionRemoveContext", which dereferences it. 425 UnoActionRemoveContext aRemoveContext(*pCursor); 426 pCursor->MakeBoxSels(); 427 rpUnoCursor = pUnoCursor; 428 } 429 } 430 } ** CID 1438225: Integer handling issues (NEGATIVE_RETURNS) /sw/source/core/tox/txmsrt.cxx: 677 in SwTOXAuthority::GetLevel() const() ________________________________________________________________________________________________________ *** CID 1438225: Integer handling issues (NEGATIVE_RETURNS) /sw/source/core/tox/txmsrt.cxx: 677 in SwTOXAuthority::GetLevel() const() 671 OUString sText(static_cast<SwAuthorityField*>(m_rField.GetField())->GetFieldText(AUTH_FIELD_AUTHORITY_TYPE)); 672 //#i18655# the level '0' is the heading level therefore the values are incremented here 673 sal_uInt16 nRet = 1; 674 if( pTOXIntl->IsNumeric( sText ) ) 675 { 676 nRet = static_cast<sal_uInt16>(sText.toInt32()); >>> CID 1438225: Integer handling issues (NEGATIVE_RETURNS) >>> Unsigned variable "nRet" is incremented, which might cause an integer overflow. 677 nRet++; 678 } 679 //illegal values are also set to 'ARTICLE' as non-numeric values are 680 if(nRet > AUTH_TYPE_END) 681 nRet = 1; 682 return nRet; ** CID 1438224: Null pointer dereferences (NULL_RETURNS) ________________________________________________________________________________________________________ *** CID 1438224: Null pointer dereferences (NULL_RETURNS) /oox/source/drawingml/shape.cxx: 525 in oox::drawingml::lcl_createPresetShape(com::sun::star::uno::Reference<com::sun::star::drawing::XShape> &, const rtl::OUString &, const rtl::OUString &, std::shared_ptr<oox::drawingml::CustomShapeProperties>, std::shared_ptr<oox::drawingml::TextBody>, const oox::GraphicHelper &)() 519 ParagraphAdjust eAdjust = ParagraphAdjust_LEFT; 520 if (pParagraph->getProperties().getParaAdjust()) 521 eAdjust = pParagraph->getProperties().getParaAdjust().get(); 522 xSet->setPropertyValue( "ParaAdjust", uno::makeAny( eAdjust ) ); 523 SvxShape* pShape = SvxShape::getImplementation( xShape ); 524 SdrTextHorzAdjust eHorzAdjust = lcl_convertAdjust( eAdjust ); >>> CID 1438224: Null pointer dereferences (NULL_RETURNS) >>> Dereferencing a pointer that might be null "pShape" when calling "GetSdrObject". 525 pShape->GetSdrObject()->SetMergedItem( SdrTextHorzAdjustItem( eHorzAdjust ) ); 526 } 527 } 528 529 // Apply preset shape 530 xDefaulter->createCustomShapeDefaults( rClass ); ** CID 1438223: Error handling issues (NEGATIVE_RETURNS) /connectivity/source/commontools/RowFunctionParser.cxx: 234 in connectivity::<unnamed>::UnaryFunctionExpression::evaluate(const std::vector<rtl::Reference<connectivity::ORowSetValueDecorator>, std::allocator<rtl::Reference<connectivity::ORowSetValueDecorator>>> &) const() ________________________________________________________________________________________________________ *** CID 1438223: Error handling issues (NEGATIVE_RETURNS) /connectivity/source/commontools/RowFunctionParser.cxx: 234 in connectivity::<unnamed>::UnaryFunctionExpression::evaluate(const std::vector<rtl::Reference<connectivity::ORowSetValueDecorator>, std::allocator<rtl::Reference<connectivity::ORowSetValueDecorator>>> &) const() 228 explicit UnaryFunctionExpression( const std::shared_ptr<ExpressionNode>& rArg ) : 229 mpArg( rArg ) 230 { 231 } 232 virtual ORowSetValueDecoratorRef evaluate(const ODatabaseMetaDataResultSet::ORow& _aRow ) const override 233 { >>> CID 1438223: Error handling issues (NEGATIVE_RETURNS) >>> "connectivity::ORowSetValueDecoratorRef(this->mpArg->evaluate(_aRow))->getValue()->getInt32()" is passed to a parameter that cannot be negative. [Note: The source code implementation of the function has been overridden by a builtin model.] 234 return _aRow[mpArg->evaluate(_aRow )->getValue().getInt32()]; 235 } 236 virtual void fill(const ODatabaseMetaDataResultSet::ORow& /*_aRow*/ ) const override 237 { 238 } 239 }; ** CID 1438222: Error handling issues (NEGATIVE_RETURNS) /sfx2/source/dialog/mgetempl.cxx: 437 in SfxManageStyleSheetPage::FillItemSet(SfxItemSet *)() ________________________________________________________________________________________________________ *** CID 1438222: Error handling issues (NEGATIVE_RETURNS) /sfx2/source/dialog/mgetempl.cxx: 437 in SfxManageStyleSheetPage::FillItemSet(SfxItemSet *)() 431 m_xFilterLb->get_value_changed_from_saved() && 432 m_xFilterLb->get_sensitive() ) 433 { 434 bModified = true; 435 OSL_ENSURE( pItem, "No Item" ); 436 // is only possibly for user templates >>> CID 1438222: Error handling issues (NEGATIVE_RETURNS) >>> "rtl::OUString(this->m_xFilterLb->get_id(nFilterIdx)).toInt32(10)" is passed to a parameter that cannot be negative. [Note: The source code implementation of the function has been overridden by a builtin model.] 437 SfxStyleSearchBits nMask = pItem->GetFilterList()[m_xFilterLb->get_id(nFilterIdx).toInt32()].nFlags | SfxStyleSearchBits::UserDefined; 438 pStyle->SetMask( nMask ); 439 } 440 if (m_xAutoCB->get_visible() && m_xAutoCB->get_state_changed_from_saved()) 441 { 442 rSet->Put(SfxBoolItem(SID_ATTR_AUTO_STYLE_UPDATE, m_xAutoCB->get_active())); ** CID 1438221: Error handling issues (NEGATIVE_RETURNS) /sw/source/uibase/misc/glosdoc.cxx: 125 in SwGlossaries::FindGroupName(rtl::OUString &)() ________________________________________________________________________________________________________ *** CID 1438221: Error handling issues (NEGATIVE_RETURNS) /sw/source/uibase/misc/glosdoc.cxx: 125 in SwGlossaries::FindGroupName(rtl::OUString &)() 119 const ::utl::TransliterationWrapper& rSCmp = GetAppCmpStrIgnore(); 120 for(size_t i = 0; i < nCount; ++i) 121 { 122 const OUString sTemp( GetGroupName( i )); 123 sal_uInt16 nPath = static_cast<sal_uInt16>(sTemp.getToken(1, GLOS_DELIM).toInt32()); 124 >>> CID 1438221: Error handling issues (NEGATIVE_RETURNS) >>> "nPath" is passed to a parameter that cannot be negative. [Note: The source code implementation of the function has been overridden by a builtin model.] 125 if (!SWUnoHelper::UCB_IsCaseSensitiveFileName( m_PathArr[nPath] ) 126 && rSCmp.isEqual( rGroup, sTemp.getToken( 0, GLOS_DELIM) ) ) 127 { 128 rGroup = sTemp; 129 return true; 130 } ** CID 1438220: Integer handling issues (NEGATIVE_RETURNS) ________________________________________________________________________________________________________ *** CID 1438220: Integer handling issues (NEGATIVE_RETURNS) /sc/source/ui/view/viewdata.cxx: 2868 in ScViewData::ReadUserData(const rtl::OUString &)() 2862 sal_Unicode cMode = aZoomStr.getToken(2,'/')[0]; // 0 or "0"/"1" 2863 SetPagebreakMode( cMode == '1' ); 2864 // SetPagebreakMode must always be called due to CalcPPT / RecalcPixPos() 2865 2866 // sheet may have become invalid (for instance last version): 2867 SCTAB nNewTab = static_cast<SCTAB>(rData.getToken(1, ';').toInt32()); >>> CID 1438220: Integer handling issues (NEGATIVE_RETURNS) >>> "nNewTab" is passed to a parameter that cannot be negative. 2868 if (pDoc->HasTable( nNewTab )) 2869 SetTabNo(nNewTab); 2870 2871 // if available, get tab bar width: 2872 OUString aTabOpt = rData.getToken(2, ';'); 2873 ** CID 1438219: Null pointer dereferences (FORWARD_NULL) ________________________________________________________________________________________________________ *** CID 1438219: Null pointer dereferences (FORWARD_NULL) /sw/source/core/unocore/unotbl.cxx: 4197 in SwXTableColumns::removeByIndex(int, int)() 4191 pUnoCursor->SetMark(); 4192 pUnoCursor->GetPoint()->nNode = *pTRBox->GetSttNd(); 4193 pUnoCursor->Move(fnMoveForward, GoInNode); 4194 SwUnoTableCursor* pCursor = dynamic_cast<SwUnoTableCursor*>(pUnoCursor.get()); 4195 { 4196 // HACK: remove pending actions for selecting old style tables >>> CID 1438219: Null pointer dereferences (FORWARD_NULL) >>> Passing null pointer "pCursor" to "UnoActionRemoveContext", which dereferences it. 4197 UnoActionRemoveContext aRemoveContext(*pCursor); 4198 } 4199 pCursor->MakeBoxSels(); 4200 { // these braces are important 4201 UnoActionContext aAction(pFrameFormat->GetDoc()); 4202 pFrameFormat->GetDoc()->DeleteCol(*pUnoCursor); ** CID 1438218: Null pointer dereferences (FORWARD_NULL) ________________________________________________________________________________________________________ *** CID 1438218: Null pointer dereferences (FORWARD_NULL) /sw/source/core/unocore/unotbl.cxx: 3363 in SwXCellRange::getCellRangeByPosition(int, int, int, int)() 3357 { 3358 pUnoCursor->SetMark(); 3359 pUnoCursor->GetPoint()->nNode = *pBRBox->GetSttNd(); 3360 pUnoCursor->Move( fnMoveForward, GoInNode ); 3361 SwUnoTableCursor* pCursor = dynamic_cast<SwUnoTableCursor*>(pUnoCursor.get()); 3362 // HACK: remove pending actions for selecting old style tables >>> CID 1438218: Null pointer dereferences (FORWARD_NULL) >>> Passing null pointer "pCursor" to "UnoActionRemoveContext", which dereferences it. 3363 UnoActionRemoveContext aRemoveContext(*pCursor); 3364 pCursor->MakeBoxSels(); 3365 // pUnoCursor will be provided and will not be deleted 3366 aRet = SwXCellRange::CreateXCellRange(pUnoCursor, *pFormat, aNewDesc).get(); 3367 } 3368 } ** CID 1438217: (NEGATIVE_RETURNS) ________________________________________________________________________________________________________ *** CID 1438217: (NEGATIVE_RETURNS) /chart2/source/tools/InternalDataProvider.cxx: 869 in chart::InternalDataProvider::getDataByRangeRepresentation(const rtl::OUString &)() 863 { 864 Sequence< uno::Any > aResult; 865 866 if( aRange.match( lcl_aLabelRangePrefix ) ) 867 { 868 sal_Int32 nIndex = aRange.copy( strlen(lcl_aLabelRangePrefix)).toInt32(); >>> CID 1438217: (NEGATIVE_RETURNS) >>> "nIndex" is passed to a parameter that cannot be negative. 869 vector< uno::Any > aComplexLabel = m_bDataInColumns 870 ? m_aInternalData.getComplexColumnLabel( nIndex ) 871 : m_aInternalData.getComplexRowLabel( nIndex ); 872 if( !aComplexLabel.empty() ) 873 aResult = comphelper::containerToSequence(aComplexLabel); 874 } /chart2/source/tools/InternalDataProvider.cxx: 878 in chart::InternalDataProvider::getDataByRangeRepresentation(const rtl::OUString &)() 872 if( !aComplexLabel.empty() ) 873 aResult = comphelper::containerToSequence(aComplexLabel); 874 } 875 else if( aRange.match( lcl_aCategoriesPointRangeNamePrefix ) ) 876 { 877 sal_Int32 nPointIndex = aRange.copy( strlen(lcl_aCategoriesPointRangeNamePrefix) ).toInt32(); >>> CID 1438217: (NEGATIVE_RETURNS) >>> "nPointIndex" is passed to a parameter that cannot be negative. 878 vector< uno::Any > aComplexCategory = m_bDataInColumns 879 ? m_aInternalData.getComplexRowLabel( nPointIndex ) 880 : m_aInternalData.getComplexColumnLabel( nPointIndex ); 881 if( !aComplexCategory.empty() ) 882 aResult = comphelper::containerToSequence(aComplexCategory); 883 } ** CID 1438216: Resource leaks (RESOURCE_LEAK) /filter/source/pdf/pdfexport.cxx: 943 in PDFExport::Export(const rtl::OUString &, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &)() ________________________________________________________________________________________________________ *** CID 1438216: Resource leaks (RESOURCE_LEAK) /filter/source/pdf/pdfexport.cxx: 943 in PDFExport::Export(const rtl::OUString &, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &)() 937 } 938 catch( const uno::Exception& ) 939 { 940 } 941 } 942 } >>> CID 1438216: Resource leaks (RESOURCE_LEAK) >>> Variable "pXDevice" going out of scope leaks the storage it points to. 943 } 944 } 945 946 // show eventual errors during export 947 showErrors( aErrors ); 948 ** CID 1438215: (NEGATIVE_RETURNS) /oox/source/ppt/comments.cxx: 60 in oox::ppt::Comment::setDateTime(const rtl::OUString &)() /oox/source/ppt/comments.cxx: 55 in oox::ppt::Comment::setDateTime(const rtl::OUString &)() ________________________________________________________________________________________________________ *** CID 1438215: (NEGATIVE_RETURNS) /oox/source/ppt/comments.cxx: 60 in oox::ppt::Comment::setDateTime(const rtl::OUString &)() 54 aDateTime.Seconds = 0; 55 ++aDateTime.Minutes; 56 } 57 if (aDateTime.Minutes == 60) 58 { 59 aDateTime.Minutes = 0; >>> CID 1438215: (NEGATIVE_RETURNS) >>> Unsigned variable "this->aDateTime.Hours" is incremented, which might cause an integer overflow. 60 ++aDateTime.Hours; 61 } 62 // if overflow goes into date, I give up 63 } 64 65 OUString Comment::getAuthor ( const CommentAuthorList& list ) /oox/source/ppt/comments.cxx: 55 in oox::ppt::Comment::setDateTime(const rtl::OUString &)() 49 aDateTime.NanoSeconds = 0; 50 ++aDateTime.Seconds; 51 } 52 if (aDateTime.Seconds == secondsOverflow) 53 { 54 aDateTime.Seconds = 0; >>> CID 1438215: (NEGATIVE_RETURNS) >>> Unsigned variable "this->aDateTime.Minutes" is incremented, which might cause an integer overflow. 55 ++aDateTime.Minutes; 56 } 57 if (aDateTime.Minutes == 60) 58 { 59 aDateTime.Minutes = 0; 60 ++aDateTime.Hours; ** CID 1438214: Null pointer dereferences (FORWARD_NULL) ________________________________________________________________________________________________________ *** CID 1438214: Null pointer dereferences (FORWARD_NULL) /sw/source/core/unocore/unotbl.cxx: 2285 in <unnamed>::GetRangeByName(SwFrameFormat *, const SwTable *, const rtl::OUString &, const rtl::OUString &, const SwRangeDescriptor &)() 2279 return nullptr; 2280 pUnoCursor->SetMark(); 2281 pUnoCursor->GetPoint()->nNode = *pBRBox->GetSttNd(); 2282 pUnoCursor->Move( fnMoveForward, GoInNode ); 2283 SwUnoTableCursor* pCursor = dynamic_cast<SwUnoTableCursor*>(pUnoCursor.get()); 2284 // HACK: remove pending actions for selecting old style tables >>> CID 1438214: Null pointer dereferences (FORWARD_NULL) >>> Passing null pointer "pCursor" to "UnoActionRemoveContext", which dereferences it. 2285 UnoActionRemoveContext aRemoveContext(*pCursor); 2286 pCursor->MakeBoxSels(); 2287 // pUnoCursor will be provided and will not be deleted 2288 return SwXCellRange::CreateXCellRange(pUnoCursor, *pFormat, rDesc).get(); 2289 } 2290 ** CID 1438213: Error handling issues (NEGATIVE_RETURNS) /sw/source/filter/ww8/docxattributeoutput.cxx: 2662 in DocxAttributeOutput::StartURL(const rtl::OUString &, const rtl::OUString &)() ________________________________________________________________________________________________________ *** CID 1438213: Error handling issues (NEGATIVE_RETURNS) /sw/source/filter/ww8/docxattributeoutput.cxx: 2662 in DocxAttributeOutput::StartURL(const rtl::OUString &, const rtl::OUString &)() 2656 std::map<OUString, std::vector<OString> >::iterator it = m_aSeqBookmarksNames.find(aSequenceName); 2657 if (it != m_aSeqBookmarksNames.end()) 2658 { 2659 std::vector<OString>& rNames = it->second; 2660 if (rNames.size() > nIndex) 2661 // We know the bookmark name for this sequence and this index, do the replacement. >>> CID 1438213: Error handling issues (NEGATIVE_RETURNS) >>> "nIndex" is passed to a parameter that cannot be negative. [Note: The source code implementation of the function has been overridden by a builtin model.] 2662 sMark = OStringToOUString(rNames[nIndex], RTL_TEXTENCODING_UTF8); 2663 } 2664 } 2665 } 2666 m_pHyperlinkAttrList->add( FSNS( XML_w, XML_anchor ), 2667 OUStringToOString( sMark, RTL_TEXTENCODING_UTF8 ).getStr( ) ); ** CID 1438212: Null pointer dereferences (FORWARD_NULL) ________________________________________________________________________________________________________ *** CID 1438212: Null pointer dereferences (FORWARD_NULL) /sw/source/core/unocore/unotbl.cxx: 4046 in SwXTableRows::removeByIndex(int, int)() 4040 pUnoCursor->SetMark(); 4041 pUnoCursor->GetPoint()->nNode = *pBLBox->GetSttNd(); 4042 pUnoCursor->Move(fnMoveForward, GoInNode); 4043 SwUnoTableCursor* pCursor = dynamic_cast<SwUnoTableCursor*>(pUnoCursor.get()); 4044 { 4045 // HACK: remove pending actions for selecting old style tables >>> CID 1438212: Null pointer dereferences (FORWARD_NULL) >>> Passing null pointer "pCursor" to "UnoActionRemoveContext", which dereferences it. 4046 UnoActionRemoveContext aRemoveContext(*pCursor); 4047 } 4048 pCursor->MakeBoxSels(); 4049 { // these braces are important 4050 UnoActionContext aAction(pFrameFormat->GetDoc()); 4051 pFrameFormat->GetDoc()->DeleteRow(*pUnoCursor); ________________________________________________________________________________________________________ To view the defects in Coverity Scan visit, https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRZBnDJeNb0HijxaS4JNJPxk3kpyAm2AYqo71yXmnOxB72ibeUH-2F-2F1Lhi9AZq3dRu-2F4-3D_g-2BrHdvqzaBa155F-2F8AmPhpJzY63UzWDisJV95WUBpGhqFw1ICExHG8aMaV2EoFpyloE6GgXS1AjTJ-2FGD71VhITgxWWJLd9O-2FtEKv6BEReocUyNiAgJH9MLKXyaSlFNc7KFNSdM9Nd3x-2F84UvEFAdM95RKjGMHlXsPTV4UW-2BsnfwED0JNhQGeasxKgBc2zGz4SEdVIXNWMfEfBjLao-2F6A2-2B9Ag3IKn05yyLanx7WGe0U-3D