[Libreoffice-commits] core.git: 3 commits - cui/source hwpfilter/source xmlhelp/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Sat Sep 8 15:50:35 UTC 2018


 cui/source/dialogs/cuigaldlg.cxx                      |    6 ++---
 hwpfilter/source/drawing.h                            |    5 ++--
 hwpfilter/source/hwpread.cxx                          |    2 -
 xmlhelp/source/cxxhelp/provider/resultsetforquery.cxx |   19 ++++++------------
 xmlhelp/source/cxxhelp/provider/urlparameter.cxx      |    4 +--
 5 files changed, 16 insertions(+), 20 deletions(-)

New commits:
commit ff2037b76c83fca0371a78005283d641103565d0
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Fri Sep 7 14:05:28 2018 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat Sep 8 17:50:19 2018 +0200

    loplugin:useuniqueptr in TakeThread
    
    Change-Id: I5d3d197d57235f2bd09cbf80a7a35314edda945d
    Reviewed-on: https://gerrit.libreoffice.org/60192
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/cui/source/dialogs/cuigaldlg.cxx b/cui/source/dialogs/cuigaldlg.cxx
index fe99c5373ede..046aa4a5f26a 100644
--- a/cui/source/dialogs/cuigaldlg.cxx
+++ b/cui/source/dialogs/cuigaldlg.cxx
@@ -277,11 +277,11 @@ void TakeThread::execute()
 {
     sal_Int32           nEntries;
     GalleryTheme*       pThm = mpBrowser->GetXChgData()->pTheme;
-    GalleryProgress*    pStatusProgress;
+    std::unique_ptr<GalleryProgress> pStatusProgress;
 
     {
         SolarMutexGuard aGuard;
-        pStatusProgress = new GalleryProgress;
+        pStatusProgress.reset(new GalleryProgress);
         nEntries = mpBrowser->bTakeAll ? mpBrowser->m_pLbxFound->GetEntryCount() : mpBrowser->m_pLbxFound->GetSelectedEntryCount();
         pThm->LockBroadcaster();
     }
@@ -307,7 +307,7 @@ void TakeThread::execute()
         SolarMutexGuard aGuard;
 
         pThm->UnlockBroadcaster();
-        delete pStatusProgress;
+        pStatusProgress.reset();
     }
 
     Application::PostUserEvent( LINK( mpProgress, TakeProgress, CleanUpHdl ), nullptr, true );
commit 4907cf58bae433b833aa7fedc6a8aafd45e75a75
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sat Sep 8 14:45:38 2018 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Sat Sep 8 17:50:17 2018 +0200

    ofz#10259 ofz#10263 ofz#10264 ofz#10265 use-after-free
    
    Change-Id: I3e845c21f7a4e853ce9548f2992cab324dec05a8
    Reviewed-on: https://gerrit.libreoffice.org/60200
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/hwpfilter/source/drawing.h b/hwpfilter/source/drawing.h
index 5c2746da0099..3118ec0c8720 100644
--- a/hwpfilter/source/drawing.h
+++ b/hwpfilter/source/drawing.h
@@ -85,7 +85,7 @@ HWPDOFuncType HWPDOFuncTbl[] =
     HWPDOFreeFormFunc,
 };
 
-static HMemIODev *hmem = nullptr;
+static HIODev *hmem = nullptr;
 
 static int count = 0;
 
@@ -631,7 +631,8 @@ static HWPPara *LoadParaList()
     std::vector< HWPPara* > plist;
 
     hwpf->ReadParaList(plist);
-    hwpf->SetIODevice(std::move(hio));
+    std::unique_ptr<HIODev> orighmem = hwpf->SetIODevice(std::move(hio));
+    hmem = orighmem.release();
 
     return plist.size()? plist.front() : nullptr;
 }
