From 2e7514079f08ccf83493c082831eeb782a855158 Mon Sep 17 00:00:00 2001 From: Pdf Bot Date: Tue, 7 Jun 2016 19:50:31 +0100 Subject: [PATCH] PDF.js version 1.5.287 - See mozilla/pdf.js@c4db4dd4ac366236cbf2864e94cb0e561e096de8 --- bower.json | 2 +- build/pdf.combined.js | 27 ++++++++++++++++++++------- build/pdf.js | 4 ++-- build/pdf.worker.js | 27 ++++++++++++++++++++------- package.json | 2 +- 5 files changed, 44 insertions(+), 18 deletions(-) diff --git a/bower.json b/bower.json index 2bd963ceb..a3aa7a7f1 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "pdfjs-dist", - "version": "1.5.285", + "version": "1.5.287", "main": [ "build/pdf.js", "build/pdf.worker.js" diff --git a/build/pdf.combined.js b/build/pdf.combined.js index 930bc3d40..bef251053 100644 --- a/build/pdf.combined.js +++ b/build/pdf.combined.js @@ -28,8 +28,8 @@ factory((root.pdfjsDistBuildPdfCombined = {})); // Use strict in our context only - users might not want it 'use strict'; -var pdfjsVersion = '1.5.285'; -var pdfjsBuild = 'bd47440'; +var pdfjsVersion = '1.5.287'; +var pdfjsBuild = 'c4db4dd'; var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? @@ -5235,8 +5235,8 @@ var CFFParser = (function CFFParserClosure() { var start = pos; var bytes = this.bytes; var format = bytes[pos++]; - var fdSelect = []; - var i; + var fdSelect = [], rawBytes; + var i, invalidFirstGID = false; switch (format) { case 0: @@ -5244,11 +5244,18 @@ var CFFParser = (function CFFParserClosure() { var id = bytes[pos++]; fdSelect.push(id); } + rawBytes = bytes.subarray(start, pos); break; case 3: var rangesCount = (bytes[pos++] << 8) | bytes[pos++]; for (i = 0; i < rangesCount; ++i) { var first = (bytes[pos++] << 8) | bytes[pos++]; + if (i === 0 && first !== 0) { + warn('parseFDSelect: The first range must have a first GID of 0' + + ' -- trying to recover.'); + invalidFirstGID = true; + first = 0; + } var fdIndex = bytes[pos++]; var next = (bytes[pos] << 8) | bytes[pos + 1]; for (var j = first; j < next; ++j) { @@ -5257,13 +5264,19 @@ var CFFParser = (function CFFParserClosure() { } // Advance past the sentinel(next). pos += 2; + rawBytes = bytes.subarray(start, pos); + + if (invalidFirstGID) { + rawBytes[3] = rawBytes[4] = 0; // Adjust the first range, first GID. + } break; default: - error('Unknown fdselect format ' + format); + error('parseFDSelect: Unknown format "' + format + '".'); break; } - var end = pos; - return new CFFFDSelect(fdSelect, bytes.subarray(start, end)); + assert(fdSelect.length === length, 'parseFDSelect: Invalid font data.'); + + return new CFFFDSelect(fdSelect, rawBytes); } }; return CFFParser; diff --git a/build/pdf.js b/build/pdf.js index 998eff84a..33f593add 100644 --- a/build/pdf.js +++ b/build/pdf.js @@ -28,8 +28,8 @@ factory((root.pdfjsDistBuildPdf = {})); // Use strict in our context only - users might not want it 'use strict'; -var pdfjsVersion = '1.5.285'; -var pdfjsBuild = 'bd47440'; +var pdfjsVersion = '1.5.287'; +var pdfjsBuild = 'c4db4dd'; var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? diff --git a/build/pdf.worker.js b/build/pdf.worker.js index 0365668de..f7b640719 100644 --- a/build/pdf.worker.js +++ b/build/pdf.worker.js @@ -28,8 +28,8 @@ factory((root.pdfjsDistBuildPdfWorker = {})); // Use strict in our context only - users might not want it 'use strict'; -var pdfjsVersion = '1.5.285'; -var pdfjsBuild = 'bd47440'; +var pdfjsVersion = '1.5.287'; +var pdfjsBuild = 'c4db4dd'; var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? @@ -5235,8 +5235,8 @@ var CFFParser = (function CFFParserClosure() { var start = pos; var bytes = this.bytes; var format = bytes[pos++]; - var fdSelect = []; - var i; + var fdSelect = [], rawBytes; + var i, invalidFirstGID = false; switch (format) { case 0: @@ -5244,11 +5244,18 @@ var CFFParser = (function CFFParserClosure() { var id = bytes[pos++]; fdSelect.push(id); } + rawBytes = bytes.subarray(start, pos); break; case 3: var rangesCount = (bytes[pos++] << 8) | bytes[pos++]; for (i = 0; i < rangesCount; ++i) { var first = (bytes[pos++] << 8) | bytes[pos++]; + if (i === 0 && first !== 0) { + warn('parseFDSelect: The first range must have a first GID of 0' + + ' -- trying to recover.'); + invalidFirstGID = true; + first = 0; + } var fdIndex = bytes[pos++]; var next = (bytes[pos] << 8) | bytes[pos + 1]; for (var j = first; j < next; ++j) { @@ -5257,13 +5264,19 @@ var CFFParser = (function CFFParserClosure() { } // Advance past the sentinel(next). pos += 2; + rawBytes = bytes.subarray(start, pos); + + if (invalidFirstGID) { + rawBytes[3] = rawBytes[4] = 0; // Adjust the first range, first GID. + } break; default: - error('Unknown fdselect format ' + format); + error('parseFDSelect: Unknown format "' + format + '".'); break; } - var end = pos; - return new CFFFDSelect(fdSelect, bytes.subarray(start, end)); + assert(fdSelect.length === length, 'parseFDSelect: Invalid font data.'); + + return new CFFFDSelect(fdSelect, rawBytes); } }; return CFFParser; diff --git a/package.json b/package.json index 074cf8db4..65e0e1df1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pdfjs-dist", - "version": "1.5.285", + "version": "1.5.287", "main": "build/pdf.js", "description": "Generic build of Mozilla's PDF.js library.", "keywords": [