diff options
author | Albert Astals Cid <aacid@kde.org> | 2018-08-23 18:11:45 +0200 |
---|---|---|
committer | Albert Astals Cid <aacid@kde.org> | 2018-08-23 18:12:37 +0200 |
commit | 670171ba7507bc8ea39c3a33316c86b68fed5e0d (patch) | |
tree | 22202c4045e43c07315a8e014e83cf0071731258 /poppler/Function.cc | |
parent | 5fbce88ec9f6d360c5b6436837dfa760c8fa8d95 (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.cc | 6 |
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; |