diff --git a/hwpfilter/source/hwpread.cxx b/hwpfilter/source/hwpread.cxx
index 1ed8001513af..9d44a00bc87b 100644
--- a/hwpfilter/source/hwpread.cxx
+++ b/hwpfilter/source/hwpread.cxx
@@ -460,7 +460,7 @@ bool Picture::Read(HWPFile & hwpf)
 
         if (pictype == PICTYPE_DRAW)
         {
-            HMemIODev* pOldMem = hmem;
+            HIODev* pOldMem = hmem;
             HMemIODev* pNewMem = new HMemIODev(reinterpret_cast<char *>(follow.data()), follow_block_size);
             hmem = pNewMem;
             LoadDrawingObjectBlock(this);
commit cbf8f81156840bffff524d74d02d70a5530a0a37
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Fri Sep 7 09:59:27 2018 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat Sep 8 17:50:13 2018 +0200

    loplugin:useuniqueptr in xmlhelp
    
    Change-Id: I8a407e0492adf61e1d815cadd5da0a1623c2b23b
    Reviewed-on: https://gerrit.libreoffice.org/60191
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/xmlhelp/source/cxxhelp/provider/resultsetforquery.cxx b/xmlhelp/source/cxxhelp/provider/resultsetforquery.cxx
index 647bff41e982..92e20e6049d0 100644
--- a/xmlhelp/source/cxxhelp/provider/resultsetforquery.cxx
+++ b/xmlhelp/source/cxxhelp/provider/resultsetforquery.cxx
@@ -119,7 +119,7 @@ ResultSetForQuery::ResultSetForQuery( const uno::Reference< uno::XComponentConte
     OUString idxDir;
     bool bExtension = false;
     int iDir = 0;
-    vector< vector<HitItem>* > aIndexFolderResultVectorVector;
+    vector< vector<HitItem> > aIndexFolderResultVectorVector;
 
     bool bTemporary;
     while( !(idxDir = aIndexFolderIt.nextIndexFolder( bExtension, bTemporary )).isEmpty() )
@@ -236,8 +236,7 @@ ResultSetForQuery::ResultSetForQuery( const uno::Reference< uno::XComponentConte
                 sort( aIndexFolderResultVector.begin(), aIndexFolderResultVector.end() );
             }
 
-            vector<HitItem>* pIndexFolderHitItemVector = new vector<HitItem>( aIndexFolderResultVector );
-            aIndexFolderResultVectorVector.push_back( pIndexFolderHitItemVector );
+            aIndexFolderResultVectorVector.push_back( std::move(aIndexFolderResultVector) );
             aIndexFolderResultVector.clear();
         }
         catch (const Exception &e)
@@ -254,7 +253,7 @@ ResultSetForQuery::ResultSetForQuery( const uno::Reference< uno::XComponentConte
 
 
     int nVectorCount = aIndexFolderResultVectorVector.size();
-    vector<HitItem>::size_type* pCurrentVectorIndex = new vector<HitItem>::size_type[nVectorCount];
+    std::unique_ptr<std::vector<HitItem>::size_type[]> pCurrentVectorIndex(new vector<HitItem>::size_type[nVectorCount]);
     for( int j = 0 ; j < nVectorCount ; ++j )
         pCurrentVectorIndex[j] = 0;
 
@@ -266,7 +265,7 @@ ResultSetForQuery::ResultSetForQuery( const uno::Reference< uno::XComponentConte
         float fBestScore = 0.0;
         for( int k = 0 ; k < nVectorCount ; ++k )
         {
-            vector<HitItem>& rIndexFolderVector = *aIndexFolderResultVectorVector[k];
+            vector<HitItem>& rIndexFolderVector = aIndexFolderResultVectorVector[k];
             if( pCurrentVectorIndex[k] < rIndexFolderVector.size() )
             {
                 const HitItem& rItem = rIndexFolderVector[ pCurrentVectorIndex[k] ];
@@ -282,7 +281,7 @@ ResultSetForQuery::ResultSetForQuery( const uno::Reference< uno::XComponentConte
         if( iVectorWithBestScore == -1 )    // No item left at all
             break;
 
-        vector<HitItem>& rIndexFolderVector = *aIndexFolderResultVectorVector[iVectorWithBestScore];
+        vector<HitItem>& rIndexFolderVector = aIndexFolderResultVectorVector[iVectorWithBestScore];
         const HitItem& rItem = rIndexFolderVector[ pCurrentVectorIndex[iVectorWithBestScore] ];
 
         pCurrentVectorIndex[iVectorWithBestScore]++;
@@ -291,12 +290,8 @@ ResultSetForQuery::ResultSetForQuery( const uno::Reference< uno::XComponentConte
         ++nHitCount;
     }
 
-    delete[] pCurrentVectorIndex;
-    for( int n = 0 ; n < nVectorCount ; ++n )
-    {
-        vector<HitItem>* pIndexFolderVector = aIndexFolderResultVectorVector[n];
-        delete pIndexFolderVector;
-    }
+    pCurrentVectorIndex.reset();
+    aIndexFolderResultVectorVector.clear();
 
     sal_Int32 replIdx = OUString( "#HLP#" ).getLength();
     OUString replWith = "vnd.sun.star.help://";
diff --git a/xmlhelp/source/cxxhelp/provider/urlparameter.cxx b/xmlhelp/source/cxxhelp/provider/urlparameter.cxx
index 8707e3a478b2..85e4cb4051ad 100644
--- a/xmlhelp/source/cxxhelp/provider/urlparameter.cxx
+++ b/xmlhelp/source/cxxhelp/provider/urlparameter.cxx
@@ -338,7 +338,7 @@ void URLParameter::open( const Reference< XOutputStream >& xDataSink )
         return;
 
     // a standard document or else an active help text, plug in the new input stream
-    InputStreamTransformer* p = new InputStreamTransformer( this,m_pDatabases,isRoot() );
+    std::unique_ptr<InputStreamTransformer> p(new InputStreamTransformer( this,m_pDatabases,isRoot() ));
     try
     {
         xDataSink->writeBytes( Sequence< sal_Int8 >( reinterpret_cast<const sal_Int8*>(p->getData().getStr()), p->getData().getLength() ) );
@@ -346,7 +346,7 @@ void URLParameter::open( const Reference< XOutputStream >& xDataSink )
     catch( const Exception& )
     {
     }
-    delete p;
+    p.reset();
     xDataSink->closeOutput();
 }
 


More information about the Libreoffice-commits mailing list