summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-07-16 10:01:24 +0100
committerDavid Tardon <dtardon@redhat.com>2015-07-17 12:11:52 +0000
commitdc32feb2548aa557a8be6474986fc636d23c4e06 (patch)
tree9c5cb5bc294cd50ebfc46c70f2aaa73d15393f0a /filter
parentcdcf212ad77c822c9eb4970645a8697dd0ad6774 (diff)
exception on div by 0
Change-Id: Id33d6a5e3df5812babd28ebfc65b95ce97219ad3 (cherry picked from commit cf4159e16c13a13d0bedccebb50bb08f1662bc1c) Reviewed-on: https://gerrit.libreoffice.org/17122 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'filter')
-rw-r--r--filter/qa/cppunit/data/pict/fail/exception-1.pctbin0 -> 11086 bytes
-rw-r--r--filter/source/graphicfilter/ipict/ipict.cxx5
2 files changed, 5 insertions, 0 deletions
diff --git a/filter/qa/cppunit/data/pict/fail/exception-1.pct b/filter/qa/cppunit/data/pict/fail/exception-1.pct
new file mode 100644
index 000000000000..f9cd85a4aece
--- /dev/null
+++ b/filter/qa/cppunit/data/pict/fail/exception-1.pct
Binary files differ
diff --git a/filter/source/graphicfilter/ipict/ipict.cxx b/filter/source/graphicfilter/ipict/ipict.cxx
index 852e69b7dd68..4f0e431a5742 100644
--- a/filter/source/graphicfilter/ipict/ipict.cxx
+++ b/filter/source/graphicfilter/ipict/ipict.cxx
@@ -1837,6 +1837,7 @@ sal_uLong PictReader::ReadData(sal_uInt16 nOpcode)
void PictReader::ReadPict( SvStream & rStreamPict, GDIMetaFile & rGDIMetaFile )
{
+ try {
sal_uInt16 nOpcode;
sal_uInt8 nOneByteOpcode;
sal_uLong nSize, nPercent, nLastPercent;
@@ -1929,6 +1930,10 @@ void PictReader::ReadPict( SvStream & rStreamPict, GDIMetaFile & rGDIMetaFile )
pPict->SetNumberFormatInt(nOrigNumberFormat);
if (pPict->GetError()) pPict->Seek(nOrigPos);
+ } catch (...)
+ {
+ rStreamPict.SetError(SVSTREAM_FILEFORMAT_ERROR);
+ }
}
namespace pict {