chart2/source/view/main/3DChartObjects.cxx | 2 - editeng/source/outliner/outliner.cxx | 1 editeng/source/outliner/overflowingtxt.cxx | 16 ++++++++---- filter/source/graphicfilter/ipict/ipict.cxx | 32 ++++++++++++++----------- include/editeng/overflowingtxt.hxx | 2 - include/vcl/salbtype.hxx | 7 ----- sc/source/ui/view/editsh.cxx | 2 - svx/source/svdraw/svdedxv.cxx | 35 +++++++++++++--------------- svx/source/svdraw/svdotxed.cxx | 13 ++++++++-- svx/source/svdraw/textchainflow.cxx | 11 ++++++-- svx/source/xoutdev/_xoutbmp.cxx | 6 +++- svx/source/xoutdev/xattrbmp.cxx | 8 ++++-- sw/source/core/doc/tblrwcl.cxx | 2 - sw/source/core/layout/trvlfrm.cxx | 2 - tools/source/inet/inetmime.cxx | 29 ----------------------- vcl/source/filter/wmf/winwmf.cxx | 7 ++++- vcl/source/gdi/bitmap3.cxx | 9 ++++--- vcl/source/gdi/dibtools.cxx | 17 ++++++++----- vcl/unx/generic/gdi/salbmp.cxx | 6 ++-- 19 files changed, 107 insertions(+), 100 deletions(-)
New commits: commit 97a2ca5d689612a44a93cc7932eb2e7e46be4a68 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:39:54 2015 +0100 coverity#1242658 Untrusted loop bound Change-Id: I0a279e47a4d87f561f39d5a8ca65fa17e2bc4a65 diff --git a/filter/source/graphicfilter/ipict/ipict.cxx b/filter/source/graphicfilter/ipict/ipict.cxx index 5caa437..d926079 100644 --- a/filter/source/graphicfilter/ipict/ipict.cxx +++ b/filter/source/graphicfilter/ipict/ipict.cxx @@ -84,16 +84,15 @@ namespace PictReaderInternal { }; sal_uLong Pattern::read(SvStream &stream) { - short nx,ny; unsigned char nbyte[8]; sal_uLong nHiBytes, nLoBytes; isColor = false; // count the no of bits in pattern which are set to 1: nBitCount=0; - for (ny=0; ny<8; ny++) { + for (short ny=0; ny<8; ny++) { stream.ReadChar( reinterpret_cast<char&>(nbyte[ny]) ); - for (nx=0; nx<8; nx++) { + for (short nx=0; nx<8; nx++) { if ( (nbyte[ny] & (1<<nx)) != 0 ) nBitCount++; } } @@ -706,7 +705,7 @@ sal_uLong PictReader::ReadPixMapEtc( Bitmap &rBitmap, bool bBaseAddr, bool bColo Bitmap aBitmap; BitmapWriteAccess* pAcc = NULL; BitmapReadAccess* pReadAcc = NULL; - sal_uInt16 ny, nx, nColTabSize; + sal_uInt16 nColTabSize; sal_uInt16 nRowBytes, nBndX, nBndY, nWidth, nHeight, nVersion, nPackType, nPixelType, nPixelSize, nCmpCount, nCmpSize; sal_uInt32 nPackSize, nPlaneBytes, nHRes, nVRes; @@ -835,9 +834,14 @@ sal_uLong PictReader::ReadPixMapEtc( Bitmap &rBitmap, bool bBaseAddr, bool bColo if ( nRowBytes < nSrcBPL || nRowBytes > nDestBPL ) BITMAPERROR; - for ( ny = 0; ny < nHeight; ny++ ) + if ( nRowBytes < 8 || nPackType == 1 ) { + if (pPict->remainingSize() < sizeof(sal_uInt8) * nHeight * nRowBytes) + BITMAPERROR; + } + + for (sal_uInt16 ny = 0; ny < nHeight; ++ny) { - nx = 0; + sal_uInt16 nx = 0; if ( nRowBytes < 8 || nPackType == 1 ) { for ( i = 0; i < nRowBytes; i++ ) @@ -908,9 +912,9 @@ sal_uLong PictReader::ReadPixMapEtc( Bitmap &rBitmap, bool bBaseAddr, bool bColo BITMAPERROR; } - for ( ny = 0; ny < nHeight; ny++ ) + for (sal_uInt16 ny = 0; ny < nHeight; ++ny) { - nx = 0; + sal_uInt16 nx = 0; if ( nRowBytes < 8 || nPackType == 1 ) { for ( i = 0; i < nWidth; i++ ) @@ -1005,9 +1009,9 @@ sal_uLong PictReader::ReadPixMapEtc( Bitmap &rBitmap, bool bBaseAddr, bool bColo if (nWidth > nMaxCols) BITMAPERROR; - for ( ny = 0; ny < nHeight; ny++ ) + for (sal_uInt16 ny = 0; ny < nHeight; ++ny) { - for ( nx = 0; nx < nWidth; nx++ ) + for (sal_uInt16 nx = 0; nx < nWidth; ++nx) { pPict->ReadUChar( nDummy ).ReadUChar( nRed ).ReadUChar( nGreen ).ReadUChar( nBlue ); pAcc->SetPixel( ny, nx, BitmapColor( nRed, nGreen, nBlue) ); @@ -1025,9 +1029,9 @@ sal_uLong PictReader::ReadPixMapEtc( Bitmap &rBitmap, bool bBaseAddr, bool bColo if (nWidth > nMaxCols) BITMAPERROR; - for ( ny = 0; ny < nHeight; ny++ ) + for (sal_uInt16 ny = 0; ny < nHeight; ++ny) { - for ( nx = 0; nx < nWidth; nx++ ) + for (sal_uInt16 nx = 0; nx < nWidth; ++nx) { pPict->ReadUChar( nRed ).ReadUChar( nGreen ).ReadUChar( nBlue ); pAcc->SetPixel( ny, nx, BitmapColor( nRed, nGreen, nBlue ) ); @@ -1040,7 +1044,7 @@ sal_uLong PictReader::ReadPixMapEtc( Bitmap &rBitmap, bool bBaseAddr, bool bColo if ( ( nCmpCount == 3 ) || ( nCmpCount == 4 ) ) { std::unique_ptr<sal_uInt8[]> pScanline(new sal_uInt8[static_cast<size_t>(nWidth) * nCmpCount]); - for ( ny = 0; ny < nHeight; ny++ ) + for (sal_uInt16 ny = 0; ny < nHeight; ++ny) { nSrcBitsPos = pPict->Tell(); if ( nRowBytes > 250 ) @@ -1086,7 +1090,7 @@ sal_uLong PictReader::ReadPixMapEtc( Bitmap &rBitmap, bool bBaseAddr, bool bColo sal_uInt8* pTmp = pScanline.get(); if ( nCmpCount == 4 ) pTmp += nWidth; - for ( nx = 0; nx < nWidth; pTmp++ ) + for (sal_uInt16 nx = 0; nx < nWidth; pTmp++) pAcc->SetPixel( ny, nx++, BitmapColor( *pTmp, pTmp[ nWidth ], pTmp[ 2 * nWidth ] ) ); nDataSize += (sal_uLong)nByteCount; pPict->Seek( nSrcBitsPos + (sal_uLong)nByteCount ); commit 6a0adc9aeaa4976c03500231a5984c9fee7048f7 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:33:35 2015 +0100 fix coverity#1325071 Change-Id: I36e2e15b3c01c3d648feb23d8c886ea26301a5fd diff --git a/svx/source/svdraw/svdotxed.cxx b/svx/source/svdraw/svdotxed.cxx index 149a1bb..b2cc9d6 100644 --- a/svx/source/svdraw/svdotxed.cxx +++ b/svx/source/svdraw/svdotxed.cxx @@ -23,6 +23,7 @@ #include <svx/svdoutl.hxx> #include <editeng/editdata.hxx> #include <editeng/outliner.hxx> +#include <editeng/outlobj.hxx> #include <editeng/overflowingtxt.hxx> #include <editeng/editstat.hxx> #include <svl/itemset.hxx> commit d49430893e88bd4327e0f004c0e4b32c65225117 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:30:44 2015 +0100 coverity#1325077 Uninitialized pointer field Change-Id: I74121c1cc94edf338cf40a3d186308491e1d2409 diff --git a/editeng/source/outliner/overflowingtxt.cxx b/editeng/source/outliner/overflowingtxt.cxx index 945a845..6ead858 100644 --- a/editeng/source/outliner/overflowingtxt.cxx +++ b/editeng/source/outliner/overflowingtxt.cxx @@ -135,16 +135,15 @@ ESelection OverflowingText::GetInsertionPointSel() // class NonOverflowingText -NonOverflowingText::NonOverflowingText(const EditTextObject *pTObj, bool bLastParaInterrupted) - : mpContentTextObj(pTObj->Clone()), - mbLastParaInterrupted(bLastParaInterrupted) +NonOverflowingText::NonOverflowingText(const EditTextObject * /*pTObj*/, bool bLastParaInterrupted) + : mbLastParaInterrupted(bLastParaInterrupted) { // XXX: may have to delete pTObj } NonOverflowingText::NonOverflowingText(const ESelection &aSel, bool bLastParaInterrupted) - : maContentSel(aSel), - mbLastParaInterrupted(bLastParaInterrupted) + : maContentSel(aSel) + , mbLastParaInterrupted(bLastParaInterrupted) { } diff --git a/include/editeng/overflowingtxt.hxx b/include/editeng/overflowingtxt.hxx index 9eec07e..faa77f8 100644 --- a/include/editeng/overflowingtxt.hxx +++ b/include/editeng/overflowingtxt.hxx @@ -96,7 +96,6 @@ private: NonOverflowingText(const ESelection &aSel, bool bLastParaInterrupted); friend class Outliner; - const EditTextObject *mpContentTextObj; const ESelection maContentSel; const bool mbLastParaInterrupted; }; @@ -112,6 +111,7 @@ class EDITENG_DLLPUBLIC OFlowChainedText { public: OFlowChainedText(Outliner *, bool ); + ~OFlowChainedText(); OutlinerParaObject *InsertOverflowingText(Outliner *, OutlinerParaObject *); OutlinerParaObject *RemoveOverflowingText(Outliner *); commit 4d5979d35ae4a58f62e00c42b1af071f13686baa Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:27:15 2015 +0100 coverity1325072 Resource leak Change-Id: I78db1f189d4773ba2ced52fee82add2344b7435e diff --git a/svx/source/svdraw/textchainflow.cxx b/svx/source/svdraw/textchainflow.cxx index cfdb6ce..248c1c4 100644 --- a/svx/source/svdraw/textchainflow.cxx +++ b/svx/source/svdraw/textchainflow.cxx @@ -301,8 +301,8 @@ void EditingTextChainFlow::CheckForFlowEvents(SdrOutliner *pFlowOutl) void EditingTextChainFlow::impLeaveOnlyNonOverflowingText(SdrOutliner *pNonOverflOutl) { - //OutlinerParaObject *pNewText = - mpOverflChText->RemoveOverflowingText(pNonOverflOutl); + OutlinerParaObject *pNewText = mpOverflChText->RemoveOverflowingText(pNonOverflOutl); + delete pNewText; //impSetTextForEditingOutliner(pNewText); //XXX: Don't call it since we do everything with NonOverflowingText::ToParaObject // XXX: You may need this for Underflow // XXX: I'm not sure whether we need this (after all operations such as Paste don't change this - as far as I understand) commit a0c42a13de26d5b5cf070b452ebf93b831e0916d Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:25:48 2015 +0100 coverity#1325071 Resource leak Change-Id: If045233eeb0d8f6fab89dff4c4307a3b8bde5a92 diff --git a/svx/source/svdraw/svdotxed.cxx b/svx/source/svdraw/svdotxed.cxx index 4e07027..149a1bb 100644 --- a/svx/source/svdraw/svdotxed.cxx +++ b/svx/source/svdraw/svdotxed.cxx @@ -278,8 +278,6 @@ void SdrTextObj::TakeTextEditArea(Size* pPaperMin, Size* pPaperMax, Rectangle* p void SdrTextObj::EndTextEdit(SdrOutliner& rOutl) { - OutlinerParaObject* pNewText = NULL; - if(rOutl.IsModified()) { @@ -287,7 +285,8 @@ void SdrTextObj::EndTextEdit(SdrOutliner& rOutl) rOutl.UpdateFields(); sal_Int32 nParaAnz = rOutl.GetParagraphCount(); - pNewText = rOutl.CreateParaObject( 0, nParaAnz ); + bool bNewTextTransferred = false; + OutlinerParaObject* pNewText = rOutl.CreateParaObject( 0, nParaAnz ); // need to end edit mode early since SetOutlinerParaObject already // uses GetCurrentBoundRect() which needs to take the text into account @@ -298,10 +297,17 @@ void SdrTextObj::EndTextEdit(SdrOutliner& rOutl) if (IsChainable() && GetTextChain()->GetSwitchingToNextBox(this)) { GetTextChain()->SetSwitchingToNextBox(this, false); if( getActiveText() ) + { getActiveText()->SetOutlinerParaObject( pNewText); + bNewTextTransferred = true; + } } else { // If we are not doing in-chaining switching just set the ParaObject SetOutlinerParaObject(pNewText); + bNewTextTransferred = true; } + + if (!bNewTextTransferred) + delete pNewText; } /* Beginning Chaining-related code */ commit 2f50e9008040c4ff4c4fa516f784f0ae3624534e Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:23:39 2015 +0100 coverity#1325070 Resource leak Change-Id: I9ae845f1350095e5049ca4e56956fe9f5c7c918f diff --git a/vcl/source/gdi/dibtools.cxx b/vcl/source/gdi/dibtools.cxx index dbd69d8..4010743 100644 --- a/vcl/source/gdi/dibtools.cxx +++ b/vcl/source/gdi/dibtools.cxx @@ -1537,7 +1537,7 @@ bool ImplWriteDIB( rOStm.SetEndian(SvStreamEndian::LITTLE); - if(pAcc) + if (pAcc) { if(bFileHeader) { @@ -1552,11 +1552,11 @@ bool ImplWriteDIB( } Bitmap::ReleaseAccess(pAcc); + } - if(pAccAlpha) - { - Bitmap::ReleaseAccess(pAccAlpha); - } + if (pAccAlpha) + { + Bitmap::ReleaseAccess(pAccAlpha); } if(!bRet) commit cea187b6ea2ca4dc8bda51c3616eafb6393531ba Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:21:52 2015 +0100 coverity#1325069 Resource leak Change-Id: Ie02b77e17403474c65fbafa9ee2aa17bf0132417 diff --git a/chart2/source/view/main/3DChartObjects.cxx b/chart2/source/view/main/3DChartObjects.cxx index 89caf0a..1b8cc7b 100644 --- a/chart2/source/view/main/3DChartObjects.cxx +++ b/chart2/source/view/main/3DChartObjects.cxx @@ -106,7 +106,7 @@ const TextCacheItem& TextCache::getText(OUString const & rText, bool bIs3dText) memcpy(pBitmapBuf, buf, 3* nBmpWidth * nBmpHeight); TextCacheItem *pItem = new TextCacheItem(pBitmapBuf, aText.GetSizePixel()); maTextCache.insert(rText, pItem); - + Bitmap::ReleaseAccess(pAcc); return *maTextCache.find(rText)->second; } commit e2c8fbb535c5df91073fd5acbeccf51b2f3153c0 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:20:30 2015 +0100 coverity#1325068 Resource leak Change-Id: I608140eb05703f6f0cf2920be7ed706ef30e2a7d diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx index 1f077c2..72c9a4b 100644 --- a/editeng/source/outliner/outliner.cxx +++ b/editeng/source/outliner/outliner.cxx @@ -418,6 +418,7 @@ void Outliner::SetToEmptyText() { OutlinerParaObject *pEmptyTxt = GetEmptyParaObject(); SetText(*pEmptyTxt); + delete pEmptyTxt; } void Outliner::SetText( const OUString& rText, Paragraph* pPara ) commit acf83365fcea4b8471f087cf88a548e77b4b26e5 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:19:14 2015 +0100 coverity#1325067 Resource leak Change-Id: I1db24c81a2698ff49dd2441ddd1bc94a1a3e6f58 diff --git a/vcl/source/gdi/dibtools.cxx b/vcl/source/gdi/dibtools.cxx index ebab16d..dbd69d8 100644 --- a/vcl/source/gdi/dibtools.cxx +++ b/vcl/source/gdi/dibtools.cxx @@ -748,8 +748,13 @@ bool ImplReadDIBBody( SvStream& rIStm, Bitmap& rBmp, Bitmap* pBmpAlpha, sal_uLon BitmapPalette aDummyPal; Bitmap aNewBmp(aSizePixel, nBitCount, &aDummyPal); BitmapWriteAccess* pAcc = aNewBmp.AcquireWriteAccess(); - if (!pAcc || pAcc->Width() != aHeader.nWidth || pAcc->Height() != aHeader.nHeight) + if (!pAcc) return false; + if (pAcc->Width() != aHeader.nWidth || pAcc->Height() != aHeader.nHeight) + { + Bitmap::ReleaseAccess(pAcc); + return false; + } Bitmap aNewBmpAlpha; BitmapWriteAccess* pAccAlpha = 0; bool bAlphaPossible(pBmpAlpha && aHeader.nBitCount == 32); commit 1faa4dd2fb27543395b1241cb4adc18ce58895e2 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:17:52 2015 +0100 coverity#1325066 Resource leak Change-Id: I8065898bcce11f8b0243aea23854edee6fb05595 diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index 042fa2e..9224918 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -1311,8 +1311,8 @@ bool SdrObjEditView::KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin) /* Start special handling of keys within a chain */ // We possibly move to another box before any handling bool bHandled = false; - TextChainCursorManager *pCursorManager = - ImpHandleMotionThroughBoxesKeyInput(rKEvt, pWin, &bHandled); + std::unique_ptr<TextChainCursorManager> xCursorManager( + ImpHandleMotionThroughBoxesKeyInput(rKEvt, pWin, &bHandled)); if (bHandled) return true; /* End special handling of keys within a chain */ @@ -1327,7 +1327,7 @@ bool SdrObjEditView::KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin) /* Start chaining processing */ ImpChainingEventHdl(); - ImpMoveCursorAfterChainingEvent(pCursorManager); + ImpMoveCursorAfterChainingEvent(xCursorManager.get()); /* End chaining processing */ if (pWin!=NULL && pWin!=pTextEditWin) SetTextEditWin(pWin); commit 8a7dfe0fa51730ea7276a28a524395c989fb7e37 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:15:28 2015 +0100 coverity#1325065 Resource leak Change-Id: I87550b4972f65a34632f0cfe02eba1dc9fe22640 diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index ce29308..042fa2e 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -556,8 +556,8 @@ IMPL_LINK_NOARG_TYPED(SdrObjEditView,ImpAfterCutOrPasteChainingEventHdl, LinkPar if (!pTextObj) return; ImpChainingEventHdl(); - TextChainCursorManager *pCursorManager = new TextChainCursorManager(this, pTextObj); - ImpMoveCursorAfterChainingEvent(pCursorManager); + TextChainCursorManager aCursorManager(this, pTextObj); + ImpMoveCursorAfterChainingEvent(&aCursorManager); } void SdrObjEditView::ImpMoveCursorAfterChainingEvent(TextChainCursorManager *pCursorManager) commit d6377753ef481de643ce77db2d977177b67eb0cb Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:13:18 2015 +0100 coverit#1325064 Resource leak Change-Id: Iaf0798fdddf38698816dba6a1c512d8ce3a4db39 diff --git a/svx/source/svdraw/textchainflow.cxx b/svx/source/svdraw/textchainflow.cxx index c8de6c6..cfdb6ce 100644 --- a/svx/source/svdraw/textchainflow.cxx +++ b/svx/source/svdraw/textchainflow.cxx @@ -160,9 +160,9 @@ bool TextChainFlow::IsUnderflow() const // XXX:Would it be possible to unify undeflow and its possibly following overrflow? void TextChainFlow::ExecuteUnderflow(SdrOutliner *pOutl) { - //GetTextChain()->SetNilChainingEvent(mpTargetLink, true); // making whole text + bool bNewTextTransferred = false; OutlinerParaObject *pNewText = impGetMergedUnderflowParaObject(pOutl); // Set the other box empty; it will be replaced by the rest of the text if overflow occurs @@ -174,13 +174,18 @@ void TextChainFlow::ExecuteUnderflow(SdrOutliner *pOutl) // This should not be done in editing mode!! //XXX if (!mpTargetLink->IsInEditMode()) + { mpTargetLink->NbcSetOutlinerParaObject(pNewText); + bNewTextTransferred = true; + } // Restore size and set new text //pOutl->SetMaxAutoPaperSize(aOldSize); // XXX (it seems to be working anyway without this) pOutl->SetText(*pNewText); //GetTextChain()->SetNilChainingEvent(mpTargetLink, false); + if (!bNewTextTransferred) + delete pNewText; // Check for new overflow CheckForFlowEvents(pOutl); commit d643165f8161fbc4d2ade3a0f315565a87da0d63 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:09:58 2015 +0100 coverity#1325063 Resource leak Change-Id: I45f4f770a64d27ee5f5b323fa7079958b224fbac diff --git a/vcl/source/gdi/bitmap3.cxx b/vcl/source/gdi/bitmap3.cxx index 7bca988..9afad3f 100644 --- a/vcl/source/gdi/bitmap3.cxx +++ b/vcl/source/gdi/bitmap3.cxx @@ -1121,8 +1121,9 @@ bool Bitmap::ImplScaleFast( const double& rScaleX, const double& rScaleY ) } bRet = true; - ReleaseAccess( pWriteAcc ); } + + ReleaseAccess( pWriteAcc ); } ReleaseAccess( pReadAcc ); commit b62ff0cd434f0044b4becb8c5fdf72fe7e70aea6 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:08:51 2015 +0100 coverity#1325062 Resource leak Change-Id: I111b7d2f9fc0a15c07b2393acefde26e54065dc1 diff --git a/vcl/source/gdi/bitmap3.cxx b/vcl/source/gdi/bitmap3.cxx index 643f46b..7bca988 100644 --- a/vcl/source/gdi/bitmap3.cxx +++ b/vcl/source/gdi/bitmap3.cxx @@ -2610,9 +2610,11 @@ bool Bitmap::Adjust( short nLuminancePercent, short nContrastPercent, bool Bitmap::ImplConvolutionPass(Bitmap& aNewBitmap, BitmapReadAccess* pReadAcc, int aNumberOfContributions, double* pWeights, int* pPixels, int* pCount) { - BitmapWriteAccess* pWriteAcc = aNewBitmap.AcquireWriteAccess(); + if (!pReadAcc) + return false; - if (!pReadAcc || !pWriteAcc) + BitmapWriteAccess* pWriteAcc = aNewBitmap.AcquireWriteAccess(); + if (!pWriteAcc) return false; const int nHeight = GetSizePixel().Height(); commit 966f51376b593fea9417d6f6800e574f0672dd11 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:07:50 2015 +0100 coverity#1325061 Resource leak Change-Id: If680e1f9236ab6c1eb43f3d234cf36ef00442079 diff --git a/vcl/unx/generic/gdi/salbmp.cxx b/vcl/unx/generic/gdi/salbmp.cxx index 8204449..8487b5e 100644 --- a/vcl/unx/generic/gdi/salbmp.cxx +++ b/vcl/unx/generic/gdi/salbmp.cxx @@ -553,15 +553,15 @@ XImage* X11SalBitmap::ImplCreateXImage( #endif // set data in buffer as data member in pImage pImage->data = reinterpret_cast<char*>(pDstBuf->mpBits); - - // destroy buffer; don't destroy allocated data in buffer - delete pDstBuf; } else { XDestroyImage( pImage ); pImage = NULL; } + + // destroy buffer; doesn't destroy allocated data in buffer + delete pDstBuf; } } commit ebce6f0bb7b0320391c1e3d9d54dd29014c5d39e Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:04:52 2015 +0100 coverity#1325058 Dereference after null check Change-Id: I6290ab4a5951ada1588b9b7641b7e047cc82a9ee diff --git a/sc/source/ui/view/editsh.cxx b/sc/source/ui/view/editsh.cxx index c225286..9b1f66c 100644 --- a/sc/source/ui/view/editsh.cxx +++ b/sc/source/ui/view/editsh.cxx @@ -334,7 +334,7 @@ void ScEditShell::Execute( SfxRequest& rReq ) return; case SID_UNICODE_NOTATION_TOGGLE: { - EditView* pActiveView = pHdl ? pHdl->GetActiveView() : pEditView; + EditView* pActiveView = pHdl->GetActiveView(); if( pActiveView ) { OUString sInput = pEngine->GetText(); commit 41df45af6ae710c0dc6077b2e232f36d561fe975 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 10:02:39 2015 +0100 coverity#1325057 Dereference after null check Change-Id: I561751aa08831d65dd1762ffcd80b4ae9ff04a7d diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index ad9c7f5..ce29308 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -517,13 +517,14 @@ void SdrObjEditView::ImpChainingEventHdl() // Handling Undo const int nText = 0; // XXX: hardcoded index (SdrTextObj::getText handles only 0) - SdrUndoObjSetText *pTxtUndo = dynamic_cast< SdrUndoObjSetText* > - ( GetModel()->GetSdrUndoFactory().CreateUndoObjectSetText(*pTextObj, nText ) ); + const bool bUndoEnabled = GetModel() && IsUndoEnabled(); + SdrUndoObjSetText *pTxtUndo = bUndoEnabled ? dynamic_cast< SdrUndoObjSetText* > + ( GetModel()->GetSdrUndoFactory().CreateUndoObjectSetText(*pTextObj, nText ) ) : nullptr; // trigger actual chaining pTextObj->onChainingEvent(); - if (pTxtUndo!=NULL) + if (pTxtUndo) { pTxtUndo->AfterSetText(); if (!pTxtUndo->IsDifferent()) @@ -846,7 +847,7 @@ bool SdrObjEditView::SdrBeginTextEdit( if( mxSelectionController.is() ) mxSelectionController->onSelectionHasChanged(); - if(IsUndoEnabled() && GetModel() && !GetModel()->GetDisableTextEditUsesCommonUndoManager()) + if (GetModel() && IsUndoEnabled() && !GetModel()->GetDisableTextEditUsesCommonUndoManager()) { SdrUndoManager* pSdrUndoManager = getSdrUndoManagerForEnhancedTextEdit(); @@ -926,7 +927,7 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally) SdrUndoManager* pUndoEditUndoManager = 0; bool bNeedToUndoSavedRedoTextEdit(false); - if(IsUndoEnabled() && GetModel() && pTEObj && pTEOutliner && !GetModel()->GetDisableTextEditUsesCommonUndoManager()) + if (GetModel() && IsUndoEnabled() && pTEObj && pTEOutliner && !GetModel()->GetDisableTextEditUsesCommonUndoManager()) { // change back the UndoManager to the remembered original one ::svl::IUndoManager* pOriginal = pTEOutliner->SetUndoManager(mpOldTextEditUndoManager); commit 0c4baf56147ac9f39b190d2468ac3aafdf5aac41 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 09:51:31 2015 +0100 coverity#1325056 Unchecked dynamic_cast Change-Id: I34989b976f06627ce38cb7db11a96b85b1b89b4e diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index 3efb93b..ad9c7f5 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -1283,10 +1283,11 @@ TextChainCursorManager *SdrObjEditView::ImpHandleMotionThroughBoxesKeyInput( { *bOutHandled = false; - SdrTextObj* pTextObj = NULL; - if (mxTextEditObj.is()) - pTextObj= dynamic_cast<SdrTextObj*>(mxTextEditObj.get()); - else + if (!mxTextEditObj.is()) + return NULL; + + SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>(mxTextEditObj.get()); + if (!pTextObj) return NULL; if (!pTextObj->GetNextLinkInChain() && !pTextObj->GetPrevLinkInChain()) @@ -1302,8 +1303,6 @@ TextChainCursorManager *SdrObjEditView::ImpHandleMotionThroughBoxesKeyInput( return pCursorManager; } - - bool SdrObjEditView::KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin) { if(pTextEditOutlinerView) commit 4121fc92065ce9422d8029adba323a29605c3096 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 09:50:18 2015 +0100 coverity#1325055 Unchecked dynamic_cast Change-Id: Ib4017c3e771ed62a92328aced105c70159a2f1e2 diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index 9c88120..3efb93b 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -567,13 +567,12 @@ void SdrObjEditView::ImpMoveCursorAfterChainingEvent(TextChainCursorManager *pCu SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>(mxTextEditObj.get()); // Check if it has links to move it to - if (!pTextObj->IsChainable()) + if (!pTextObj || !pTextObj->IsChainable()) return; TextChain *pTextChain = pTextObj->GetTextChain(); ESelection aNewSel = pTextChain->GetPostChainingSel(pTextObj); - pCursorManager->HandleCursorEventAfterChaining( pTextChain->GetCursorEvent(pTextObj), aNewSel); commit a796b2ba09087dcdd6df45b20bd8703d85f2726b Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 09:49:20 2015 +0100 coverity#1325054 Explicit null dereferenced Change-Id: I1378d822e03218a3a4c2ae1d08b11a00b15287f6 diff --git a/sw/source/core/doc/tblrwcl.cxx b/sw/source/core/doc/tblrwcl.cxx index acc2d8e..b4abdb8 100644 --- a/sw/source/core/doc/tblrwcl.cxx +++ b/sw/source/core/doc/tblrwcl.cxx @@ -3856,7 +3856,7 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType, xFndBox.reset(); - if( ppUndo && *ppUndo ) + if (ppUndo && *ppUndo && aParam.pUndo) { aParam.pUndo->SetColWidthParam( nBoxIdx, static_cast<sal_uInt16>(eTableChgMode), eType, nAbsDiff, nRelDiff ); commit 4a031d7c971558f89693925bb504c1157ab6bd04 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 09:41:01 2015 +0100 coverity#1325053 Dereference after null check pre-change !pSh logic inverted at commit 1b15f4863e6d4b0a280ccd61713cbb1209ffe33e Author: Miklos Vajna <[email protected]> Date: Fri Feb 6 12:12:02 2015 +0100 LOK: add LOK_CALLBACK_TEXT_SELECTION and implement it in sw Change-Id: I31662cb06add0d1a1c517b5f5416703aeaae1e77 Change-Id: If42741c4efce943aaff5081a1a75108470b2a488 diff --git a/sw/source/core/layout/trvlfrm.cxx b/sw/source/core/layout/trvlfrm.cxx index 381df40..f71639e 100644 --- a/sw/source/core/layout/trvlfrm.cxx +++ b/sw/source/core/layout/trvlfrm.cxx @@ -2018,7 +2018,7 @@ void SwRootFrm::CalcFrmRects(SwShellCrsr &rCrsr) SwViewShell *pSh = GetCurrShell(); - bool bIgnoreVisArea = false; + bool bIgnoreVisArea = true; if (pSh) bIgnoreVisArea = pSh->GetViewOptions()->IsPDFExport() || pSh->isTiledRendering(); commit b72eea1dbf5bd3b9f6972b37a776cbc34dc59859 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 09:37:49 2015 +0100 coverity#1325052 Logically dead code since commit 984780243c9a1ab1242f3af719c6dca3ddacf67a Author: Stephan Bergmann <[email protected]> Date: Thu Sep 17 19:15:26 2015 +0200 HEADER_FIELD_TEXT is the only used HeaderFieldType Change-Id: Ia4e5554e1aaed9e821bdea18b9b3acff001dd6e7 Change-Id: Id56790fd5c953d4d7f4a235c7d016c807ff37038 diff --git a/tools/source/inet/inetmime.cxx b/tools/source/inet/inetmime.cxx index 16c7d2a..afdfdf7 100644 --- a/tools/source/inet/inetmime.cxx +++ b/tools/source/inet/inetmime.cxx @@ -2426,7 +2426,6 @@ OUString INetMIME::decodeHeaderFieldBody(const OString& rBody) /* bool bStartEncodedWord = true; */ const sal_Char * pWSPBegin = pBegin; - sal_uInt32 nCommentLevel = 0; for (const sal_Char * p = pBegin; p != pEnd;) { @@ -2704,8 +2703,6 @@ OUString INetMIME::decodeHeaderFieldBody(const OString& rBody) break; case ')': - if (nCommentLevel > 0) - --nCommentLevel; /* bStartEncodedWord = false; */ break; commit 1f1b1609029f4358f6b2dc3004ab256dbc3f49af Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 09:36:34 2015 +0100 coverity#1325051 Logically dead code since commit 984780243c9a1ab1242f3af719c6dca3ddacf67a Author: Stephan Bergmann <[email protected]> Date: Thu Sep 17 19:15:26 2015 +0200 HEADER_FIELD_TEXT is the only used HeaderFieldType Change-Id: Ia4e5554e1aaed9e821bdea18b9b3acff001dd6e7 Change-Id: I94a1cba6e9813b7192a03ea59948bb40438c341b diff --git a/tools/source/inet/inetmime.cxx b/tools/source/inet/inetmime.cxx index e8a5053..16c7d2a 100644 --- a/tools/source/inet/inetmime.cxx +++ b/tools/source/inet/inetmime.cxx @@ -2426,7 +2426,6 @@ OUString INetMIME::decodeHeaderFieldBody(const OString& rBody) /* bool bStartEncodedWord = true; */ const sal_Char * pWSPBegin = pBegin; - bool bQuotedEncodedText = false; sal_uInt32 nCommentLevel = 0; for (const sal_Char * p = pBegin; p != pEnd;) @@ -2689,30 +2688,7 @@ OUString INetMIME::decodeHeaderFieldBody(const OString& rBody) } if (!sEncodedText.isEmpty()) - { - if (bQuotedEncodedText) - { - sDecoded += "\""; - const sal_Unicode * pTextPtr = sEncodedText.getStr(); - const sal_Unicode * pTextEnd = pTextPtr + sEncodedText.getLength(); - for (;pTextPtr != pTextEnd; ++pTextPtr) - { - switch (*pTextPtr) - { - case '"': - case '\\': - case '\x0D': - sDecoded += "\\"; - break; - } - sDecoded += OUString(*pTextPtr); - } - sDecoded += "\""; - } - else - sDecoded += sEncodedText; - bQuotedEncodedText = false; - } + sDecoded += sEncodedText; if (p == pEnd) break; commit 259fb99d340b17de056faeab5870b7927426864e Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 09:34:07 2015 +0100 coverity#1325050 Resource leak in object Change-Id: Ifb049feb653d1c345b3d40226e9afb1db877e6a0 diff --git a/editeng/source/outliner/overflowingtxt.cxx b/editeng/source/outliner/overflowingtxt.cxx index 995216f..945a845 100644 --- a/editeng/source/outliner/overflowingtxt.cxx +++ b/editeng/source/outliner/overflowingtxt.cxx @@ -193,6 +193,13 @@ OFlowChainedText::OFlowChainedText(Outliner *pOutl, bool bIsDeepMerge) mbIsDeepMerge = bIsDeepMerge; } +OFlowChainedText::~OFlowChainedText() +{ + delete mpNonOverflowingTxt; + delete mpOverflowingTxt; +} + + ESelection OFlowChainedText::GetInsertionPointSel() { return OverflowingText::GetInsertionPointSel(); commit f1a9c5276d46988e9fb15943e7b019c224d5ad47 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 09:30:29 2015 +0100 coverity#1242704 Untrusted loop bound Change-Id: Id8a80028ad00ec7ae79eaa9d877a1fef9f4d082c diff --git a/vcl/source/filter/wmf/winwmf.cxx b/vcl/source/filter/wmf/winwmf.cxx index 9e446c0..463e8a8 100644 --- a/vcl/source/filter/wmf/winwmf.cxx +++ b/vcl/source/filter/wmf/winwmf.cxx @@ -643,7 +643,12 @@ void WMFReader::ReadRecordParams( sal_uInt16 nFunc ) Point aPoint( ReadYX() ); pWMF->ReadUInt16( nDontKnow ).ReadUInt16( nWidth ).ReadUInt16( nHeight ).ReadUInt16( nBytesPerScan ).ReadUChar( nPlanes ).ReadUChar( nBitCount ); - if ( nWidth && nHeight && ( nPlanes == 1 ) && ( nBitCount == 1 ) ) + bool bOk = nWidth && nHeight && nPlanes == 1 && nBitCount == 1; + if (bOk) + { + bOk = nBytesPerScan <= pWMF->remainingSize() / nHeight; + } + if (bOk) { Bitmap aBmp( Size( nWidth, nHeight ), nBitCount ); BitmapWriteAccess* pAcc; commit 7be2fba41dfb184a0bf6f5c7f197e2222d43f3e8 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 09:17:27 2015 +0100 coverity#708213 ditch the empty ctor/dtors which should silence "708213 Uninitialized pointer field" Change-Id: I0e16a0b02f3d48c4da324f371cae2234ad4cb6e2 diff --git a/include/vcl/salbtype.hxx b/include/vcl/salbtype.hxx index 82ae036..9f2dd65 100644 --- a/include/vcl/salbtype.hxx +++ b/include/vcl/salbtype.hxx @@ -109,8 +109,6 @@ public: inline BitmapColor( const Color& rColor ); explicit inline BitmapColor( sal_uInt8 cIndex ); - inline ~BitmapColor() {}; - inline bool operator==( const BitmapColor& rBitmapColor ) const; inline bool operator!=( const BitmapColor& rBitmapColor ) const; @@ -246,8 +244,6 @@ public: { } - ~ColorMask() {} - inline sal_uInt32 GetRedMask() const; inline sal_uInt32 GetGreenMask() const; inline sal_uInt32 GetBlueMask() const; @@ -279,9 +275,6 @@ struct VCL_DLLPUBLIC BitmapBuffer ColorMask maColorMask; BitmapPalette maPalette; sal_uInt8* mpBits; - - BitmapBuffer(){} - ~BitmapBuffer() {} }; // - Access modes - commit d654c1195450f21e112adbb76b8a13b3b09dfa73 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 09:10:40 2015 +0100 coverity#705736 Resource leak Change-Id: I124f75e56aad1bd5008a7d9d64328b0e6e5f874c diff --git a/svx/source/xoutdev/xattrbmp.cxx b/svx/source/xoutdev/xattrbmp.cxx index b4cdfe3..bfc06ca 100644 --- a/svx/source/xoutdev/xattrbmp.cxx +++ b/svx/source/xoutdev/xattrbmp.cxx @@ -248,6 +248,8 @@ Bitmap createHistorical8x8FromArray(const sal_uInt16* pArray, Color aColorPix, C bool isHistorical8x8(const BitmapEx& rBitmapEx, BitmapColor& o_rBack, BitmapColor& o_rFront) { + bool bRet(false); + if(!rBitmapEx.IsTransparent()) { Bitmap aBitmap(rBitmapEx.GetBitmap()); @@ -269,14 +271,16 @@ bool isHistorical8x8(const BitmapEx& rBitmapEx, BitmapColor& o_rBack, BitmapColo o_rFront = rPalette[1]; o_rBack = rPalette[0]; - return true; + bRet = true; } + + Bitmap::ReleaseAccess(pRead); } } } } - return false; + return bRet; } XFillBitmapItem::XFillBitmapItem(SvStream& rIn, sal_uInt16 nVer) commit 92ffbf51b3d74ceb45e473db84a7493e1219b7c4 Author: Caolán McNamara <[email protected]> Date: Tue Sep 29 09:08:10 2015 +0100 coverity#705735 Resource leak Change-Id: I7d79c1332b6acde722d6134fcfe64b4333a4c2b9 diff --git a/svx/source/xoutdev/_xoutbmp.cxx b/svx/source/xoutdev/_xoutbmp.cxx index 3993018..54cfc76 100644 --- a/svx/source/xoutdev/_xoutbmp.cxx +++ b/svx/source/xoutdev/_xoutbmp.cxx @@ -477,7 +477,7 @@ Bitmap XOutBitmap::DetectEdges( const Bitmap& rBmp, const sal_uInt8 cThreshold ) } return aRetBmp; -}; +} tools::Polygon XOutBitmap::GetCountour( const Bitmap& rBmp, const sal_uIntPtr nFlags, const sal_uInt8 cEdgeDetectThreshold, @@ -610,10 +610,12 @@ tools::Polygon XOutBitmap::GetCountour( const Bitmap& rBmp, const sal_uIntPtr nF if( ( fFactorX != 0. ) && ( fFactorY != 0. ) ) aRetPoly.Scale( fFactorX, fFactorY ); } + + Bitmap::ReleaseAccess(pAcc); } return aRetPoly; -}; +} bool DitherBitmap( Bitmap& rBitmap ) {
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
