summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-10-09 12:49:58 +0100
committerCaolán McNamara <caolanm@redhat.com>2017-10-09 15:52:39 +0200
commitbd9cf89f6dc13da314d0dd6fc43512a8732ce125 (patch)
treeec43a1b8729fa8ebb00548832a343b82502ac726 /filter
parentec1a8442b379c73cdbd8b7eb2d1d40edba890cb7 (diff)
ofz#3587 ignore broken cgm images
Change-Id: I649ace9e3e5cc008ba09fcc72f9c9b79322d39ab Reviewed-on: https://gerrit.libreoffice.org/43277 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'filter')
-rw-r--r--filter/source/graphicfilter/icgm/bitmap.cxx21
1 files changed, 20 insertions, 1 deletions
diff --git a/filter/source/graphicfilter/icgm/bitmap.cxx b/filter/source/graphicfilter/icgm/bitmap.cxx
index 86e70007e3ac..7208fda0ae97 100644
--- a/filter/source/graphicfilter/icgm/bitmap.cxx
+++ b/filter/source/graphicfilter/icgm/bitmap.cxx
@@ -33,12 +33,31 @@ CGMBitmap::~CGMBitmap()
{
}
+namespace
+{
+ bool isLegalBitsPerPixel(sal_uInt32 nBitsPerPixel)
+ {
+ switch (nBitsPerPixel)
+ {
+ case 1:
+ case 2:
+ case 4:
+ case 8:
+ case 24:
+ return true;
+ break;
+ default:
+ break;
+ }
+ return false;
+ }
+}
void CGMBitmap::ImplGetBitmap( CGMBitmapDescriptor& rDesc )
{
rDesc.mbStatus = true;
- if ( ImplGetDimensions( rDesc ) && rDesc.mpBuf )
+ if (ImplGetDimensions(rDesc) && rDesc.mpBuf && isLegalBitsPerPixel(rDesc.mnDstBitsPerPixel))
{
rDesc.mpBitmap = new Bitmap( Size( rDesc.mnX, rDesc.mnY ), (sal_uInt16)rDesc.mnDstBitsPerPixel );
if ( ( rDesc.mpAcc = rDesc.mpBitmap->AcquireWriteAccess() ) != nullptr )