summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-07-16 10:01:24 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-07-16 10:25:20 +0100
commitcf4159e16c13a13d0bedccebb50bb08f1662bc1c (patch)
tree3b29cc30f38e98c46f87a52d1912e040df631f80
parent091f6c382394390206f784a5ec79842709e0f3bc (diff)
exception on div by 0
Change-Id: Id33d6a5e3df5812babd28ebfc65b95ce97219ad3
-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 e6b7fd028755..0c1960bd0a00 100644
--- a/filter/source/graphicfilter/ipict/ipict.cxx
+++ b/filter/source/graphicfilter/ipict/ipict.cxx
@@ -1859,6 +1859,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;
@@ -1950,6 +1951,10 @@ void PictReader::ReadPict( SvStream & rStreamPict, GDIMetaFile & rGDIMetaFile )
pPict->SetEndian(nOrigNumberFormat);
if (pPict->GetError()) pPict->Seek(nOrigPos);
+ } catch (...)
+ {
+ rStreamPict.SetError(SVSTREAM_FILEFORMAT_ERROR);
+ }
}
namespace pict {