[Libreoffice-commits] core.git: 6 commits - lotuswordpro/source
lotuswordpro/source/filter/lwpdoc.cxx | 16 lotuswordpro/source/filter/lwpfoundry.cxx |1 - lotuswordpro/source/filter/lwpframelayout.cxx |2 +- lotuswordpro/source/filter/lwptablelayout.cxx |3 +-- lotuswordpro/source/filter/lwptabrack.cxx |3 +-- 5 files changed, 11 insertions(+), 14 deletions(-) New commits: commit 05664c6ffae062a19ff3aa3e0949354d2586919d Author: David Tardon AuthorDate: Fri Jun 12 17:01:40 2020 +0200 Commit: David Tardon CommitDate: Fri Jun 12 19:05:09 2020 +0200 return directly Change-Id: Ia5ebadfd825b0cbd106893f0b7b25e28b878dfeb diff --git a/lotuswordpro/source/filter/lwptabrack.cxx b/lotuswordpro/source/filter/lwptabrack.cxx index 84a80decd93b..3aea3905e653 100644 --- a/lotuswordpro/source/filter/lwptabrack.cxx +++ b/lotuswordpro/source/filter/lwptabrack.cxx @@ -118,8 +118,7 @@ LwpTab* LwpTabRack::Lookup(sal_uInt16 nIndex) LwpTabRack* LwpTabRack::GetNext() { -LwpTabRack* pTabRack = dynamic_cast(m_NextID.obj().get()); -return pTabRack; +return dynamic_cast(m_NextID.obj().get()); } sal_uInt16 LwpTabRack::GetNumTabs() commit 0bc6b243746837433713804b430f7ade44b9c8c0 Author: David Tardon AuthorDate: Fri Jun 12 17:00:34 2020 +0200 Commit: David Tardon CommitDate: Fri Jun 12 19:05:09 2020 +0200 return directly Change-Id: I727a34213fef5adefdc6c1a046d47a7f37cfdcd0 diff --git a/lotuswordpro/source/filter/lwptablelayout.cxx b/lotuswordpro/source/filter/lwptablelayout.cxx index fbfc35174dd7..95aaf13715fc 100644 --- a/lotuswordpro/source/filter/lwptablelayout.cxx +++ b/lotuswordpro/source/filter/lwptablelayout.cxx @@ -514,8 +514,7 @@ LwpSuperTableLayout * LwpTableLayout::GetSuperTableLayout() */ LwpTable * LwpTableLayout::GetTable() { -LwpTable *pTable = dynamic_cast(m_Content.obj().get()); -return pTable; +return dynamic_cast(m_Content.obj().get()); } /** * @short Get column style name by column ID commit 06248bbaf21723f505d99c65906e5c6781c54c83 Author: David Tardon AuthorDate: Fri Jun 12 16:41:07 2020 +0200 Commit: David Tardon CommitDate: Fri Jun 12 19:05:08 2020 +0200 use dynamic_cast Change-Id: Iac420c2dd37be392ae817e0433de68c983546667 diff --git a/lotuswordpro/source/filter/lwpframelayout.cxx b/lotuswordpro/source/filter/lwpframelayout.cxx index 01be3544108d..feb6f76266f1 100644 --- a/lotuswordpro/source/filter/lwpframelayout.cxx +++ b/lotuswordpro/source/filter/lwpframelayout.cxx @@ -1166,7 +1166,7 @@ void LwpDropcapLayout::XFConvert(XFContentContainer* pCont) void LwpDropcapLayout::RegisterStyle(LwpFoundry* pFoundry) { -LwpStory* pStory = static_cast(m_Content.obj(VO_STORY).get()); +LwpStory* pStory = dynamic_cast(m_Content.obj(VO_STORY).get()); if (pStory) { pStory->SetDropcapFlag(true); commit 9dfa1d2f9fd94b5a8d25c8dccb2bd674886a12ba Author: David Tardon AuthorDate: Fri Jun 12 16:36:06 2020 +0200 Commit: David Tardon CommitDate: Fri Jun 12 19:05:08 2020 +0200 drop misleading comment Change-Id: I2ae4b9dbcf3134ec5301d14c32d6904817d350fb diff --git a/lotuswordpro/source/filter/lwpfoundry.cxx b/lotuswordpro/source/filter/lwpfoundry.cxx index 2a17efbe8ae2..d18dcd3903b6 100644 --- a/lotuswordpro/source/filter/lwpfoundry.cxx +++ b/lotuswordpro/source/filter/lwpfoundry.cxx @@ -266,7 +266,6 @@ LwpObjectID * LwpFoundry::GetDefaultTextStyle() */ LwpObjectID * LwpFoundry::FindParaStyleByName(const OUString& name) { -//Register all text styles: para styles, character styles LwpDLVListHeadHolder* pParaStyleHolder = dynamic_cast(GetTextStyleHead().obj().get()); if(pParaStyleHolder) { commit d65d11343d975cc4e278deca54d166aeff0aa850 Author: David Tardon AuthorDate: Fri Jun 12 16:30:40 2020 +0200 Commit: David Tardon CommitDate: Fri Jun 12 19:05:08 2020 +0200 rename variable Change-Id: I24e0902998420685656a350cb849a19d8c7a8a35 diff --git a/lotuswordpro/source/filter/lwpdoc.cxx b/lotuswordpro/source/filter/lwpdoc.cxx index 8aab1b5fb68e..7dc59e13e75a 100644 --- a/lotuswordpro/source/filter/lwpdoc.cxx +++ b/lotuswordpro/source/filter/lwpdoc.cxx @@ -231,19 +231,19 @@ void LwpDocument::RegisterStyle() void LwpDocument::RegisterTextStyles() { //Register all text styles: para styles, character styles -LwpDLVListHeadHolder* pParaStyleHolder = m_xOwnedFoundry +LwpDLVListHeadHolder* pTextStyleHolder = m_xOwnedFoundry ? dynamic_cast(m_xOwnedFoundry->GetTextStyleHead().obj().get()) : nullptr; -if(pParaStyleHolder) +if(pTextStyleHolder) { -LwpTextStyle* pParaStyle = dynamic_cast (pParaStyleHolder->GetHeadID().obj().get()); -while(pParaStyle) +LwpTextStyle* pTextStyle = dynamic_cast (pTextStyleHolder->GetHeadID().obj().get()); +while(pTextStyle) { -if (pParaStyle->GetFoundry()) +if (pTextStyle->GetFoundry()) thro
[Libreoffice-commits] core.git: 6 commits - lotuswordpro/source vcl/headless vcl/source vcl/unx xmloff/source
lotuswordpro/source/filter/lwpbackgroundstuff.cxx |2 lotuswordpro/source/filter/lwpcelllayout.cxx |6 - lotuswordpro/source/filter/lwpdrawobj.cxx | 60 +- lotuswordpro/source/filter/lwpgrfobj.cxx | 20 +++--- lotuswordpro/source/filter/lwppagelayout.cxx | 16 ++-- lotuswordpro/source/filter/lwppara.cxx| 14 ++-- lotuswordpro/source/filter/lwppara1.cxx |8 +- lotuswordpro/source/filter/lwpsdwgrouploaderv0102.cxx |6 - lotuswordpro/source/filter/lwpsilverbullet.cxx| 14 ++-- lotuswordpro/source/filter/lwpstory.cxx |2 lotuswordpro/source/filter/lwptablelayout.cxx |4 - lotuswordpro/source/filter/xfilter/xfpagemaster.hxx |2 vcl/headless/svpvd.cxx|1 vcl/source/filter/igif/gifread.cxx| 29 +++- vcl/source/filter/wmf/enhwmf.cxx |6 - vcl/source/filter/wmf/winmtf.cxx | 10 +-- vcl/source/filter/wmf/winmtf.hxx |2 vcl/source/filter/wmf/winwmf.cxx |4 - vcl/source/outdev/transparent.cxx |6 - vcl/unx/generic/desktopdetect/desktopdetector.cxx |2 vcl/unx/gtk3/gtk3gtkinst.cxx | 25 ++- xmloff/source/chart/SchXMLExport.cxx |4 - 22 files changed, 129 insertions(+), 114 deletions(-) New commits: commit f1358edf469e70df1fb044bb58cd888fea15173c Author: Caolán McNamara Date: Thu Jan 21 11:28:50 2016 + Resolves: rhbz#1240591 gtk3: store clipboard when LibreOffice is closed now contents copied to clipboard persist after LibreOffice exits Change-Id: I4433543944fb9664f87ade43da1198dcdd4e2a7c diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index f1a9ddc..a3f3068 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -13,12 +13,12 @@ #include "com/sun/star/lang/XServiceInfo.hpp" #include "com/sun/star/lang/XSingleServiceFactory.hpp" #include "com/sun/star/lang/XInitialization.hpp" -#include "com/sun/star/lang/DisposedException.hpp" #include "com/sun/star/datatransfer/XTransferable.hpp" #include "com/sun/star/datatransfer/clipboard/XClipboard.hpp" #include "com/sun/star/datatransfer/clipboard/XClipboardEx.hpp" #include "com/sun/star/datatransfer/clipboard/XClipboardNotifier.hpp" #include "com/sun/star/datatransfer/clipboard/XClipboardListener.hpp" +#include "com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp" #include "com/sun/star/datatransfer/clipboard/XSystemClipboard.hpp" #include "com/sun/star/datatransfer/dnd/XDragSource.hpp" #include "com/sun/star/datatransfer/dnd/XDropTarget.hpp" @@ -275,6 +275,7 @@ static void clipboard_owner_init(ClipboardOwner *) class VclGtkClipboard : public cppu::WeakComponentImplHelper< datatransfer::clipboard::XSystemClipboard, +datatransfer::clipboard::XFlushableClipboard, XServiceInfo> { GdkAtom m_nSelection; @@ -326,6 +327,12 @@ public: throw(RuntimeException, std::exception) override; /* + * XFlushableClipboard + */ +virtual void SAL_CALL flushClipboard() +throw(RuntimeException, std::exception) override; + +/* * XClipboardNotifier */ virtual void SAL_CALL addClipboardListener( @@ -502,7 +509,8 @@ namespace } VclGtkClipboard::VclGtkClipboard(GdkAtom nSelection) -: cppu::WeakComponentImplHelper +: cppu::WeakComponentImplHelper (m_aMutex) , m_nSelection(nSelection) { @@ -513,6 +521,16 @@ VclGtkClipboard::VclGtkClipboard(GdkAtom nSelection) m_pOwner->m_pThis = this; } +void VclGtkClipboard::flushClipboard() + throw (RuntimeException, std::exception) +{ +if (GDK_SELECTION_CLIPBOARD != m_nSelection) +return; + +GtkClipboard* clipboard = gtk_clipboard_get(m_nSelection); +gtk_clipboard_store(clipboard); +} + VclGtkClipboard::~VclGtkClipboard() { GtkClipboard* clipboard = gtk_clipboard_get(m_nSelection); @@ -524,7 +542,7 @@ VclGtkClipboard::~VclGtkClipboard() void VclGtkClipboard::setContents( const Reference< css::datatransfer::XTransferable >& xTrans, const Reference< css::datatransfer::clipboard::XClipboardOwner >& xClipboardOwner ) -throw( RuntimeException, std::exception ) +throw(RuntimeException, std::exception) { osl::ClearableMutexGuard aGuard( m_aMutex ); Reference< datatransfer::clipboard::XClipboardOwner > xOldOwner( m_aOwner ); @@ -584,6 +602,7 @@ void VclGtkClipboard::setContents( //if we have gained or lost ownership of the clipboard gtk_clipboard_set_with_owner(clipboard, aGtkTargets.data(), aGtkTargets.size(), ClipboardGetFunc, ClipboardClearFunc, G_OBJECT(m_pO
[Libreoffice-commits] core.git: 6 commits - lotuswordpro/source
lotuswordpro/source/filter/lwpfnlayout.cxx|2 +- lotuswordpro/source/filter/lwpframelayout.cxx |9 ++--- lotuswordpro/source/filter/lwpobjfactory.cxx |5 + lotuswordpro/source/filter/lwpobjfactory.hxx |3 ++- lotuswordpro/source/filter/lwppara.cxx|2 +- lotuswordpro/source/filter/lwppara1.cxx |2 +- lotuswordpro/source/filter/lwptblformula.cxx | 17 - 7 files changed, 32 insertions(+), 8 deletions(-) New commits: commit 3735b05668ffcaa37fcecf2907478616db52f2b4 Author: Caolán McNamara Date: Thu Dec 10 21:28:39 2015 + need a dynamic cast here 53rd and final distinct crash fix of this sequence Change-Id: Id170132c2082fd4905192adc840125088ef5da27 diff --git a/lotuswordpro/source/filter/lwpfnlayout.cxx b/lotuswordpro/source/filter/lwpfnlayout.cxx index 7707eef..3ba3795 100644 --- a/lotuswordpro/source/filter/lwpfnlayout.cxx +++ b/lotuswordpro/source/filter/lwpfnlayout.cxx @@ -258,7 +258,7 @@ void LwpEnSuperTableLayout::XFConvert(XFContentContainer * /*pCont*/) while(!rID.IsNull()) { -LwpVirtualLayout * pLayout = static_cast(rID.obj().get()); +LwpVirtualLayout * pLayout = dynamic_cast(rID.obj().get()); if(!pLayout) { break; commit ef68438d384ed6dd919fa0f1a3830d2171f8e002 Author: Caolán McNamara Date: Thu Dec 10 21:24:32 2015 + guard against empty Story Change-Id: Ide44aed9a3189b0fd21a8adc039eb61bd3d3dc14 diff --git a/lotuswordpro/source/filter/lwppara.cxx b/lotuswordpro/source/filter/lwppara.cxx index 4b20405..327e016 100644 --- a/lotuswordpro/source/filter/lwppara.cxx +++ b/lotuswordpro/source/filter/lwppara.cxx @@ -669,7 +669,7 @@ void LwpPara::RegisterStyle() if (!pPrePara) { LwpStory* pStory = pPara->GetStory(); -pPrePara = pStory->GetLastParaOfPreviousStory(); +pPrePara = pStory ? pStory->GetLastParaOfPreviousStory() : nullptr; if (!pPrePara) { commit 1e0b9881b4dc7d002d5da767f1476fb1c2147fc7 Author: Caolán McNamara Date: Thu Dec 10 21:20:03 2015 + guard against broken formula and bad lengths Change-Id: Iab13d67fdc218c84400a4d84e177e5096bb68379 diff --git a/lotuswordpro/source/filter/lwptblformula.cxx b/lotuswordpro/source/filter/lwptblformula.cxx index 0562eea..963377e 100644 --- a/lotuswordpro/source/filter/lwptblformula.cxx +++ b/lotuswordpro/source/filter/lwptblformula.cxx @@ -170,8 +170,13 @@ bool LwpFormulaInfo::ReadExpression() /* Read the compiled expression length */ m_pObjStrm->SeekRel(2); -while ((TokenType = m_pObjStrm->QuickReaduInt16()) != TK_END) +bool bError = false; +while ((TokenType = m_pObjStrm->QuickReaduInt16(&bError)) != TK_END) { + +if (bError) +throw std::runtime_error("error reading expression"); + // Get the disk length of this token DiskLength = m_pObjStrm->QuickReaduInt16(); @@ -221,19 +226,29 @@ bool LwpFormulaInfo::ReadExpression() case TK_NOT: m_pObjStrm->SeekRel(DiskLength); // extensible for future +if (m_aStack.size() >= 2) {//binary operator LwpFormulaOp* pOp = new LwpFormulaOp(TokenType); pOp->AddArg(m_aStack.back()); m_aStack.pop_back(); pOp->AddArg(m_aStack.back()); m_aStack.pop_back(); m_aStack.push_back(pOp); } +else +{ +readSucceeded = false; +} break; case TK_UNARY_MINUS: +if (!m_aStack.empty()) { LwpFormulaUnaryOp* pOp = new LwpFormulaUnaryOp(TokenType); pOp->AddArg(m_aStack.back()); m_aStack.pop_back(); m_aStack.push_back(pOp); } +else +{ +readSucceeded = false; +} break; default: // We don't know what to do with this token, so eat it. commit 6834384e80cf5cd374cdec471ce385ba2ca94580 Author: Caolán McNamara Date: Thu Dec 10 21:06:01 2015 + check for null Modifiers Change-Id: I842122f7e2cba48d4798905f41f63b3e06775d00 diff --git a/lotuswordpro/source/filter/lwppara1.cxx b/lotuswordpro/source/filter/lwppara1.cxx index cfed811..087ac0b 100644 --- a/lotuswordpro/source/filter/lwppara1.cxx +++ b/lotuswordpro/source/filter/lwppara1.cxx @@ -220,7 +220,7 @@ void LwpPara::GetParaNumber(sal_uInt16 nPosition, ParaNumbering* pParaNumbering) if (pPreFrib) { if ((pPreFrib->GetType() == FRIB_TAG_TEXT) && - (pP
[Libreoffice-commits] core.git: 6 commits - lotuswordpro/source sc/source
lotuswordpro/source/filter/lwpdrawobj.cxx | 33 +++-- lotuswordpro/source/filter/lwptools.hxx|6 sc/source/ui/condformat/colorformat.cxx|4 +-- sc/source/ui/condformat/condformatdlgentry.cxx |2 - sc/source/ui/miscdlgs/datafdlg.cxx |5 +-- 5 files changed, 37 insertions(+), 13 deletions(-) New commits: commit ac68cab1f1e6991bc95fe482f4d9be1538b827c4 Author: Caolán McNamara Date: Tue Oct 14 15:21:27 2014 +0100 coverity#1242739 Untrusted loop bound and coverity#1242739 Untrusted loop bound Change-Id: I2cab9b3c531befc42c1522dd0d4beb59df7ae315 diff --git a/lotuswordpro/source/filter/lwpdrawobj.cxx b/lotuswordpro/source/filter/lwpdrawobj.cxx index 4ae6279..2ca16ad 100644 --- a/lotuswordpro/source/filter/lwpdrawobj.cxx +++ b/lotuswordpro/source/filter/lwpdrawobj.cxx @@ -1209,10 +1209,14 @@ void LwpDrawTextArt::Read() sal_uInt16 nPointNumber; sal_Int16 nX, nY; m_pStream->ReadUInt16( nPointNumber ); + +size_t nPoints = nPointNumber*3+1; +if (nPoints > m_pStream->remainingSize() / 4) +throw BadRead(); + m_aTextArtRec.aPath[0].n = nPointNumber; -m_aTextArtRec.aPath[0].pPts = new SdwPoint [nPointNumber*3+1]; -sal_uInt16 nPt = 0; -for ( nPt = 0; nPt <= nPointNumber*3; nPt++) +m_aTextArtRec.aPath[0].pPts = new SdwPoint[nPoints]; +for (size_t nPt = 0; nPt < nPoints; ++nPt) { m_pStream->ReadInt16( nX ); m_pStream->ReadInt16( nY ); @@ -1221,9 +1225,14 @@ void LwpDrawTextArt::Read() } m_pStream->ReadUInt16( nPointNumber ); + +nPoints = nPointNumber*3+1; +if (nPoints > m_pStream->remainingSize() / 4) +throw BadRead(); + m_aTextArtRec.aPath[1].n = nPointNumber; -m_aTextArtRec.aPath[1].pPts = new SdwPoint [nPointNumber*3+1]; -for (nPt = 0; nPt <= nPointNumber*3; nPt++) +m_aTextArtRec.aPath[1].pPts = new SdwPoint[nPoints]; +for (size_t nPt = 0; nPt < nPoints; ++nPt) { m_pStream->ReadInt16( nX ); m_pStream->ReadInt16( nY ); @@ -1251,6 +1260,10 @@ void LwpDrawTextArt::Read() - (m_aTextArtRec.aPath[0].n*3 + 1)*4 - (m_aTextArtRec.aPath[1].n*3 + 1)*4; + +if (m_aTextArtRec.nTextLen > m_pStream->remainingSize()) +throw BadRead(); + m_aTextArtRec.pTextString = new sal_uInt8 [m_aTextArtRec.nTextLen]; m_pStream->Read(m_aTextArtRec.pTextString, m_aTextArtRec.nTextLen); m_aTextArtRec.pTextString[m_aTextArtRec.nTextLen-1] = 0; commit da859a7949238e74e5287f1bacc61886b4294858 Author: Caolán McNamara Date: Tue Oct 14 15:13:01 2014 +0100 coverity#1242791 Untrusted loop bound Change-Id: Iba6d6b77fe30e11f50e16c1ee899b71ea4337355 diff --git a/lotuswordpro/source/filter/lwpdrawobj.cxx b/lotuswordpro/source/filter/lwpdrawobj.cxx index f357f9d..4ae6279 100644 --- a/lotuswordpro/source/filter/lwpdrawobj.cxx +++ b/lotuswordpro/source/filter/lwpdrawobj.cxx @@ -591,7 +591,10 @@ void LwpDrawPolygon::Read() this->ReadClosedObjStyle(); m_pStream->ReadUInt16( m_nNumPoints ); -m_pVector = new SdwPoint [m_nNumPoints]; +if (m_nNumPoints > m_pStream->remainingSize() / 4) +throw BadRead(); + +m_pVector = new SdwPoint[m_nNumPoints]; for (sal_uInt16 nC = 0; nC < m_nNumPoints; nC++) { commit e4ebd97a9b5dc3a25a142109d2a0dbe41925e431 Author: Caolán McNamara Date: Tue Oct 14 15:12:05 2014 +0100 coverity#1242918 Untrusted loop bound Change-Id: I8575a43a095165a81417f169463aaf2c4ab337e8 diff --git a/lotuswordpro/source/filter/lwpdrawobj.cxx b/lotuswordpro/source/filter/lwpdrawobj.cxx index 4be146f..f357f9d 100644 --- a/lotuswordpro/source/filter/lwpdrawobj.cxx +++ b/lotuswordpro/source/filter/lwpdrawobj.cxx @@ -505,7 +505,10 @@ void LwpDrawPolyLine::Read() m_pStream->ReadUChar( m_aPolyLineRec.aPenColor.unused ); m_pStream->ReadUInt16( m_aPolyLineRec.nNumPoints ); -m_pVector= new SdwPoint [m_aPolyLineRec.nNumPoints]; +if (m_aPolyLineRec.nNumPoints > m_pStream->remainingSize() / 4) +throw BadRead(); + +m_pVector= new SdwPoint[m_aPolyLineRec.nNumPoints]; for (sal_uInt16 nC = 0; nC < m_aPolyLineRec.nNumPoints; nC++) { diff --git a/lotuswordpro/source/filter/lwptools.hxx b/lotuswordpro/source/filter/lwptools.hxx index 51680bd..f240214 100644 --- a/lotuswordpro/source/filter/lwptools.hxx +++ b/lotuswordpro/source/filter/lwptools.hxx @@ -148,6 +148,12 @@ public: BadSeek() : std::runtime_error("Lotus Word Pro Bad Seek") { } }; +class BadRead: public std::runtime_error +{ +public: +BadRead() : std::runtime_error("Lotus Word Pro Bad Read") { } +}; + class BadDecompress : public std::runtime_error { public: commit 902a3df2daa196e2182b0741f0ec3849d158f42b Author: Caolán McNamara Date: Tue Oct 14 13:46:46 2014 +0100 coverity#735315 Unche