all devices regression report - 2017-10-30-05:15:20 - 76b922b5d3071288edbf8f0cccdbbd2b0ae34742
| Newsgroups | gmane.comp.printing.ghostscript.regression |
|---|---|
| Message-ID | <20171030121521.71E512040414@i7> |
Differences in all devices errors using gs/examples files Previous Revision: ecb0181ae2c6c64f876f741ef1da2980324442ca Current Revision: 76b922b5d3071288edbf8f0cccdbbd2b0ae34742 commit 76b922b5d3071288edbf8f0cccdbbd2b0ae34742 Author: Ken Sharp <[email protected]> AuthorDate: Mon Oct 30 11:08:09 2017 +0000 CommitDate: Mon Oct 30 11:08:09 2017 +0000 PDF interpreter - try and catch yet more cases of circular references No bug report for this one, the customer requested destruction of the PDF file after analysis, and there was no way to reduce the file to the point where nothing sensitive remained. The problem is that a Form XObject referenced a number of Image XObjects one of which contained a DecodeParms array, where the second element referenced the original Form XObject. This circular reference leads to an error. Here we maintain a dictionary (initially empty) on the stack which we populate with object numbers as we recursively dereference objects. When we start a new composite object we copy the array into a new array which we discard on completion. This is to prevent false detection of circular references if we dereference multiple composite objects at the same level (eg if we deal with multiple images, each of which perhaps contained a reference to the same colour space). We now issue an error quoting the object number being circularly referenced, replace the object with a null object and continue. No differences expected. Resource/Init/pdf_base.ps new errors: errors that went away: errors that are not whitelisted: === ghostpdl/examples/transparency_example.ps === cp50 === === ghostpdl/examples/transparency_example.ps === psdrgb ===