New Defects reported by Coverity Scan for LibreOffice

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.
5 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 1591496:  Null pointer dereferences  (NULL_RETURNS)


________________________________________________________________________________________________________
*** CID 1591496:  Null pointer dereferences  (NULL_RETURNS)
/sw/source/core/layout/atrfrm.cxx: 2637 in SwFrameFormat::SetFormatName(const rtl::OUString &, bool)()
2631             if (!aHint.m_sOld.isEmpty() && aHint.m_sOld != aHint.m_sNew)
2632             {
2633                 if (SwFlyFrame* pSFly = SwIterator<SwFlyFrame, SwFormat>(*this).First())
2634                 {
2635                     if (pSFly->Lower() && !pSFly->Lower()->IsNoTextFrame())
2636                     {
>>>     CID 1591496:  Null pointer dereferences  (NULL_RETURNS)
>>>     Dereferencing a pointer that might be "nullptr" "static_cast<SwTextFrame *>(pSFly->ContainsContent())" when calling "GetTextNodeFirst".
2637                         if (SwTextNode* pSwTxtNode = static_cast<SwTextFrame*>(pSFly->ContainsContent())->GetTextNodeFirst())
2638                             pSwTxtNode->resetAndQueueAccessibilityCheck(true);
2639                     }
2640                     else
2641                     {
2642                         if (SwNode* pSwNode = static_cast<SwNoTextFrame*>(pSFly->Lower())->GetNode())

** CID 1591495:  Resource leaks  (RESOURCE_LEAK)
/test/source/xmltesttools.cxx: 306 in XmlTestTools::assertXPathNodeName(const std::unique_ptr<_xmlDoc, xmlDocDeleter> &, const rtl::OString &, const rtl::OString &)()


________________________________________________________________________________________________________
*** CID 1591495:  Resource leaks  (RESOURCE_LEAK)
/test/source/xmltesttools.cxx: 306 in XmlTestTools::assertXPathNodeName(const std::unique_ptr<_xmlDoc, xmlDocDeleter> &, const rtl::OString &, const rtl::OString &)()
300         CPPUNIT_ASSERT_EQUAL_MESSAGE(OString(OString::Concat("In <") + pXmlDoc->name + ">, XPath '" + rXPath + "' number of nodes is incorrect").getStr(),
301                                      1,
302                                      xmlXPathNodeSetGetLength(pXmlNodes));
303         xmlNodePtr pXmlNode = pXmlNodes->nodeTab[0];
304         CPPUNIT_ASSERT_EQUAL_MESSAGE(OString(OString::Concat("In XPath '" + rXPath + "' name of node is incorrect")).getStr(),
305                                      rExpectedName, oconvert(pXmlNode->name));
>>>     CID 1591495:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "pXmlObj" going out of scope leaks the storage it points to.
306     }
307     
308     void XmlTestTools::registerODFNamespaces(xmlXPathContextPtr& pXmlXpathCtx)
309     {
310         xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("manifest"),
311                            BAD_CAST("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"));

** CID 1591494:  Null pointer dereferences  (NULL_RETURNS)


________________________________________________________________________________________________________
*** CID 1591494:  Null pointer dereferences  (NULL_RETURNS)
/sw/source/core/layout/trvlfrm.cxx: 1533 in SwRootFrame::GetNextPrevContentPos(const Point &, bool) const()
1527                 while ( !pCnt )
1528                 {
1529                     pPage = static_cast<const SwLayoutFrame*>(pPage->GetPrev());
1530                     if ( pPage )
1531                         pCnt = pPage->ContainsContent();
1532                     else
>>>     CID 1591494:  Null pointer dereferences  (NULL_RETURNS)
>>>     Dereferencing a pointer that might be "nullptr" "this->ContainsContent()" when calling "UnionFrame".
1533                         return ContainsContent()->UnionFrame().Pos();
1534                 }
1535                 pCnt->Calc(pRenderContext);
1536             }
1537         }
1538     

** CID 1591493:  Error handling issues  (CHECKED_RETURN)
/comphelper/source/xml/xmltools.cxx: 79 in comphelper::xml::makeXMLChaff()()


