[Libreoffice-commits] core.git: 10 commits - svtools/source vcl/opengl vcl/source vcl/unx

Caolán McNamara caolanm at redhat.com
Thu Nov 13 13:15:36 PST 2014


 svtools/source/graphic/grfmgr.cxx        |    2 +-
 vcl/opengl/salbmp.cxx                    |    8 ++++----
 vcl/opengl/x11/gdiimpl.cxx               |    5 +++--
 vcl/source/fontsubset/sft.cxx            |    2 +-
 vcl/unx/generic/gdi/gdiimpl.cxx          |    9 +++------
 vcl/unx/generic/gdi/salgdi.cxx           |    2 +-
 vcl/unx/generic/gdi/salgdi2.cxx          |    8 ++++----
 vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx |   13 ++++++-------
 8 files changed, 23 insertions(+), 26 deletions(-)

New commits:
commit 124b666538dce60ff30b274f7809776cbb358e93
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 13 21:13:09 2014 +0000

    coverity#1251593 Unintended sign extension
    
    Change-Id: I4374672040b3c6314c4356abe95ee1fb15f568cf

diff --git a/vcl/opengl/salbmp.cxx b/vcl/opengl/salbmp.cxx
index 871b669..5a98d34 100644
--- a/vcl/opengl/salbmp.cxx
+++ b/vcl/opengl/salbmp.cxx
@@ -204,7 +204,7 @@ bool OpenGLSalBitmap::AllocateUserData()
     {
         try
         {
-            maUserBuffer.reset( new sal_uInt8[mnBytesPerRow * mnHeight] );
+            maUserBuffer.reset( new sal_uInt8[static_cast<sal_uInt32>(mnBytesPerRow) * mnHeight] );
             alloc = true;
         }
         catch (const std::bad_alloc &) {}
commit 8eb8175db8ba33e7bde15011f31de20a84a6e56f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 13 21:11:15 2014 +0000

    coverity#1251592 Dereference before null check
    
    Change-Id: Ia69bb21080ab7a42a0b9f9871f72ab696b6098ed

diff --git a/vcl/unx/generic/gdi/gdiimpl.cxx b/vcl/unx/generic/gdi/gdiimpl.cxx
index 4adea62..0088028 100644
--- a/vcl/unx/generic/gdi/gdiimpl.cxx
+++ b/vcl/unx/generic/gdi/gdiimpl.cxx
@@ -167,13 +167,10 @@ X11Pixmap* X11SalGraphicsImpl::GetPixmapFromScreen( const Rectangle& rRect )
                                         rRect.GetWidth(), rRect.GetHeight(), 24 );
     GC aTmpGC = XCreateGC( pDpy, pPixmap->GetPixmap(), 0, NULL );
 
-    if( !pPixmap || !aTmpGC )
+    if (!aTmpGC)
     {
-        if ( pPixmap )
-            delete pPixmap;
-        if ( aTmpGC )
-            XFreeGC( pDpy, aTmpGC );
-        SAL_WARN( "vcl", "Could not get valid pixmap from screen" );
+        delete pPixmap;
+        SAL_WARN( "vcl", "Could not get valid GC from screen" );
         return NULL;
     }
 
commit 64f3c4fe478f0e2478fead92506f592d5401bf33
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 13 21:09:23 2014 +0000

    coverity#1251591 Resource leak
    
    Change-Id: Ieab948d11da7f56b2273637ff3caaefec86030d1

diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
index 2473297..9c11cd9 100644
--- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
@@ -870,7 +870,7 @@ bool GtkSalGraphics::drawNativeControl(    ControlType nType,
 
     clipList aClip;
     GdkDrawable* gdkDrawable = GDK_DRAWABLE( GetGdkWindow() );
-    GdkX11Pixmap* pixmap = NULL;
+    std::unique_ptr<GdkX11Pixmap> xPixmap;
     Rectangle aPixmapRect;
     if( ( bNeedPixmapPaint )
         && nType != CTRL_SCROLLBAR
@@ -885,10 +885,10 @@ bool GtkSalGraphics::drawNativeControl(    ControlType nType,
         // outside the rectangle, see e.g. checkbox
         aPixmapRect = Rectangle( Point( aCtrlRect.Left()-1, aCtrlRect.Top()-1 ),
                                  Size( aCtrlRect.GetWidth()+2, aCtrlRect.GetHeight()+2) );
-        pixmap = NWGetPixmapFromScreen( aPixmapRect );
-        if( ! pixmap )
+        xPixmap.reset(NWGetPixmapFromScreen(aPixmapRect));
+        if (!xPixmap)
             return false;
-        gdkDrawable = pixmap->GetGdkDrawable();
+        gdkDrawable = xPixmap->GetGdkDrawable();
         aCtrlRect = Rectangle( Point(1,1), aCtrlRect.GetSize() );
         aClip.push_back( aCtrlRect );
     }
@@ -1022,10 +1022,9 @@ bool GtkSalGraphics::drawNativeControl(    ControlType nType,
             returnVal = NWPaintGTKArrow( gdkDrawable, nType, nPart, aCtrlRect, aClip, nState, aValue, rCaption );
     }
 
-    if( pixmap )
+    if( xPixmap )
     {
-        returnVal = NWRenderPixmapToScreen( pixmap, aPixmapRect ) && returnVal;
-        delete pixmap;
+        returnVal = NWRenderPixmapToScreen(xPixmap.get(), aPixmapRect) && returnVal;
     }
 
     return( returnVal );
commit 900b202bb6a9e79c51327a8a157d04241ce4fdf3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 13 21:06:51 2014 +0000

    coverity#1251588 Unchecked dynamic_cast
    
    Change-Id: Ic6f287b5ee4f4ac3a9674d67b8c15a589405c951

diff --git a/vcl/unx/generic/gdi/salgdi2.cxx b/vcl/unx/generic/gdi/salgdi2.cxx
index 62cf796..768e596 100644
--- a/vcl/unx/generic/gdi/salgdi2.cxx
+++ b/vcl/unx/generic/gdi/salgdi2.cxx
@@ -85,8 +85,8 @@ void X11SalGraphics::CopyScreenArea( Display* pDisplay,
 
 X11Pixmap* X11SalGraphics::GetPixmapFromScreen( const Rectangle& rRect )
 {
-    X11GraphicsImpl* pImpl = dynamic_cast<X11GraphicsImpl*>(mpImpl.get());
-    return pImpl->GetPixmapFromScreen( rRect );
+    X11GraphicsImpl& rImpl = dynamic_cast<X11GraphicsImpl&>(*mpImpl.get());
+    return rImpl.GetPixmapFromScreen( rRect );
 }
 
 bool X11SalGraphics::RenderPixmapToScreen( X11Pixmap* pPixmap, int nX, int nY )
commit 38fb5f7c6795ba60fe822604e3843652aab472ed
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 13 21:05:30 2014 +0000

    coverity#1251586 Unchecked dynamic_cast
    
    Change-Id: I5b20fe66da306a742ff2d723cdadfc22b71dafe1

diff --git a/vcl/opengl/x11/gdiimpl.cxx b/vcl/opengl/x11/gdiimpl.cxx
index 184abab..6a16b9f 100644
--- a/vcl/opengl/x11/gdiimpl.cxx
+++ b/vcl/opengl/x11/gdiimpl.cxx
@@ -60,9 +60,10 @@ GLfloat X11OpenGLSalGraphicsImpl::GetHeight() const
 
 void X11OpenGLSalGraphicsImpl::Init()
 {
-    if( mrParent.m_pFrame && dynamic_cast<X11WindowProvider*>(mrParent.m_pFrame) )
+    X11WindowProvider *pProvider = dynamic_cast<X11WindowProvider*>(mrParent.m_pFrame);
+    if (pProvider)
     {
-        Window aWin = dynamic_cast<X11WindowProvider*>(mrParent.m_pFrame)->GetX11Window();
+        Window aWin = pProvider->GetX11Window();
         maContext.init( mrParent.GetXDisplay(), aWin, mrParent.m_nXScreen.getXScreen());
         SetOffscreen( false );
     }
commit 019f13644a5d0ce1086b2649d2907520ece81b21
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 13 21:03:35 2014 +0000

    coverity#1251585 Unchecked dynamic_cast
    
    Change-Id: Iba4d5223a7fc92f4ef6ec6be660f496cc94f5565

diff --git a/vcl/unx/generic/gdi/salgdi2.cxx b/vcl/unx/generic/gdi/salgdi2.cxx
index fe7199c..62cf796 100644
--- a/vcl/unx/generic/gdi/salgdi2.cxx
+++ b/vcl/unx/generic/gdi/salgdi2.cxx
@@ -92,8 +92,8 @@ X11Pixmap* X11SalGraphics::GetPixmapFromScreen( const Rectangle& rRect )
 bool X11SalGraphics::RenderPixmapToScreen( X11Pixmap* pPixmap, int nX, int nY )
 {
     SAL_INFO( "vcl", "RenderPixmapToScreen" );
-    X11GraphicsImpl* pImpl = dynamic_cast<X11GraphicsImpl*>(mpImpl.get());
-    return pImpl->RenderPixmapToScreen( pPixmap, nX, nY );
+    X11GraphicsImpl& rImpl = dynamic_cast<X11GraphicsImpl&>(*mpImpl.get());
+    return rImpl.RenderPixmapToScreen( pPixmap, nX, nY );
 }
 
 extern "C"
commit 6d69185611a88308c3f0b2aa94f6a8549dd2b8fd
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 13 21:03:03 2014 +0000

    coverity#1251584 Unchecked dynamic_cast
    
    Change-Id: I2022c25f821473240a5ff3998249e933ea7fb74d

diff --git a/vcl/unx/generic/gdi/salgdi.cxx b/vcl/unx/generic/gdi/salgdi.cxx
index 2723db4..50ffdc6 100644
--- a/vcl/unx/generic/gdi/salgdi.cxx
+++ b/vcl/unx/generic/gdi/salgdi.cxx
@@ -145,7 +145,7 @@ void X11SalGraphics::SetDrawable( Drawable aDrawable, SalX11Screen nXScreen )
 
     if( hDrawable_ )
     {
-        dynamic_cast<X11GraphicsImpl*>(mpImpl.get())->Init();
+        dynamic_cast<X11GraphicsImpl&>(*mpImpl.get()).Init();
         // TODO: moggi: FIXME nTextPixel_     = GetPixel( nTextColor_ );
     }
 }
commit 06458fdeb862dc483dcac8107a5cc8c2da01a3f0
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 13 21:02:10 2014 +0000

    coverity#1251583 Division or modulo by zero
    
    Change-Id: Ib3cb04305a39d652b188d8cff1d63f85074427a0

diff --git a/vcl/opengl/salbmp.cxx b/vcl/opengl/salbmp.cxx
index 686a785..871b669 100644
--- a/vcl/opengl/salbmp.cxx
+++ b/vcl/opengl/salbmp.cxx
@@ -199,15 +199,15 @@ bool OpenGLSalBitmap::AllocateUserData()
     }
 
     bool alloc = false;
-    if (mnBytesPerRow != 0
-        && mnBytesPerRow <= std::numeric_limits<sal_uInt32>::max() / mnHeight)
+    if (mnBytesPerRow != 0 && mnHeight &&
+        mnBytesPerRow <= std::numeric_limits<sal_uInt32>::max() / mnHeight)
     {
         try
         {
             maUserBuffer.reset( new sal_uInt8[mnBytesPerRow * mnHeight] );
             alloc = true;
         }
-        catch (std::bad_alloc &) {}
+        catch (const std::bad_alloc &) {}
     }
     if (!alloc)
     {
commit 0e066f4e2bf008e26e97dd861f66de0c3188ea06
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 13 20:59:43 2014 +0000

    coverity#1251581 Copy-paste error
    
    Change-Id: If8a7417f449d6cce2516c93fc759886738ac8d9c

diff --git a/vcl/source/fontsubset/sft.cxx b/vcl/source/fontsubset/sft.cxx
index 6f4957e..b512b12 100644
--- a/vcl/source/fontsubset/sft.cxx
+++ b/vcl/source/fontsubset/sft.cxx
@@ -2148,7 +2148,7 @@ static void DumpSfnts(FILE *outf, sal_uInt8 *sfntP, sal_uInt32 sfntLen)
     if (sfntLen < 12)
     {
         SAL_WARN( "vcl.fonts", "DumpSfnts sfntLen is too short: "
-            << sfntLen << " legal min is: " << sfntLen);
+            << sfntLen << " legal min is: " << 12);
         return;
     }
 
commit ccf564c6b0aecb1d6254c4a759cdbb19b87ae877
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 13 20:58:55 2014 +0000

    coverity#1251580 Unchecked return value
    
    Change-Id: I5dcbd2289fc853bad2c0969fb3b202a1e7398a5a

diff --git a/svtools/source/graphic/grfmgr.cxx b/svtools/source/graphic/grfmgr.cxx
index 5abdd9e..f8dbc4e 100644
--- a/svtools/source/graphic/grfmgr.cxx
+++ b/svtools/source/graphic/grfmgr.cxx
@@ -682,7 +682,7 @@ void GraphicObject::StopAnimation( OutputDevice* pOut, long nExtraData )
 const Graphic& GraphicObject::GetGraphic() const
 {
     GraphicObject *pThis = const_cast<GraphicObject*>(this);
-    pThis->SwapIn();
+    (void)pThis->SwapIn();
 
     //fdo#50697 If we've been asked to provide the graphic, then reset
     //the cache timeout to start from now and not remain at the


More information about the Libreoffice-commits mailing list