1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-25 09:38:06 +02:00

Use Dict_getArray in more places in src/core/ to avoid issues when Arrays contain indirect objects

As evident from e.g. PRs 6485 and 7118, some bad PDF generators unfortunately create Arrays where *some* elements are indirect objects (i.e. `Ref`s). This seems to mostly affect Arrays that contain numbers, such as e.g. `Matrix/FontMatrix/BBox/FontBBox/Rect/Color/...`, and has manifested itself in PDF files that fail to render correctly (some elements are missing).

The problem in both the cases above, besides broken rendering, was that there were *no* errors/warnings that indicated what the problem was, making it difficult to pinpoint the issue.
Hence this patch, where I've audited all usages of `Dict_get` in `src/core/` files, and replaced it with `Dict_getArray` where appropriate to try and prevent unnecessary future bugs.
This commit is contained in:
Jonas Jenwald 2016-05-05 19:16:35 +02:00
parent 8adddf031c
commit 6111c17c8a
8 changed files with 47 additions and 47 deletions

View file

@ -172,7 +172,7 @@ var Catalog = (function CatalogClosure() {
var title = outlineDict.get('Title');
var flags = outlineDict.get('F') || 0;
var color = outlineDict.get('C'), rgbColor = blackColor;
var color = outlineDict.getArray('C'), rgbColor = blackColor;
// We only need to parse the color when it's valid, and non-default.
if (isArray(color) && color.length === 3 &&
(color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {