summaryrefslogtreecommitdiff
path: root/poppler/Function.cc
diff options
context:
space:
mode:
authorAlbert Astals Cid <aacid@kde.org>2018-08-23 18:11:45 +0200
committerAlbert Astals Cid <aacid@kde.org>2018-08-23 18:12:37 +0200
commit670171ba7507bc8ea39c3a33316c86b68fed5e0d (patch)
tree22202c4045e43c07315a8e014e83cf0071731258 /poppler/Function.cc
parent5fbce88ec9f6d360c5b6436837dfa760c8fa8d95 (diff)
Don't abort if the SampleFunction has too many samples
Fixes issue #634
Diffstat (limited to 'poppler/Function.cc')
-rw-r--r--poppler/Function.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/poppler/Function.cc b/poppler/Function.cc
index cc32414b..6918fbcd 100644
--- a/poppler/Function.cc
+++ b/poppler/Function.cc
@@ -362,7 +362,11 @@ SampledFunction::SampledFunction(Object *funcObj, Dict *dict) {
nSamples = n;
for (i = 0; i < m; ++i)
nSamples *= sampleSize[i];
- samples = (double *)gmallocn(nSamples, sizeof(double));
+ samples = (double *)gmallocn_checkoverflow(nSamples, sizeof(double));
+ if (!samples) {
+ error(errSyntaxError, -1, "Function has invalid number of samples");
+ return;
+ }
buf = 0;
bits = 0;
bitMask = (1 << sampleBits) - 1;