filter/source/graphicfilter/icgm/bitmap.cxx |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

New commits:
commit 3cd738d52ec2adf78f97b1e88b47dec4e5e16f74
Author:     Caolán McNamara <[email protected]>
AuthorDate: Sat Jan 11 20:37:17 2020 +0000
Commit:     Caolán McNamara <[email protected]>
CommitDate: Sun Jan 12 15:40:17 2020 +0100

    ofz#20031 Abrt
    
    Change-Id: I54451cdda29b9683fc8adf8374cb611bbebf0097
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86627
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/filter/source/graphicfilter/icgm/bitmap.cxx 
b/filter/source/graphicfilter/icgm/bitmap.cxx
index e6e4d60da426..e99349c1684d 100644
--- a/filter/source/graphicfilter/icgm/bitmap.cxx
+++ b/filter/source/graphicfilter/icgm/bitmap.cxx
@@ -70,9 +70,17 @@ void CGMBitmap::ImplGetBitmap( CGMBitmapDescriptor& rDesc )
 {
     rDesc.mbStatus = true;
 
-    if (!(ImplGetDimensions(rDesc) && rDesc.mpBuf && 
isLegalBitsPerPixel(rDesc.mnDstBitsPerPixel)))
+    if (!ImplGetDimensions(rDesc) || !rDesc.mpBuf)
         return;
 
+    if (!isLegalBitsPerPixel(rDesc.mnDstBitsPerPixel))
+    {
+        rDesc.mbStatus = false;
+        return;
+    }
+
+    try {
+
     vcl::bitmap::RawBitmap aBitmap( Size( rDesc.mnX, rDesc.mnY ), 24 );
 
     // the picture may either be read from left to right or right to left, 
from top to bottom ...
@@ -247,6 +255,10 @@ void CGMBitmap::ImplGetBitmap( CGMBitmapDescriptor& rDesc )
 
     if ( rDesc.mbStatus )
         rDesc.mxBitmap = vcl::bitmap::CreateFromData(std::move(aBitmap));
+
+    } catch (const std::bad_alloc&) {
+        rDesc.mbStatus = false;
+    }
 }
 
 std::vector<Color> CGMBitmap::ImplGeneratePalette( CGMBitmapDescriptor const & 
rDesc )
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to