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 11:06:51 +0000
commite5aae767d634ba7efc8a5ecf2889678176babeb8 (patch)
treec063f01cc9d23745ac00c018774370c0a761af06 /filter
parent927c320c2e8b5c8670e94f989b9fc09a5aa73437 (diff)
exception on div by 0
Change-Id: Id33d6a5e3df5812babd28ebfc65b95ce97219ad3 (cherry picked from commit cf4159e16c13a13d0bedccebb50bb08f1662bc1c) Reviewed-on: https://gerrit.libreoffice.org/17121 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-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 6621eddd3c60..4f0c39b93e8a 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 {