Ensure that PDFImage.buildImage won't accidentally swallow errors, e.g. from ColorSpace parsing (issue 6707, PR 11601 follow-up)
				
					
				
			Because of a really stupid `Promise`-related mistake on my part, when re-factoring `PDFImage.buildImage` during the `NativeImageDecoder` removal, we're no longer re-throwing errors occuring during image parsing/decoding as intended. The result is that some (fairly) corrupt documents will never finish loading, and unfortunately there were apparently no sufficiently corrupt images in the test-suite to catch this.
This commit is contained in:
		
							parent
							
								
									c809f00b3b
								
							
						
					
					
						commit
						4b51bcc733
					
				@ -579,7 +579,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
			
		||||
          return this._sendImgData(objId, imgData, cacheGlobally);
 | 
			
		||||
        })
 | 
			
		||||
        .catch(reason => {
 | 
			
		||||
          warn("Unable to decode image: " + reason);
 | 
			
		||||
          warn(`Unable to decode image "${objId}": "${reason}".`);
 | 
			
		||||
 | 
			
		||||
          return this._sendImgData(objId, /* imgData = */ null, cacheGlobally);
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
@ -248,7 +248,7 @@ var PDFImage = (function PDFImageClosure() {
 | 
			
		||||
   * Handles processing of image data and returns the Promise that is resolved
 | 
			
		||||
   * with a PDFImage when the image is ready to be used.
 | 
			
		||||
   */
 | 
			
		||||
  PDFImage.buildImage = function ({
 | 
			
		||||
  PDFImage.buildImage = async function ({
 | 
			
		||||
    xref,
 | 
			
		||||
    res,
 | 
			
		||||
    image,
 | 
			
		||||
@ -271,8 +271,8 @@ var PDFImage = (function PDFImageClosure() {
 | 
			
		||||
        warn("Unsupported mask format.");
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return Promise.resolve(
 | 
			
		||||
      new PDFImage({
 | 
			
		||||
 | 
			
		||||
    return new PDFImage({
 | 
			
		||||
      xref,
 | 
			
		||||
      res,
 | 
			
		||||
      image: imageData,
 | 
			
		||||
@ -280,8 +280,7 @@ var PDFImage = (function PDFImageClosure() {
 | 
			
		||||
      smask: smaskData,
 | 
			
		||||
      mask: maskData,
 | 
			
		||||
      pdfFunctionFactory,
 | 
			
		||||
      })
 | 
			
		||||
    );
 | 
			
		||||
    });
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  PDFImage.createMask = function ({
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								test/pdfs/issue6707.pdf.link
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								test/pdfs/issue6707.pdf.link
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
https://web.archive.org/web/20151201202008/https://secure.dynaccount.com/data/voucher/30000/400/30452_93e074c4c8b2301a24b33176331c49e5755e02fa.pdf
 | 
			
		||||
@ -669,6 +669,14 @@
 | 
			
		||||
       "lastPage": 1,
 | 
			
		||||
       "type": "eq"
 | 
			
		||||
    },
 | 
			
		||||
    {  "id": "issue6707",
 | 
			
		||||
       "file": "pdfs/issue6707.pdf",
 | 
			
		||||
       "md5": "068ceaec23d265b1d38dfa6ab279f017",
 | 
			
		||||
       "rounds": 1,
 | 
			
		||||
       "link": true,
 | 
			
		||||
       "lastPage": 1,
 | 
			
		||||
       "type": "eq"
 | 
			
		||||
    },
 | 
			
		||||
    {  "id": "issue6721_reduced",
 | 
			
		||||
       "file": "pdfs/issue6721_reduced.pdf",
 | 
			
		||||
       "md5": "719aa66d8081a15e3ba6032ed4279237",
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user