all devices regression report - 2019-05-29-04:47:11 - 7ecbfda92b4c8dbf6f6c2bf8fc82020a29219eff

[email protected] Wed, 29 May 2019 04:47:12 -0700 (PDT)
Newsgroups gmane.comp.printing.ghostscript.regression
Message-ID <20190529114712.4633A2040531@i7>
Differences in all devices errors using gs/examples files

Previous Revision: 9de16a6637b73e35f79d2d622de403b24e6502f2
 Current Revision: 7ecbfda92b4c8dbf6f6c2bf8fc82020a29219eff

commit 7ecbfda92b4c8dbf6f6c2bf8fc82020a29219eff
Author:     Chris Liddell <[email protected]>
AuthorDate: Tue May 7 11:30:15 2019 +0100
CommitDate: Wed May 29 10:20:25 2019 +0100

    Add use of new file access permissions to PS interp
    
    (this is a squash of several commits from filesec branch)
    
    Use errno to indicate invalidfileaccess
    
    Integrate fontconfig with file access controls
    
    fontconfig API has a call to retrieve all the directories about which fontconfig
    knows, so we can get those, and add them to the paths from which we're permitted
    to read.
    
    Add (most of) the Postscript "managed" paths....
    
    ...to the access controls.
    
    GenericResourceDir, ICCProfilesDir (reading) and temporary file directories for
    read/write/control.
    
    Add paths/files from C to the file access controls
    
    The -I paths, environment variables and build time paths.
    
    The command line specified output file, permit writing.
    
    Lastly, the command line specified input file is added to the readable list,
    interpreted, and then removed from the list.
    
    Add the FONTPATH path list to permit read access control list.
    
    I opted to do this in Postscript because the list is (normally) a colon
    separated list of paths, which we split into an array of paths (in Postscript) -
    it seems sensible to do this only once, both for storage and permissions.
    
    Add a non-standard string 'reverse search" operator
    
    The search operator searches for the first occurrence of a character code in a
    string (i.e. searches forwards from the start of the string), 'rsearch' finds
    the last instance of a character code (i.e. search backwards from the end of
    the string).
    
    Fix gp_open_scratch_file_rm for access permissions
    
    i.e. the same as gp_open_scratch_file
    
    Handle clist file 'rewind' failures
    
    'Rewinding' clist files may involved closing and recreating the temporary files,
    which conceivably can fail, but the clist procs rewind method was a void
    function, so couldn't return an error.
    
    It now can, and does return an error, and we handle the error.
    
    Add file permissions support for piped output.
    
    Paths from Fontmap to PermitReading list
    
    cidfmap paths, add to PermitReading list
    
    Add command line options for path access control addition
    
    --permit-file-read
    --permit-file-write
    --permit-file-control
    --permit-file-all
    
    They all take a separated list of paths (the usual platform specific ':' or ';'
    separator), and to the respective access control lists - the final 'all' option
    adds the paths to all the control lists.
    
    Add file access control to the 'gp_stat' method.
    
    This is complicated by the need to add the memory allocator context to the
    gp_stat parameters. To facilitate this, I've added a gs_memory_t pointer to the
    gx_io_device structure, which is set during the io device initialisation at
    startup.
    
    mkromfs: Add dummy gp_stat_impl for Windows - saves quite a bit of pointless
    build upheaval
    
    Add file access protection to file enumeration.
    
    The low level implementation of Postscript's filenameforall (*_enumerate_files)
    needs to also honour file access protection.
    
    This is has been complicated by requiring a gs_memory_t to be available where
    it wasn't previously (in order to access the gs_lib_ctx and the file permissions
    lists therein).
    
    Temp

Resource/Init/gs_cidfm.ps
Resource/Init/gs_fonts.ps
Resource/Init/gs_init.ps
base/gdevpipe.c
base/gp.h
base/gp_dosfe.c
base/gp_mshdl.c
base/gp_msprn.c
base/gp_mswin.c
base/gp_ntfs.c
base/gp_os2fs.c
base/gp_os2pr.c
base/gp_unifs.c
base/gp_unix.c
base/gp_vms.c
base/gpmisc.c
base/gsiodev.c
base/gsiodevs.c
base/gsiodisk.c
base/gsioram.c
base/gsiorom.c
base/gxclfile.c
base/gxclio.h
base/gxclist.c
base/gxclmem.c
base/gxclread.c
base/gxiodev.h
base/gxp1fill.c
base/lib.mak
base/mkromfs.c
base/stat_.h
pcl/pl/pjparse.c
pcl/pl/pllfont.c
psi/imain.c
psi/imainarg.c
psi/zdevcal.c
psi/zfile.c
psi/ziodev.c
psi/ziodev2.c
psi/ziodevsc.c
psi/zstring.c

new errors:

errors that went away:

errors that are not whitelisted:
=== ghostpdl/examples/alphabet.ps === dfaxhigh ===
=== ghostpdl/examples/alphabet.ps === dfaxlow ===
=== ghostpdl/examples/annots.pdf === dfaxhigh ===
=== ghostpdl/examples/annots.pdf === dfaxlow ===
=== ghostpdl/examples/colorcir.ps === dfaxhigh ===
=== ghostpdl/examples/colorcir.ps === dfaxlow ===
=== ghostpdl/examples/doretree.ps === dfaxhigh ===
=== ghostpdl/examples/doretree.ps === dfaxlow ===
=== ghostpdl/examples/escher.ps === dfaxhigh ===
=== ghostpdl/examples/escher.ps === dfaxlow ===
=== ghostpdl/examples/golfer.eps === dfaxhigh ===
=== ghostpdl/examples/golfer.eps === dfaxlow ===
=== ghostpdl/examples/grayalph.ps === dfaxhigh ===
=== ghostpdl/examples/grayalph.ps === dfaxlow ===
=== ghostpdl/examples/ridt91.eps === dfaxhigh ===
=== ghostpdl/examples/ridt91.eps === dfaxlow ===
=== ghostpdl/examples/snowflak.ps === dfaxhigh ===
=== ghostpdl/examples/snowflak.ps === dfaxlow ===
=== ghostpdl/examples/text_graph_image_cmyk_rgb.pdf === dfaxhigh ===
=== ghostpdl/examples/text_graph_image_cmyk_rgb.pdf === dfaxlow ===
=== ghostpdl/examples/text_graphic_image.pdf === dfaxhigh ===
=== ghostpdl/examples/text_graphic_image.pdf === dfaxlow ===
=== ghostpdl/examples/tiger.eps === dfaxhigh ===
=== ghostpdl/examples/tiger.eps === dfaxlow ===
=== ghostpdl/examples/transparency_example.ps === dfaxhigh ===
=== ghostpdl/examples/transparency_example.ps === dfaxlow ===
=== ghostpdl/examples/vasarely.ps === dfaxhigh ===
=== ghostpdl/examples/vasarely.ps === dfaxlow ===
=== ghostpdl/examples/waterfal.ps === dfaxhigh ===
=== ghostpdl/examples/waterfal.ps === dfaxlow ===