Clamp the hival parameter of Indexed color space to the range [0; 255]
Since this value is used to allocate an array, it makes sense to avoid to use too much memory. From the specs, this value must be in the range [0; 255] (see section 8.6.6.3). This patch removes the unused property 'highVal'.
This commit is contained in:
parent
c3af34271e
commit
4dea773c5b
@ -462,7 +462,7 @@ class ColorSpace {
|
|||||||
case "I":
|
case "I":
|
||||||
case "Indexed":
|
case "Indexed":
|
||||||
baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);
|
baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);
|
||||||
const hiVal = xref.fetchIfRef(cs[2]) + 1;
|
const hiVal = Math.max(0, Math.min(xref.fetchIfRef(cs[2]), 255));
|
||||||
const lookup = xref.fetchIfRef(cs[3]);
|
const lookup = xref.fetchIfRef(cs[3]);
|
||||||
return new IndexedCS(baseCS, hiVal, lookup);
|
return new IndexedCS(baseCS, hiVal, lookup);
|
||||||
case "Separation":
|
case "Separation":
|
||||||
@ -630,9 +630,8 @@ class IndexedCS extends ColorSpace {
|
|||||||
constructor(base, highVal, lookup) {
|
constructor(base, highVal, lookup) {
|
||||||
super("Indexed", 1);
|
super("Indexed", 1);
|
||||||
this.base = base;
|
this.base = base;
|
||||||
this.highVal = highVal;
|
|
||||||
|
|
||||||
const length = base.numComps * highVal;
|
const length = base.numComps * (highVal + 1);
|
||||||
this.lookup = new Uint8Array(length);
|
this.lookup = new Uint8Array(length);
|
||||||
|
|
||||||
if (lookup instanceof BaseStream) {
|
if (lookup instanceof BaseStream) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user