________________________________________________________________________________________________________
*** CID 1591493:  Error handling issues  (CHECKED_RETURN)
/comphelper/source/xml/xmltools.cxx: 79 in comphelper::xml::makeXMLChaff()()
73     {
74             OString makeXMLChaff()
75             {
76                 rtlRandomPool pool = rtl_random_createPool();
77     
78                 sal_Int8 n;
>>>     CID 1591493:  Error handling issues  (CHECKED_RETURN)
>>>     Calling "rtl_random_getBytes" without checking return value (as is done elsewhere 13 out of 16 times).
79                 rtl_random_getBytes(pool, &n, 1);
80     
81                 sal_Int32 nLength = 1024+n;
82                 // coverity[tainted_data] - 1024 deliberate random minus max -127/plus max 128
83                 std::vector<sal_uInt8> aChaff(nLength);
84                 rtl_random_getBytes(pool, aChaff.data(), nLength);

** CID 1591492:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sc/source/ui/view/viewfunc.cxx: 730 in ScViewFunc::EnterData(short, int, short, const rtl::OUString &, const EditTextObject *, bool)()


________________________________________________________________________________________________________
*** CID 1591492:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sc/source/ui/view/viewfunc.cxx: 730 in ScViewFunc::EnterData(short, int, short, const rtl::OUString &, const EditTextObject *, bool)()
724                 aCompPtr->SetExtendedErrorDetection( ScCompiler::EXTENDED_ERROR_DETECTION_NAME_BREAK );
725             }
726     
727             OUString aFormula( rString );
728             std::shared_ptr< ScTokenArray > pArr;
729     
>>>     CID 1591492:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>>     "pArr" is copied in call to copy constructor "std::shared_ptr<ScTokenArray>", when it could be moved instead.
730             FormulaProcessingContext context_instance{
731                 aPosPtr, aCompPtr, xModificator,  pArr,           nullptr,        pData,
732                 rMark,   *this,    OUString(),    aFormula,       rString,        nCol,
733                 nRow,    nTab,     bMatrixExpand, bNumFmtChanged, bRecord
734             };
735     

** CID 1591491:  Performance inefficiencies  (PASS_BY_VALUE)
/sw/source/uibase/docvw/PostItMgr.cxx: 1726 in SwPostItMgr::ExecuteFormatAllDialog(SwView &)::[lambda(int) (instance 1)]::operator ()(int) const()


________________________________________________________________________________________________________
*** CID 1591491:  Performance inefficiencies  (PASS_BY_VALUE)
/sw/source/uibase/docvw/PostItMgr.cxx: 1726 in SwPostItMgr::ExecuteFormatAllDialog(SwView &)::[lambda(int) (instance 1)]::operator ()(int) const()
1720         SfxItemPool* pPool(SwAnnotationShell::GetAnnotationPool(rView));
1721         SfxItemSetFixed<XATTR_FILLSTYLE, XATTR_FILLCOLOR, EE_ITEMS_START, EE_ITEMS_END> aDlgAttr(*pPool);
1722         aDlgAttr.Put(aEditAttr);
1723         SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
1724         VclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateSwCharDlg(rView.GetFrameWeld(), rView, aDlgAttr, SwCharDlgMode::Ann));
1725         pDlg->StartExecuteAsync(
>>>     CID 1591491:  Performance inefficiencies  (PASS_BY_VALUE)
>>>     Capturing variable "aDlgAttr" of type "SfxItemSetFixed<(unsigned short)1014, (unsigned short)1015, (unsigned short)4009, (unsigned short)4064>" (size 560 bytes) by value, which exceeds the high threshold of 512 bytes.
1726             [this, pDlg, aDlgAttr, pOrigActiveWin] (sal_Int32 nResult)->void
1727             {
1728                 if (nResult == RET_OK)
1729                 {
1730                     auto aNewAttr = aDlgAttr;
1731                     aNewAttr.Put(*pDlg->GetOutputItemSet());

** CID 1591490:  Error handling issues  (CHECKED_RETURN)
/binaryurp/source/bridge.cxx: 78 in binaryurp::<unnamed>::random()()


________________________________________________________________________________________________________
*** CID 1591490:  Error handling issues  (CHECKED_RETURN)
/binaryurp/source/bridge.cxx: 78 in binaryurp::<unnamed>::random()()
72     
73     namespace {
74     
75     sal_Int32 random() {
76         sal_Int32 n;
77         rtlRandomPool pool = rtl_random_createPool();
>>>     CID 1591490:  Error handling issues  (CHECKED_RETURN)
>>>     Calling "rtl_random_getBytes" without checking return value (as is done elsewhere 13 out of 16 times).
78         rtl_random_getBytes(pool, &n, sizeof n);
79         rtl_random_destroyPool(pool);
80         return n;
81     }
82     
83     OUString toString(css::uno::TypeDescription const & type) {

** CID 1591489:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sw/source/uibase/shells/annotsh.cxx: 493 in SwAnnotationShell::Exec(SfxRequest &)()


________________________________________________________________________________________________________
*** CID 1591489:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sw/source/uibase/shells/annotsh.cxx: 493 in SwAnnotationShell::Exec(SfxRequest &)()
487                         pDlg->SetCurPageId(pItem->GetValue());
488                     }
489     
490                     auto xRequest = std::make_shared<SfxRequest>(rReq);
491                     rReq.Ignore(); // the 'old' request is not relevant any more
492                     pDlg->StartExecuteAsync(
>>>     CID 1591489:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>>     "xRequest" is copied in call to copy constructor "std::shared_ptr<SfxRequest>", when it could be moved instead.
493                         [this, pDlg, xRequest, nEEWhich, aNewAttr2=aNewAttr, pOLV] (sal_Int32 nResult) mutable ->void
494                         {
495                             if (nResult == RET_OK)
496                             {
497                                 xRequest->Done( *( pDlg->GetOutputItemSet() ) );
498                                 aNewAttr2.Put(*pDlg->GetOutputItemSet());

** CID 1591488:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sw/source/uibase/shells/drwtxtex.cxx: 370 in SwDrawTextShell::Execute(SfxRequest &)()


________________________________________________________________________________________________________
*** CID 1591488:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sw/source/uibase/shells/drwtxtex.cxx: 370 in SwDrawTextShell::Execute(SfxRequest &)()
364                         pDlg->SetCurPageId(pItem->GetValue());
365                     }
366     
367                     auto xRequest = std::make_shared<SfxRequest>(rReq);
368                     rReq.Ignore(); // the 'old' request is not relevant any more
369                     pDlg->StartExecuteAsync(
>>>     CID 1591488:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>>     "xRequest" is copied in call to copy constructor "std::shared_ptr<SfxRequest>", when it could be moved instead.
370                         [this, pDlg, xRequest, nEEWhich, aNewAttr2=aNewAttr, pOLV, bRestoreSelection, aOldSelection] (sal_Int32 nResult) mutable ->void
371                         {
372                             if (nResult == RET_OK)
373                             {
374                                 xRequest->Done( *( pDlg->GetOutputItemSet() ) );
375                                 aNewAttr2.Put(*pDlg->GetOutputItemSet());

** CID 1591487:  Null pointer dereferences  (FORWARD_NULL)


________________________________________________________________________________________________________
*** CID 1591487:  Null pointer dereferences  (FORWARD_NULL)
/sc/source/ui/view/tabvwsha.cxx: 1067 in ScTabViewShell::ExecStyle(SfxRequest &)()
1061                 bool bWaterCan = pScMod->GetIsWaterCan();
1062     
1063                 if( !bWaterCan )
1064                 {
1065                     const SfxPoolItem* pItem;
1066     
>>>     CID 1591487:  Null pointer dereferences  (FORWARD_NULL)
>>>     Passing null pointer "pArgs" to "GetItemState", which dereferences it.
1067                     if ( SfxItemState::SET ==
1068                          pArgs->GetItemState( nSlotId, true, &pItem ) )
1069                     {
1070                         const SfxStringItem* pStrItem = dynamic_cast< const SfxStringItem *>( pItem );
1071                         if ( pStrItem )
1072                         {

** CID 1591486:  Control flow issues  (DEADCODE)
/cui/source/factory/dlgfact.cxx: 843 in AbstractDialogFactory_Impl::CreateVclDialog(weld::Window *, unsigned int)()


________________________________________________________________________________________________________
*** CID 1591486:  Control flow issues  (DEADCODE)
/cui/source/factory/dlgfact.cxx: 843 in AbstractDialogFactory_Impl::CreateVclDialog(weld::Window *, unsigned int)()
837                 if (nResId == SID_OPTIONS_TREEDIALOG)
838                     bActivateLastSelection = true;
839                 Reference< frame::XFrame > xFrame;
840                 auto xDlg = std::make_unique<OfaTreeOptionsDialog>(pParent, xFrame, bActivateLastSelection);
841                 if (nResId == SID_OPTIONS_DATABASES)
842                 {
>>>     CID 1591486:  Control flow issues  (DEADCODE)
>>>     Execution cannot reach this statement: "xDlg->ActivatePage(10349);".
843                     xDlg->ActivatePage(SID_SB_DBREGISTEROPTIONS);
844                 }
845                 else if (nResId == SID_LANGUAGE_OPTIONS)
846                 {
847                     //open the tab page "tools/options/languages"
848                     xDlg->ActivatePage(OFA_TP_LANGUAGES_FOR_SET_DOCUMENT_LANGUAGE);

** CID 1591485:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sc/source/ui/docshell/docsh4.cxx: 1440 in ScDocShell::ExecuteChartSource(SfxRequest &)()


________________________________________________________________________________________________________
*** CID 1591485:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sc/source/ui/docshell/docsh4.cxx: 1440 in ScDocShell::ExecuteChartSource(SfxRequest &)()
1434     
1435             auto xRequest = std::make_shared<SfxRequest>(rReq);
1436             rReq.Ignore(); // the 'old' request is not relevant any more
1437             ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
1438             VclPtr<AbstractScColRowLabelDlg> pDlg(pFact->CreateScColRowLabelDlg(pParent, bRowHeaders, bColHeaders));
1439             pDlg->StartExecuteAsync(
>>>     CID 1591485:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>>     "xRequest" is copied in call to copy constructor "std::shared_ptr<SfxRequest>", when it could be moved instead.
1440                 [this, pDlg, xRequest, bUndo, bMultiRange, aChartName, aRangeListRef, bAddRange,
1441                  nCol1, nRow1, nCol2, nRow2, nTab] (sal_Int32 nResult)->void
1442                 {
1443                     if (nResult == RET_OK)
1444                     {
1445                         bool bColHeaders2 = pDlg->IsRow();

** CID 1591484:    (FORWARD_NULL)
/sw/source/core/layout/trvlfrm.cxx: 247 in SwPageFrame::GetModelPositionForViewPoint(SwPosition *, Point &, SwCursorMoveState *, bool) const()


________________________________________________________________________________________________________
*** CID 1591484:    (FORWARD_NULL)
/sw/source/core/layout/trvlfrm.cxx: 244 in SwPageFrame::GetModelPositionForViewPoint(SwPosition *, Point &, SwCursorMoveState *, bool) const()
238                 if ( pCMS && pCMS->m_bStop )
239                     return false;
240     
241                 bool bTextRet = false;
242     
243                 OSL_ENSURE( pCnt, "Cursor is gone to a Black hole" );
>>>     CID 1591484:    (FORWARD_NULL)
>>>     Passing null pointer "pCnt" to "IsTextFrame", which dereferences it.
244                 if( pCMS && pCMS->m_pFill && pCnt->IsTextFrame() )
245                     bTextRet = pCnt->GetModelPositionForViewPoint( &aTextPos, rPoint, pCMS );
246                 else
247                     bTextRet = pCnt->GetModelPositionForViewPoint( &aTextPos, aPoint, pCMS );
248     
249                 if ( !bTextRet )
/sw/source/core/layout/trvlfrm.cxx: 247 in SwPageFrame::GetModelPositionForViewPoint(SwPosition *, Point &, SwCursorMoveState *, bool) const()
241                 bool bTextRet = false;
242     
243                 OSL_ENSURE( pCnt, "Cursor is gone to a Black hole" );
244                 if( pCMS && pCMS->m_pFill && pCnt->IsTextFrame() )
245                     bTextRet = pCnt->GetModelPositionForViewPoint( &aTextPos, rPoint, pCMS );
246                 else
>>>     CID 1591484:    (FORWARD_NULL)
>>>     Passing null pointer "pCnt" to "GetModelPositionForViewPoint", which dereferences it. (The dereference happens because this is a virtual function call.)
247                     bTextRet = pCnt->GetModelPositionForViewPoint( &aTextPos, aPoint, pCMS );
248     
249                 if ( !bTextRet )
250                 {
251                     // Set point to pCnt, delete mark
252                     // this may happen, if pCnt is hidden

** CID 1591483:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sc/source/ui/view/tabvwsha.cxx: 1585 in ScTabViewShell::ExecuteStyleEdit(SfxRequest &, SfxStyleSheetBase *, unsigned short, unsigned short, bool, bool, ScStyleSaveData &, ScStyleSaveData &, SfxStyleFamily, bool, bool, SdrObject *, ESelection)()


________________________________________________________________________________________________________
*** CID 1591483:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sc/source/ui/view/tabvwsha.cxx: 1585 in ScTabViewShell::ExecuteStyleEdit(SfxRequest &, SfxStyleSheetBase *, unsigned short, unsigned short, bool, bool, ScStyleSaveData &, ScStyleSaveData &, SfxStyleFamily, bool, bool, SdrObject *, ESelection)()
1579         else
1580             pDlg = pFact->CreateScStyleDlg(pDialogParent, *pStyleSheet, bPage);
1581     
1582         auto xRequest = std::make_shared<SfxRequest>(rReq);
1583         rReq.Ignore(); // the 'old' request is not relevant any more
1584         pDlg->StartExecuteAsync(
>>>     CID 1591483:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>>     "xRequest" is copied in call to copy constructor "std::shared_ptr<SfxRequest>", when it could be moved instead.
1585             [this, pDlg, xRequest, pStyleSheet, nRetMask, xOldSet, nSlotId, bAddUndo, bUndo,
1586                 aOldData=rOldData, aNewData=rNewData, aOldName, eFamily, bStyleToMarked, bListAction,
1587                 pEditObject, aSelection]
1588             (sal_Int32 nResult) mutable -> void
1589             {
1590                 SetInFormatDialog(false);

** CID 1591482:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sc/source/ui/view/viewfunc.cxx: 738 in ScViewFunc::EnterData(short, int, short, const rtl::OUString &, const EditTextObject *, bool)()


________________________________________________________________________________________________________
*** CID 1591482:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/sc/source/ui/view/viewfunc.cxx: 738 in ScViewFunc::EnterData(short, int, short, const rtl::OUString &, const EditTextObject *, bool)()
732                 rMark,   *this,    OUString(),    aFormula,       rString,        nCol,
733                 nRow,    nTab,     bMatrixExpand, bNumFmtChanged, bRecord
734             };
735     
736             std::shared_ptr<FormulaProcessingContext> context = std::make_shared<FormulaProcessingContext>(context_instance);
737     
>>>     CID 1591482:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>>     "context" is passed-by-value as parameter to "parseAndCorrectFormula" when it could be moved instead.
738             parseAndCorrectFormula(context);
739         }
740         else
741         {
742             ScFieldEditEngine& rEngine = rDoc.GetEditEngine();
743             for (const auto& rTab : rMark)

** CID 1591481:  Null pointer dereferences  (FORWARD_NULL)
/sw/source/core/frmedt/tblsel.cxx: 1721 in lcl_FindStartEndCol(const SwLayoutFrame *&, const SwLayoutFrame *&, bool)()


________________________________________________________________________________________________________
*** CID 1591481:  Null pointer dereferences  (FORWARD_NULL)
/sw/source/core/frmedt/tblsel.cxx: 1721 in lcl_FindStartEndCol(const SwLayoutFrame *&, const SwLayoutFrame *&, bool)()
1715     
1716         if( !bChkProtected )    // check for protected cell ?
1717             return;
1718     
1719         // Beginning and end should not be in protected cells.
1720         // If necessary we should search backwards again
>>>     CID 1591481:  Null pointer dereferences  (FORWARD_NULL)
>>>     Passing null pointer "rpStart" to "GetFormat", which dereferences it. (The dereference happens because this is a virtual function call.)
1721         while ( rpStart->GetFormat()->GetProtect().IsContentProtected() )
1722         {
1723             const SwLayoutFrame *pTmpLeaf = rpStart->GetNextLayoutLeaf();
1724             while ( pTmpLeaf && aRectFnSet.GetLeft(pTmpLeaf->getFrameArea()) > nEX ) // first skip line
1725                 pTmpLeaf = pTmpLeaf->GetNextLayoutLeaf();
1726             while ( pTmpLeaf && aRectFnSet.GetLeft(pTmpLeaf->getFrameArea()) < nSX &&


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50ypSs1kiFPuCn2xFdlMIFBirii0zZ9j2-2F9F2XPBcBm2BNnPiSHxWPOELPnIxzXoBNaw-3DQv7q_OTq2XUZbbipYjyLSo6GRo-2FpVxQ9OzkDINu9UTS-2FQhSdO0F0jQniitrGlNxDIzPJiMWh7Bc4Jco3Cf-2FxCBHI-2FTdOj6lco5e1q5ihQvKNaNcEUY6SEAY1V7SVQE5WxqSJv6-2BRxJtm-2Bz5aHA7ZF8X9aLtg1WDmFoc3dFuf5krtVt9rk2RZsqN4Qa8J0raliIgzJSdHkXGrVdBPFOnyzXRoawaZSR0pxiclc8RGm5UXFaBQ-3D




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux