Merge pull request #17233 from calixteman/issue17232
Don't try to collect a nonexistent field because of an invalid ref
This commit is contained in:
		
						commit
						c6a717f900
					
				@ -1713,6 +1713,9 @@ class PDFDocument {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  #collectFieldObjects(name, fieldRef, promises, annotationGlobals) {
 | 
					  #collectFieldObjects(name, fieldRef, promises, annotationGlobals) {
 | 
				
			||||||
    const field = this.xref.fetchIfRef(fieldRef);
 | 
					    const field = this.xref.fetchIfRef(fieldRef);
 | 
				
			||||||
 | 
					    if (!(field instanceof Dict)) {
 | 
				
			||||||
 | 
					      return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    if (field.has("T")) {
 | 
					    if (field.has("T")) {
 | 
				
			||||||
      const partName = stringToPDFString(field.get("T"));
 | 
					      const partName = stringToPDFString(field.get("T"));
 | 
				
			||||||
      name = name === "" ? partName : `${name}.${partName}`;
 | 
					      name = name === "" ? partName : `${name}.${partName}`;
 | 
				
			||||||
@ -1737,8 +1740,9 @@ class PDFDocument {
 | 
				
			|||||||
        })
 | 
					        })
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (field.has("Kids")) {
 | 
					    const kids = field.get("Kids");
 | 
				
			||||||
      for (const kid of field.get("Kids")) {
 | 
					    if (Array.isArray(kids)) {
 | 
				
			||||||
 | 
					      for (const kid of kids) {
 | 
				
			||||||
        this.#collectFieldObjects(name, kid, promises, annotationGlobals);
 | 
					        this.#collectFieldObjects(name, kid, promises, annotationGlobals);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								test/pdfs/issue17232.pdf.link
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/pdfs/issue17232.pdf.link
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					https://github.com/mozilla/pdf.js/files/13280636/aanvraag-beeindiging-aansluiting.pdf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -8197,5 +8197,14 @@
 | 
				
			|||||||
      "rounds": 1,
 | 
					      "rounds": 1,
 | 
				
			||||||
      "type": "eq",
 | 
					      "type": "eq",
 | 
				
			||||||
      "annotations": true
 | 
					      "annotations": true
 | 
				
			||||||
   }   
 | 
					   },
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					      "id": "issue17232-annotations",
 | 
				
			||||||
 | 
					      "file": "pdfs/issue17232.pdf",
 | 
				
			||||||
 | 
					      "md5": "90ade9fc5721ddf8d17e8cfc43e186a4",
 | 
				
			||||||
 | 
					      "rounds": 1,
 | 
				
			||||||
 | 
					      "link": true,
 | 
				
			||||||
 | 
					      "type": "eq",
 | 
				
			||||||
 | 
					      "annotations": true
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user