diff options
author | Ken Sharp <ken.sharp@artifex.com> | 2021-10-06 17:35:25 +0100 |
---|---|---|
committer | Ken Sharp <ken.sharp@artifex.com> | 2021-10-06 17:35:25 +0100 |
commit | fbe227d1e13da0d5d30c2d627b3824f9dc61c729 (patch) | |
tree | fdaeefe8ed335ae7b2da51a674da5971f6d22729 /base/gdevdbit.c | |
parent | f0e2e035276ca050c5853df9d59a4cd0b6394671 (diff) | |
download | ghostpdl-fbe227d1e13da0d5d30c2d627b3824f9dc61c729.tar.gz |
PDF Interpreter - Document and update previous work-around
The customer file has annotations with appearance streams which have
been compressed, but do not have a compression filter in the stream
dictionary. At least one of the streams has a ']' in the data, and
since we are interpreting the data directly this can correspond with a
matching mark on the stack, or throw an unmatched mark error.
Either way this can lead to stack corruption and other problems.
We did already execute the annotation in a stopped context, but if
that threw an error then, as part of the error recovery, we would run
a 'cleartomark'. If the stream had removed the mark we needed then that
would throw an error (which is what happens here).
Commit 4870aa85f14c900d47b5c1ba5eec48c64c384cad accidentally included
a patch to work around this by executing the error recovery inside a
stopped context so that we can recover from an error while recovering
from the previous error. This way madness lies......
This commit simply documents that previous accidental inclusion, and
adds a little more feedback for the user.
Diffstat (limited to 'base/gdevdbit.c')
0 files changed, 0 insertions, 0 deletions