all devices regression report - 2018-01-16-04:20:37 - e62df8bbd78e8db1cb254a6ab4c2ebf1232c6c7e

[email protected] Tue, 16 Jan 2018 04:20:37 -0800 (PST)
Newsgroups gmane.comp.printing.ghostscript.regression
Message-ID <20180116122037.5574D20401D2@i7>
Differences in all devices errors using gs/examples files

Previous Revision: 4d730d2087680cff4e3b153536922406bfcf4493
 Current Revision: e62df8bbd78e8db1cb254a6ab4c2ebf1232c6c7e

commit e62df8bbd78e8db1cb254a6ab4c2ebf1232c6c7e
Author:     Ken Sharp <[email protected]>
AuthorDate: Tue Jan 16 10:47:14 2018 +0000
CommitDate: Tue Jan 16 10:47:14 2018 +0000

    Reduce severity of memory debug problem detection
    
    Bug #698849 "gs_abort with Bad object"
    
    The error occurs because of the combination of -Z? and -dLastPage. In
    order to do First/Last Page processing, we insert a subclassing device
    ahead of the regular device (ppmraw in this case).
    
    The subclassing works by making a new device structure, copying the
    existing device to it, and replacing the content of the existing
    device structure. This is done to maintain coherency of gsave/grestore
    and save/restore; the structures maintain pointers to the device in
    the graphics state structure, so we can't simply move it.
    
    When subclassing, we change the declared size of the structure (ssize)
    but we don't (can't!) change the size that the memory manager allocated
    in the first place. This leads to a mismatch between the declared size
    of the structure and the allocated size. I mentioned this in the
    original commit for subclassing, but noted that in normal use there is
    nowhere that actually checks.
    
    However, if you set -Z? then additional checks are done on memory
    validity, and this discrepancy is flagged. It also raises an abort,
    presumably because this is seen as serious enough to stop and
    investigate.
    
    I don't want to remove this check altogether, as it may still be useful,
    but we don't want to abort now because this might be a benign change
    caused by subclassing.
    
    So here, pull the size != ssize check out separately from the other
    consistency checks, and if it is not true raise a warning, but do
    *not* abort the process.

psi/ilocate.c

new errors:

errors that went away:

errors that are not whitelisted:
=== ghostpdl/examples/transparency_example.ps === bjc880j ===
=== ghostpdl/examples/transparency_example.ps === cp50 ===
=== ghostpdl/examples/transparency_example.ps === escpage ===
=== ghostpdl/examples/transparency_example.ps === lips2p ===
=== ghostpdl/examples/transparency_example.ps === lips3 ===
=== ghostpdl/examples/transparency_example.ps === lips4 ===
=== ghostpdl/examples/transparency_example.ps === npdl ===