Compare commits

...

272 Commits
f10 ... f14

Author SHA1 Message Date
Tim Waugh c2b12d3ce8 Merge branch 'f13' into f14 2011-02-01 11:54:33 +00:00
Tim Waugh 9490e69583 Don't ship backup files for SEARCH_HERE_FIRST patch. 2011-02-01 11:48:52 +00:00
Tim Waugh 97cc1c6744 Merge branch 'f13' into f14 2011-01-07 11:46:36 +00:00
Tim Waugh 23d38d6e8d Fixed more summaries ending with ".". 2010-11-26 09:12:37 +00:00
Tim Waugh 3c5a2bb8dc Merge branch 'f13' into f14 2010-11-25 17:18:46 +00:00
Tim Waugh 59b553b156 Reverted gdevcups-segfaults patch from bug #639593 (bug #655403). 2010-11-25 17:16:45 +00:00
Tim Waugh d3ec0a6a55 Merge branch 'f13' into f14 2010-10-21 14:16:30 +01:00
Tim Waugh c68619eeb3 Merge branch 'f12' into f13 2010-10-21 14:16:04 +01:00
Tim Waugh d61c474922 Own more directories (bug #645075). 2010-10-21 14:15:11 +01:00
Tim Waugh 0c64c5e544 Merge branch 'f13' into f14 2010-10-14 17:23:39 +01:00
Tim Waugh 213d41aedc Apply some fixes from upstream to avoid gdevcups segfaults (bug #639593). 2010-10-14 17:07:59 +01:00
Tim Waugh f9f0f1a8e1 gdevcups: don't use uninitialized variables in debugging output (Ghostscript bug #691683). 2010-10-14 15:21:08 +01:00
Tim Waugh 1e7576b8e9 Merge branch 'f13' into f14 2010-10-01 17:24:09 +01:00
Tim Waugh 54e47e6634 Reverted incorrect change introduced to fix bug #635786. 2010-10-01 11:05:29 +01:00
Tim Waugh 5a1f2e81bc Merge branch 'f13' into f14 2010-09-30 17:22:14 +01:00
Tim Waugh 1deda51edb Don't use carriage return in ps2epsi output (bug #635786). 2010-09-30 17:14:29 +01:00
Tim Waugh e32518926c Include more documentation (bug #634354). 2010-09-30 16:28:57 +01:00
Jesse Keating 5c5fe72db2 - Rebuilt for gcc bug 634757 2010-09-29 22:22:47 -07:00
Tim Waugh 0635370fe9 Merge branch 'f13' into f14 2010-09-13 16:49:48 +01:00
Tim Waugh d4326877f7 Merge branch 'f12' into f13 2010-09-13 16:36:46 +01:00
Tim Waugh a70c402edd Pulled in OpenSUSE fix for .runlibfileifexists (bug #610301). 2010-09-13 16:02:37 +01:00
Tim Waugh 176932c607 Merge branch 'f13' into f14 2010-09-03 12:43:50 +01:00
Tim Waugh bc34ffaf5b Merge branch 'f12' into f13 2010-09-03 12:36:59 +01:00
Tim Waugh 14bd3ebe38 Restored Fontmap.local patch (bug #610301). 2010-09-03 11:56:39 +01:00
Tim Waugh d24aadea6e Applied patch to let gdevcups use automatic memory allocation. 2010-09-02 14:42:58 +01:00
Tim Waugh 92552fba1e Applied patch to fix NULL dereference in bbox driver (bug #591624). 2010-09-02 13:05:00 +01:00
Tim Waugh f35503ceee Applied upstream patch to fix iname.c segfault (bug #465311). 2010-09-02 12:15:51 +01:00
Tim Waugh 722aebdff5 Merge branch 'f13' into f14 2010-08-26 15:30:30 +01:00
Tim Waugh 3f91350de4 Merge branch 'f12' into f13 2010-08-26 15:24:30 +01:00
Tim Waugh c755f33188 Avoid epstopdf failure using upstream patch (bug #627390). 2010-08-26 14:54:26 +01:00
Tim Waugh 51b02415a0 More upstream fixes for bug #599564. 2010-08-26 14:46:34 +01:00
Tim Waugh 3ca561ed10 Merge branch 'f13' into f14 2010-08-25 16:36:11 +01:00
Tim Waugh bf4041ceb4 Merge branch 'f12' into f13 2010-08-25 16:36:05 +01:00
Tim Waugh 0c1e7532d2 More security fixes for bug #599564. 2010-08-25 16:19:31 +01:00
Tim Waugh 447e220937 Merge branch 'f13' into f14 2010-08-25 14:25:44 +01:00
Tim Waugh 6526222ba4 Merge branch 'f12' into f13 2010-08-25 14:24:12 +01:00
Tim Waugh 5a5e48476c Change SEARCH_HERE_FIRST default to make -P- default (bug #599564). 2010-08-25 14:02:19 +01:00
Tim Waugh b3e2cfe5e0 Removed redundant gs-executable patch (bug #502550). 2010-08-25 11:16:26 +01:00
Tim Waugh fede8614e7 Merge branch 'f13' into f14 2010-08-05 16:52:20 +01:00
Tim Waugh 56ff80c357 Merge branch 'f12' into f13 2010-08-05 16:51:33 +01:00
Tim Waugh 2e84257b37 Avoid another NULL pointer dereference in jbig2 code (bug #621569). 2010-08-05 16:15:39 +01:00
Tim Waugh 2270f43c6a Merge branch 'f13' into f14 2010-08-02 12:24:08 +01:00
Tim Waugh 92a0736e01 Merge branch 'f12' into f13 2010-08-02 12:23:29 +01:00
Fedora Release Engineering 996241c7f8 dist-git conversion 2010-07-28 15:37:04 +00:00
Fedora Release Engineering 4257a957f7 dist-git conversion 2010-07-28 15:36:44 +00:00
Fedora Release Engineering fde4161596 dist-git conversion 2010-07-28 15:36:36 +00:00
Tim Waugh 02461c194f - Applied patch to fix CVE-2010-1628 (memory corruption at PS stack
overflow, bug #592492).
2010-07-16 12:51:28 +00:00
Tim Waugh 33c4fe6c8b - Applied patch to fix CVE-2010-1628 (memory corruption at PS stack
overflow, bug #592492).
2010-07-16 12:51:22 +00:00
Tim Waugh 967dc4507b - Applied patch to fix CVE-2010-1628 (memory corruption at PS stack
overflow, bug #592492).
2010-07-16 12:50:52 +00:00
Tim Waugh 9156a8754c - Backported some more TIFF fixes (bug #573970). 2010-03-16 13:29:23 +00:00
Tim Waugh 36eb6194ad - Backported some more TIFF fixes (bug #573970). 2010-03-16 13:28:07 +00:00
Tim Waugh 4a1dbe16b0 - Backported some more TIFF fixes (bug #573970). 2010-03-16 13:05:56 +00:00
Tim Waugh 561959feca - Use upstream fix for TIFF default strip size (bug #571520). 2010-03-16 10:02:37 +00:00
Tim Waugh 37694f5adf - Use upstream fix for TIFF default strip size (bug #571520). 2010-03-16 10:01:20 +00:00
Tim Waugh 986d069293 - Use upstream fix for TIFF default strip size (bug #571520). 2010-03-16 10:00:10 +00:00
Tim Waugh 636305d658 - Restore the TIFF default strip size of 0 (bug #571520).
- Don't segfault closing tiffg3 device if opening failed (bug #571520).
- Don't revert gdevcups y-axis change (bug #541604).
- Reallocate memory in gdevcups when color depth changes (bug #563313).
2010-03-15 22:07:57 +00:00
Tim Waugh 5c333312ef - Restore the TIFF default strip size of 0 (bug #571520). 2010-03-15 17:35:28 +00:00
Tim Waugh ba097d7d21 - Restore the TIFF default strip size of 0 (bug #571520). 2010-03-15 17:09:41 +00:00
Tim Waugh 130b322cda - Don't revert gdevcups y-axis change (bug #541604).
- Reallocate memory in gdevcups when color depth changes (bug #563313).
2010-03-15 16:29:24 +00:00
Tim Waugh 9c4a7af0ae - Don't segfault closing tiffg3 device if opening failed (bug #571520). 2010-03-15 16:28:40 +00:00
Tim Waugh 4ec0ef2948 - Don't revert gdevcups y-axis change (bug #541604).
- Reallocate memory in gdevcups when color depth changes (bug #563313).
2010-03-15 15:14:02 +00:00
Tim Waugh 51650e03ec - Don't segfault closing tiffg3 device if opening failed (bug #571520). 2010-03-12 12:10:34 +00:00
Tim Waugh 53d0adbaef - Don't own the %{_datadir}/ghostscript or %{_datadir}/ghostscript/conf.d
directories as the filesystem package already does (bug #569442).
2010-03-05 12:42:08 +00:00
Tim Waugh 32b0bc8f49 - Don't own the %{_datadir}/ghostscript or %{_datadir}/ghostscript/conf.d
directories as the filesystem package already does (bug #569442).
2010-03-05 12:41:58 +00:00
Tim Waugh b41625a6c8 - Fixed summary.
- Fixed macros in changelog.
- Avoid mixed spaces and tabs.
- Ship COPYING file.
- Added comments for all patches.
- More consistent macro use.
2010-03-03 17:50:46 +00:00
Tim Waugh 34e7790c64 Bumped release. 2010-03-03 17:43:24 +00:00
Tim Waugh e29b690010 - Fixed summary.
- Fixed macros in changelog.
- Avoid mixed spaces and tabs.
- Ship COPYING file.
- Added comments for all patches.
- More consistent macro use.
2010-03-03 17:42:54 +00:00
Tim Waugh 70ad2fc0e1 - The doc subpackage is now noarch (bug #567179). 2010-02-22 12:30:20 +00:00
Tim Waugh 1a559dafda - The doc subpackage is now noarch (bug #567179). 2010-02-22 12:28:16 +00:00
Tim Waugh e47f4a7f1c - Actually revert the upstream gdevcups changes (bug #563313). 2010-02-20 16:19:57 +00:00
Tim Waugh cc2011b1fc - Actually revert the upstream gdevcups changes (bug #563313). 2010-02-20 16:19:23 +00:00
Tim Waugh d12a8ce983 - Actually revert the upstream gdevcups changes (bug #563313). 2010-02-20 16:18:34 +00:00
Tim Waugh 61b75ba371 - Fixed pdf2dsc.ps (bug #565935). 2010-02-20 16:10:51 +00:00
Tim Waugh 23a2c4f876 - Fixed pdf2dsc.ps (bug #565935). 2010-02-20 16:08:21 +00:00
Tim Waugh 2c5f5bee43 - Fixed pdf2dsc.ps (bug #565935). 2010-02-20 16:07:18 +00:00
Tim Waugh d34af71c88 - Use fixed patch for LDFLAGS to make sure libgs.so gets a soname (bug
#565935).
2010-02-20 15:49:47 +00:00
Tim Waugh 23f47da015 - Use fixed patch for LDFLAGS to make sure libgs.so gets a soname (bug
#565935).
2010-02-20 15:49:40 +00:00
Tim Waugh 865c7ebf9b - Use fixed patch for LDFLAGS to make sure libgs.so gets a soname (bug
#565935).
2010-02-20 15:49:25 +00:00
Tim Waugh e83bbf85ef - Fixed LDFLAGS when building dynamically linked executables (bug #565935). 2010-02-19 11:32:07 +00:00
Tim Waugh babc847f71 - Fixed LDFLAGS when building dynamically linked executables (bug #565935). 2010-02-19 11:31:52 +00:00
Tim Waugh a5134c5ade - Fixed LDFLAGS when building dynamically linked executables (bug #565935). 2010-02-19 10:41:27 +00:00
Tim Waugh be331bbe54 - Use system libtiff. 2010-02-17 18:20:00 +00:00
Tim Waugh efdde165b7 - Use system libtiff. 2010-02-17 17:59:48 +00:00
Tim Waugh e9e47e765b - Reverted gdevcups duplex changes as they cause a regression (see bug
#563313).
2010-02-17 17:53:03 +00:00
Tim Waugh a8817762e8 - 8.71 (bug #565935). 2010-02-17 16:54:08 +00:00
Tim Waugh b96cc94f6f - 8.71 (bug #565935). 2010-02-17 12:37:18 +00:00
Jesse Keating a737ed8a5c Initialize branch F-13 for ghostscript 2010-02-17 01:25:59 +00:00
Tim Waugh 117c32f095 - Reverted gdevcups duplex changes as they cause a regression (see bug
#563313).
2010-02-16 12:30:53 +00:00
Tim Waugh e680683871 - Reverted gdevcups duplex changes as they cause a regression (see bug
#563313).
2010-02-16 12:30:51 +00:00
Tim Waugh 1b044baeeb - Fixed pdftoraster so that it waits for its sub-process to exit.
- Another gdevcups duplex fix from upstream revision 10631 (bug #541604).
2010-01-25 10:35:39 +00:00
Tim Waugh d7e1d637e5 - Fixed pdftoraster so that it waits for its sub-process to exit.
- Another gdevcups duplex fix from upstream revision 10631 (bug #541604).
2010-01-25 10:32:46 +00:00
Tim Waugh 4a93f4fa87 - New ghostscript-cups sub-package for some additional filters:
pdftoraster; pstopxl. CUPS package still owns pstoraster for now.
2010-01-22 16:09:05 +00:00
Tim Waugh 7f19d06c8e - Don't build static library for ijs (bug #556051). 2010-01-22 09:18:54 +00:00
Tim Waugh 1491db8937 - Fixed gdevcups duplex output (bug #541604) by backporting upstream
revision 10625.
2010-01-22 09:17:33 +00:00
Tim Waugh 2cf5f5aea9 - Fixed gdevcups duplex output (bug #541604) by backporting upstream
revision 10625.
2010-01-21 13:30:16 +00:00
Tim Waugh a1afccab2e - Fixed gdevcups duplex output (bug #541604) by backporting upstream
revision 10625.
2010-01-21 13:27:43 +00:00
Tim Waugh 263db7bc48 - Don't ship libtool la files (bug #542674). 2009-12-24 12:34:27 +00:00
Tim Waugh 30670513ba - Fix debugging output from gdevcups (CVE-2009-4270, bug #540760).
- Harden ghostscript's debugging output functions (bug #540760).
2009-12-24 11:31:50 +00:00
Tim Waugh 59db7de965 - Fix debugging output from gdevcups (CVE-2009-4270, bug #540760).
- Harden ghostscript's debugging output functions (bug #540760).
2009-12-24 11:31:29 +00:00
Bill Nottingham 2656f78197 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:56:17 +00:00
Bill Nottingham d847a511f6 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-25 23:19:25 +00:00
Tim Waugh 01bff26309 - New cups sub-package for pstoraster/pdftoraster/pstopxl. 2009-10-15 12:52:20 +00:00
Jesse Keating 972caf59ac Initialize branch F-12 for ghostscript 2009-09-29 04:56:28 +00:00
Tim Waugh 15621b2b5a - 8.70.
- License has changed to GPLv3+. Packages containing programs that link to
    libgs/libijs are:
- foomatic (GPLv2+)
- libspectre (GPLv2+)
- ImageMagick (ImageMagick, listed on Licensing wiki page under "Good
    Licenses" and marked as GPLv3 compat)
- gutenprint (GPLv2+)
2009-08-03 17:27:32 +00:00
Tim Waugh fd5bf36ff0 - Moved examples to doc subpackage (bug #515167).
- Converted spec file to UTF-8.
2009-08-03 10:47:25 +00:00
Tim Waugh 3016e15a0a - Converted spec file to UTF-8. 2009-08-03 10:05:45 +00:00
Tim Waugh a82e34fd34 - Fixed CVE-2009-0583,0584 patch by using 255 as the maximum number of
points, not 100, and by not treating a missing black point tag as an
    error (bug #487744).
2009-07-30 13:49:52 +00:00
Rex Dieter 0bb2e4c55a cvs-only, not built
Thu Jul 30 2009 Rex Dieter <rdieter@fedoraproject.org> - 8.64-10
- License: GPLv2 and Redistributable, no modification permitted (bug
    #487510)
2009-07-30 12:52:39 +00:00
Jesse Keating 6df2cffe50 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild 2009-07-25 00:07:07 +00:00
Tim Waugh b76f8755c2 - Fix scripts so they don't get broken on install (bug #502550). 2009-06-10 17:04:49 +00:00
Tim Waugh 12d81d66b1 - Applied patch to fix NULL dereference in JBIG2 decoder (bug #503995). 2009-06-04 12:49:21 +00:00
Tim Waugh b62d20303f - Applied patch to fix CVE-2009-0792 (bug #491853).
- Applied patch to fix CVE-2009-0196 (bug #493379).
2009-04-15 16:25:02 +00:00
Tim Waugh d22b996f9e - Applied patch to fix CVE-2009-0583 (bug #487742) and CVE-2009-0584 (bug
#487744).
2009-03-20 12:35:56 +00:00
Jesse Keating 85995c54ff - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild 2009-02-24 21:21:56 +00:00
Tim Waugh 41ce9923c6 - Fix bitcmyk driver (bug #486644). 2009-02-17 17:27:22 +00:00
Tim Waugh 47b08ccdb4 - 8.64 (bug #483958). 2009-02-04 13:32:50 +00:00
Tim Waugh f8f891f65a - 8.64. 2009-02-04 13:11:11 +00:00
Tim Waugh 8a86623f3f - Removed trade marks to avoid any potential confusion. 2009-01-30 09:57:03 +00:00
Tim Waugh 7e0d0560ab - Removed last patch (unsuccessful). 2008-10-17 15:47:32 +00:00
Tim Waugh 75f99711b7 - Try out a work-around for bug #465311. 2008-10-17 11:14:05 +00:00
Tim Waugh b0a02a722b - Don't ship fixmswrd.pl as it pulls in perl (bug #463948). 2008-10-15 15:22:45 +00:00
Tim Waugh 9f0b67fe7c - Split out a doc sub-package (bug #466507). 2008-10-14 10:54:40 +00:00
Tim Waugh 3116a3c29a - 8.63. No longer need r8591 or incomplete-ccittfax patches.
- Compile without strict aliasing opts due to warnings across several
    files.
- Don't run autogen.sh for main package, just for ijs which doesn't ship
    with a configure script.
2008-08-04 10:15:59 +00:00
Tim Waugh 3f2c793a48 8.62-4 2008-06-23 15:47:33 +00:00
Tim Waugh 733f9f4f59 - Applied patch to work around bug #229174. 2008-06-23 14:11:34 +00:00
Tim Waugh d6a8216e11 - Applied patch from upstream to fix box_fill_path for shfill (bug
#452348).
2008-06-23 11:58:48 +00:00
Tim Waugh 6fd98b0a31 - Fix pksmraw output (bug #308211). 2008-03-31 16:29:32 +00:00
Tim Waugh 6a01a7c271 - No longer need CVE-2008-0411 patch.
- Don't ship URW fonts; we already have them.
2008-03-04 18:02:50 +00:00
Tim Waugh 1762de5bb7 8.62-2 2008-03-04 17:47:22 +00:00
Tim Waugh 05c0279c51 - No longer need CVE-2008-0411 patch. 2008-03-04 17:44:54 +00:00
Tim Waugh 22dff3b597 Renumbered patches. 2008-03-04 11:24:42 +00:00
Tim Waugh dd8785b474 - 8.62. No longer need IJS KRGB patch, or patch for gs bug 689577. 2008-03-04 11:22:12 +00:00
Tim Waugh 84e3fdeb18 Fixed bug ID. 2008-02-27 17:11:11 +00:00
Tim Waugh 0e32b81991 - Applied patch to fix CVE-2008-0411 (bug #435147). 2008-02-27 17:09:53 +00:00
Tim Waugh 70fe506577 Fixed typo. 2008-02-22 14:33:24 +00:00
Tim Waugh 1fa2af9aa9 - Build with jasper again (bug #433897). Build requires jasper-devel, and a
patch to remote jas_set_error_cb reference.
2008-02-22 14:25:28 +00:00
Tim Waugh 2cf528ec0f - Rebuild for GCC 4.3. 2008-02-13 12:10:36 +00:00
Tim Waugh d121f06743 - Don't build with jasper support. 2008-01-28 15:30:01 +00:00
Tim Waugh d05124d3e5 - Build requires jasper-devel.
- Remove bundled libraries.
2008-01-28 15:21:34 +00:00
Tim Waugh 08d24bfef6 - Applied upstream patch for bug #416321. 2007-12-11 15:29:31 +00:00
Tim Waugh 2050c98074 - Fixed runlibfileifexists patch. 2007-11-30 11:01:37 +00:00
Tim Waugh 89ab42c26f Apply the patch. 2007-11-30 09:07:06 +00:00
Tim Waugh 3e4c6fe3b7 - Revert previous change, but define .runlibfileifexists, not just
runlibfileifexists.
2007-11-30 09:03:51 +00:00
Tim Waugh f08a51a880 Fixed comment. 2007-11-28 13:47:27 +00:00
Tim Waugh 58606b2428 - No longer need runlibfileifexists.
- Use runlibfile in cidfmap.
2007-11-28 13:41:45 +00:00
Tim Waugh a671dd4185 - Add /usr/share/fonts to fontpath (bug #402551). 2007-11-28 12:50:53 +00:00
Tim Waugh 89d528c749 8.61-2 2007-11-28 12:34:33 +00:00
Tim Waugh c09a9fe907 - Restore cidfmap-switching bits, except for FAPIcidfmap which is no longer
used.
2007-11-28 12:24:58 +00:00
Tim Waugh 8d8748a20b - Add runlibfileifexists to gs_init.ps. 2007-11-28 12:05:24 +00:00
Tim Waugh f96f06c143 - Build with --disable-compile-inits (bug #402501). 2007-11-28 11:20:33 +00:00
Tim Waugh 1b697da225 - 8.61. 2007-11-23 10:11:06 +00:00
Tim Waugh ff17cad90e - Applied patch from upstream to fix CVE-2007-2721 (bug #346511). 2007-10-23 13:37:33 +00:00
Bill Nottingham bd2db7c620 makefile update to properly grab makefile.common 2007-10-15 18:47:19 +00:00
Tim Waugh 6ab0d7dace - Marked localized man pages as %lang (bug #322321). 2007-10-09 12:28:25 +00:00
Tim Waugh fc314e5732 Include missing piece. 2007-09-27 11:23:56 +00:00
Tim Waugh 1555141555 - Back-ported mkstemp64 patch (bug #308211). 2007-09-27 11:05:26 +00:00
Tim Waugh 0c939a784d - More specific license tag. 2007-08-23 16:14:00 +00:00
Tim Waugh 06f2d18d9f - 8.60. 2007-08-03 17:27:23 +00:00
Tim Waugh 5c25057eb1 8.60-0.r8112.2 2007-07-20 14:21:32 +00:00
Tim Waugh da5847e794 - Own %{_libdir}/ghostscript (bug #246026). 2007-07-16 12:30:44 +00:00
Tim Waugh f7888265f7 Include missing patch. 2007-07-11 12:06:32 +00:00
Tim Waugh 36419052f9 - 8.60 snapshot from svn. Patches dropped:
- big-cmap-post
- split-cidfnmap
- exactly-enable-cidfnmap
- Fontmap.local No longer needed:
- gxcht-64bit-crash
2007-07-11 11:43:45 +00:00
Tim Waugh 20e71695f9 - Apply fonts in CIDFnmap even if the same fontnames are already registered
(bug #163231).
- Resolves: rhbz#163231
2007-04-17 10:12:30 +00:00
Tim Waugh b5ff478a7d - New file CIDFmap (bug #233966).
- Allow local overrides for FAPIcidfmap, cidfmap and Fontmap (bug #233966).
- Resolves: rhbz#233966 rhbz#233966
2007-04-17 10:05:22 +00:00
Tim Waugh 09a3e2a37b - Fixed configuration file locations (bug #233966).
- Resolves: rhbz#233966
2007-04-03 13:39:01 +00:00
Tim Waugh f2d513ae8b - 8.15.4. 2007-03-14 21:56:28 +00:00
Tim Waugh b524225de7 8.15.3-7 2007-01-25 12:16:44 +00:00
Tim Waugh ff495ba08e - dvipdf script fixes (bug #88906).
- Resolves: rhbz#88906
2007-01-25 12:15:57 +00:00
Tim Waugh 9446583888 - Moved libijs.so and libgs.so into devel package (bug #203623).
- Resolves: rhbz#203623
2007-01-25 12:13:13 +00:00
Tim Waugh 043d60f302 - Configure with --with-drivers=ALL since the advertised default is not
what gets used (bug #223819).
- Resolves: rhbz#223819
2007-01-24 10:35:02 +00:00
Tim Waugh b7c1eb3c1e Include patch 2007-01-18 13:22:03 +00:00
Tim Waugh 07ece8cc04 8.15.3-5 2007-01-18 13:20:09 +00:00
Tim Waugh d2691e1748 - Backported gxcht 64bit crash fix from GPL trunk (bug #177763).
- Resolves: rhbz#177763
2007-01-18 13:16:49 +00:00
Tim Waugh 9adfd97848 - Own cjkv directory (bug #221380, bug #222375).
- Resolves: rhbz#221380 rhbz#222375
2007-01-12 14:52:16 +00:00
Tim Waugh 3259141cf0 8.15.3-3 2006-12-05 16:46:54 +00:00
Tim Waugh d7fa87e26a - Added split-cidfnmap patch (bug #194592).
- Resolves: rhbz#194592
2006-12-05 16:45:13 +00:00
Tim Waugh 3da9d92cb8 - 8.15.3. No longer need gtk2, ps2epsi, badc, pagesize,
use-external-freetype, split-font-configuration or cjkv patches.
- Renumbered patches.
2006-11-16 17:35:44 +00:00
Tim Waugh 2265fe0750 - Apply CJKV patch from svn164:165 plus the fix from svn173:174 (bug
#194592, bug #203712, possibly bug #167596).
2006-10-03 14:18:40 +00:00
Jesse Keating ee8eec74b1 bumped for rebuild 2006-07-12 05:55:07 +00:00
Tim Waugh 566900fdec - Revert CJKV patch. 2006-06-23 10:28:43 +00:00
Tomáš Mráz bb877a03dc - rebuilt with new gnutls 2006-06-14 16:34:20 +00:00
Tim Waugh baa88bc29f - Apply CJKV patch from svn164:165. 2006-06-13 13:58:06 +00:00
Tim Waugh aaa2f40d15 - Undo svn sync. 2006-06-13 12:52:15 +00:00
Tim Waugh 42590c5c21 - Sync to svn165. 2006-06-09 16:50:24 +00:00
Tim Waugh 6e08ee84ce 8.15.2-4 2006-05-26 14:04:13 +00:00
Tim Waugh f21c6e9eb1 - Fix ijs-config not to have multilib conflicts (bug #192672) 2006-05-26 14:03:07 +00:00
Tim Waugh d2ff86e758 - Remove adobe-cmaps and acro5-cmaps, since latest CMaps are already
included (bug #190463).
2006-05-02 17:52:23 +00:00
Tim Waugh b8ce1a7b91 Fix pkgconfig confusion. 2006-04-25 16:34:58 +00:00
Tim Waugh 89e8e44b4d - 8.15.2.
- No longer need build, krgb, pdfwrite, str1570 patches.
2006-04-25 16:20:39 +00:00
Tim Waugh 78127402c2 8.15.1-10 2006-04-24 16:09:21 +00:00
Tim Waugh 26861b1b4f - Fix emacs interaction (bug #189321, STR #1570). 2006-04-24 16:08:42 +00:00
Tim Waugh 93c8b75925 - Spec file cleanups (bug #188066). 2006-04-10 10:39:03 +00:00
Tim Waugh f8f327274e - Add %{_datadir}/fonts/japanese to font path (bug #188448). 2006-04-10 10:34:23 +00:00
Tim Waugh a68fa66733 - Build requires libtool (bug #188341). 2006-04-08 09:57:54 +00:00
Tim Waugh 1d190d27f5 Really remove pstoraster. 2006-04-06 10:44:39 +00:00
Tim Waugh 8fb25e0ad2 Fixed typo. 2006-04-06 10:34:58 +00:00
Tim Waugh da3a5d39ba - Fix pdfwrite (bug #187834).
- CUPS filters go in /usr/lib/cups/filter even on lib64 platforms.
2006-04-06 10:19:22 +00:00
Tim Waugh e1f8bc1189 8.15.1-7 2006-03-02 14:58:45 +00:00
Tim Waugh 389a5d8f2d - BuildRequires: gnutls-devel
- Updated KRGB patch for gdevijs.
2006-03-02 14:58:26 +00:00
Karsten Hopp 48b7127ce2 - BuildRequires: libXt-devel
In file included from ./src/gdevxalt.c:22: ./src/x_.h:139:29: error:
    X11/Intrinsic.h: No such file or directory ./src/x_.h:140:30: error:
    X11/StringDefs.h: No such file or directory ./src/x_.h:141:25: error:
    X11/Shell.h: No such file or directory make: *** [obj/gdevxalt.o] Error
    1
2006-02-28 13:29:52 +00:00
Jesse Keating 20d7c68a42 bump for bug in double-long on ppc(64) 2006-02-11 03:06:53 +00:00
Jesse Keating 447cd5b79f bump for new gcc/glibc 2006-02-07 11:47:15 +00:00
Tim Waugh 12518b6b76 - Updated adobe-cmaps to 200406 (bug #173613). 2006-01-30 17:54:59 +00:00
Tim Waugh 245be3029b 8.15.1-4 2006-01-27 11:59:04 +00:00
Tim Waugh 05c310554c - Support reading a big cmap/post table from a TrueType font. 2006-01-27 11:47:44 +00:00
Jesse Keating 65276dde90 gcc update bump 2005-12-09 22:40:33 +00:00
Tim Waugh 7cc772ff32 - Build does not explicitly require xorg-x11-devel. 2005-11-09 13:42:57 +00:00
Tim Waugh 407204b668 Require xorg-x11-devel not XFree86-devel 2005-11-09 10:07:25 +00:00
Tomáš Mráz 66c3749723 - rebuilt with new openssl 2005-11-09 09:44:45 +00:00
Tim Waugh 6c921dfc73 - Some directories should be "8.15" not "8.15.1" (bug #169198). 2005-09-26 17:18:02 +00:00
Tim Waugh 45109fe931 Fix setup line 2005-09-22 22:17:18 +00:00
Tim Waugh 47113264a3 Fix source0 2005-09-22 22:14:41 +00:00
Tim Waugh 06055cd6f7 Remove gs_rc 2005-09-22 22:12:48 +00:00
Tim Waugh ef16ab3992 - 8.15.1.
- No longer need overflow patch.
2005-09-22 22:12:17 +00:00
Tim Waugh 20bfe6e080 - Rebuilt for new cairo. 2005-08-16 09:15:09 +00:00
Tim Waugh 57f3798439 - Parametrize freetype, and disable it (bug #165962). 2005-08-15 12:18:44 +00:00
Tim Waugh 970da03f19 8.15-0.rc4.1 2005-08-12 10:30:44 +00:00
Tim Waugh 74e57dbfa3 - Fixed lips4v driver (bug #165713). 2005-08-12 10:01:26 +00:00
Tim Waugh a4a834a987 - 8.15rc4. 2005-08-12 09:58:16 +00:00
Tim Waugh 2ac9b5fd68 8.15-0.rc3.7 2005-08-09 12:55:02 +00:00
Tim Waugh 0a08c4e277 - Install adobe/acro5 CMaps (bug #165428). 2005-08-09 12:54:40 +00:00
Tim Waugh c14c331cad - Fixed split font configuration patch (bug #161187). 2005-07-18 14:26:17 +00:00
Tim Waugh 0dfb5c0456 8.15-0.rc3.5 2005-07-13 13:29:58 +00:00
Tim Waugh b2727e93a1 - Split font configuration (bug #161187). 2005-07-13 13:29:37 +00:00
Tim Waugh faa929d18b - Reverted this change:
- Build requires xorg-x11-devel, not XFree86-devel.
2005-07-13 09:05:30 +00:00
Tim Waugh c0ac82aa41 8.15-0.rc3.4 2005-07-12 13:16:06 +00:00
Tim Waugh 8e258de719 - Add Japanese fonts to FAPIcidfmap (bug #161187). 2005-07-12 12:29:38 +00:00
Tim Waugh a1de13651f - Moved Resource directory. 2005-07-12 10:48:10 +00:00
Tim Waugh 41ce6ddc0a - Added use-external-freetype patch (bug #161187). 2005-07-12 09:56:49 +00:00
Tim Waugh 244cfbf7d1 - Build requires libtiff-devel (bug #162826). 2005-07-11 12:35:01 +00:00
Tim Waugh 8590f53889 Clean up. 2005-06-23 17:32:13 +00:00
Tim Waugh 9693b90353 - Build requires xorg-x11-devel, not XFree86-devel. 2005-06-09 10:27:10 +00:00
Tim Waugh d177acaf0f 8.15-0.rc3.3 2005-06-09 10:07:58 +00:00
Tim Waugh cdd169a7b6 - Include ierrors.h in the devel package. 2005-06-09 10:02:03 +00:00
Tim Waugh acf8e9f01e - Drop 'Provides: libijs.so' because it is incorrect. 2005-06-08 13:58:11 +00:00
Tim Waugh 6d266b1e63 - Build igcref.c with -O0 to work around bug #150771. 2005-06-06 13:36:55 +00:00
Tim Waugh 1d8d9b49a6 - Renumber patches. 2005-06-06 13:35:21 +00:00
Tim Waugh 310a76fc37 More build fixes. 2005-06-03 22:13:52 +00:00
Tim Waugh 923b7d4a06 Build with --enable-dynamic to get -fPIC 2005-06-03 17:21:32 +00:00
Tim Waugh 0057c84fd1 - Add Mandriva's fPIC patch. 2005-06-03 16:45:54 +00:00
Tim Waugh 55e8fbca58 Provides: libijs.so 2005-06-03 16:17:56 +00:00
Tim Waugh bda1546e93 Fixed changelog. 2005-06-03 16:09:01 +00:00
Tim Waugh b7ad57d64e - Switch to ESP Ghostscript.
- 8.15.
- Lots of patches dropped. Perhaps some will need to be re-added.
2005-06-03 16:04:52 +00:00
Tim Waugh 1c8db13590 Fixed changelog 2005-03-10 18:06:45 +00:00
Tim Waugh a309054d1b - Build igcrej.c with -O0 to work around bug #150771. 2005-03-10 17:50:05 +00:00
Tim Waugh b0b63e57dc - Try building gs with -O0. 2005-03-10 12:54:10 +00:00
Tim Waugh 1c615e73d9 - Try building gs with -fno-strict-aliasing. 2005-03-10 12:03:59 +00:00
Tim Waugh e82d38730b - Rebuilt for new GCC. 2005-03-01 17:59:12 +00:00
Tim Waugh acc3e0ee06 Typo in changelog 2005-02-21 16:31:19 +00:00
Tim Waugh d4867991c3 - Fixed inspired by GCC 4. 2005-02-21 16:02:32 +00:00
Tim Waugh 26d7b7a3d0 - Correct permissions for %{_datadir}/ghostscript/Resource (bug #145420). 2005-01-18 11:11:43 +00:00
Tim Waugh f17ffe4c87 7.07-37 2004-12-10 16:32:35 +00:00
Tim Waugh d6f6040e9f - Fixed missing return statement (bug #136757). 2004-12-10 14:52:32 +00:00
Tim Waugh 407e0cf741 - Remove VFlib2 bits (bug #120498). 2004-12-09 15:10:52 +00:00
Tim Waugh aa4475c8c7 - Added /etc/ghostscript to search path and to file manifest (bug #98974). 2004-12-03 12:11:57 +00:00
Miloslav Trmac 55552e4126 - Convert man pages to UTF-8 2004-11-20 18:51:35 +00:00
Tim Waugh d6620b3695 - Fix for bug #136322 (temporary files). 2004-10-20 10:23:35 +00:00
Tim Waugh 495e977fdd - Turn off fontconfig until it's fixed (bug #133353). 2004-09-28 15:51:33 +00:00
Tim Waugh 28df9c5785 Fix build for no-fontconfig 2004-09-28 15:50:20 +00:00
cvsdist 4deb15317f auto-import changelog data from ghostscript-7.07-31.src.rpm
Wed Aug 18 2004 Tim Waugh <twaugh@redhat.com> 7.07-31
- Only ship gsx in the gtk subpackage.
2004-09-09 05:21:38 +00:00
cvsdist e7b0486879 auto-import ghostscript-7.07-30 from ghostscript-7.07-30.src.rpm 2004-09-09 05:21:34 +00:00
cvsdist af6faed769 auto-import ghostscript-7.07-29 from ghostscript-7.07-29.src.rpm 2004-09-09 05:21:23 +00:00
cvsdist c259c84e9e auto-import ghostscript-7.07-28 from ghostscript-7.07-28.src.rpm 2004-09-09 05:21:14 +00:00
cvsdist 31aefac56c auto-import ghostscript-7.07-27 from ghostscript-7.07-27.src.rpm 2004-09-09 05:21:00 +00:00
cvsdist 5357184847 auto-import ghostscript-7.07-26 from ghostscript-7.07-26.src.rpm 2004-09-09 05:20:21 +00:00
cvsdist f6e2595ab3 auto-import ghostscript-7.07-25 from ghostscript-7.07-25.src.rpm 2004-09-09 05:20:16 +00:00
cvsdist 181cea6580 auto-import ghostscript-7.07-19 from ghostscript-7.07-19.src.rpm 2004-09-09 05:19:11 +00:00
cvsdist cd9372848f auto-import changelog data from ghostscript-7.07-15.4.src.rpm
Tue Aug 17 2004 Tim Waugh <twaugh@redhat.com> 7.07-15.4
- Rebuilt.
2004-09-09 05:19:00 +00:00
cvsdist 4cf804b4e9 auto-import changelog data from ghostscript-7.07-15.3.src.rpm
Wed Aug 04 2004 Tim Waugh <twaugh@redhat.com> 7.07-15.3
- Turn on libgs (bug #129062).
2004-09-09 05:18:42 +00:00
cvsdist 4581572020 auto-import changelog data from ghostscript-7.07-15.2.src.rpm
Tue Mar 09 2004 Tim Waugh <twaugh@redhat.com> 7.07-15.2
- Added bjc250gs driver (bug #117860).
2004-09-09 05:18:32 +00:00
cvsdist 084d933387 auto-import changelog data from ghostscript-7.07-15.1.src.rpm
Thu Jan 15 2004 Tim Waugh <twaugh@redhat.com> 7.07-15.1
- Build for Fedora Core 1 printer drivers update.
- Turn off fontconfig.
Tue Jan 06 2004 Tim Waugh <twaugh@redhat.com> 7.07-15
- Build for Fedora Core 1 printer drivers update.
- Conflicts with foomatic before hpijs 1.5 data.
- Make fontconfig optional.
Sat Dec 13 2003 Tim Waugh <twaugh@redhat.com> 7.07-14
- Disable unnecessary debug messages from fontconfig support.
Fri Dec 05 2003 Tim Waugh <twaugh@redhat.com> 7.07-13
- Add fontconfig support (bug #111412).
Thu Nov 27 2003 Tim Waugh <twaugh@redhat.com>
- Build requires libjpeg-devel (bug #110737).
Tue Nov 11 2003 Tim Waugh <twaugh@redhat.com> 7.07-12
- Updated hpijs to 1.5 (bug #109714).
Mon Nov 10 2003 Tim Waugh <twaugh@redhat.com>
- Updated lxm3200 patch (bug #109625).
2004-09-09 05:18:21 +00:00
cvsdist 9ba9caf316 auto-import changelog data from ghostscript-7.07-11.src.rpm
Tue Sep 30 2003 Tim Waugh <twaugh@redhat.com> 7.07-11
- Updated gdevcups.c from CUPS 1.1.19.
- Apply NOMEDIAATTRS patch from CUPS 1.1.19 (bug #105401).
Thu Aug 28 2003 Tim Waugh <twaugh@redhat.com>
- Fix lips4v driver (bug #92337).
Wed Aug 20 2003 Tim Waugh <twaugh@redhat.com> 7.07-10
- Fix compilation problems in hpijs.
Mon Aug 04 2003 Tim Waugh <twaugh@redhat.com> 7.07-9
- Further fix from bug #100685.
Thu Jul 31 2003 Tim Waugh <twaugh@redhat.com> 7.07-8
- Further fix from bug #100685.
Tue Jul 29 2003 Tim Waugh <twaugh@redhat.com> 7.07-7
- Further fix from bug #100685.
Fri Jul 25 2003 Tim Waugh <twaugh@redhat.com> 7.07-6
- Further fix from bug #100557.
Thu Jul 24 2003 Tim Waugh <twaugh@redhat.com> 7.07-5
- Further fix from bug #100557.
- Fix bug #100685.
Wed Jul 23 2003 Tim Waugh <twaugh@redhat.com> 7.07-4
- Fix bug #100557.
Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com> 7.07-3
- rebuilt
Tue May 27 2003 Tim Waugh <twaugh@redhat.com>
- Fix sed usage in ps2epsi (bug #89300).
2004-09-09 05:18:04 +00:00
35 changed files with 3944 additions and 526 deletions

View File

@ -1,16 +0,0 @@
CIDFnmap-cjk-20030115.tar.gz
acro5-cmaps-2001.tar.gz
adobe-cmaps-200202.tar.gz
eplaseren-1.0.2-550.tgz
epson740.tgz
gdevmd2k-0.2a.tar.gz
ghostscript-7.05.tar.bz2
gnu-drivers.tar.gz
gs550j1.tar.gz
gs6.51-cjk-M2-R3.tar.gz
gs704-j-vlib.zip
hpijs-1.3.tar.gz
jpegsrc.v6b.tar.gz
lexmarkgs990908.tar.gz
lxm3200-0.4.1-gs5.50-src.tar.gz
pcl3-3.3.tar.gz

28
.gitignore vendored Normal file
View File

@ -0,0 +1,28 @@
acro5-cmaps-2001.tar.gz
adobe-cmaps-200202.tar.gz
eplaser-3.1.4-705.tgz
epson740.tgz
gdevmd2k-0.2a.tar.gz
ghostscript-7.07.tar.bz2
gs550j1.tar.gz
gs6.51-cjk-M2-R3.tar.gz
gs704-j-vlib.zip
lexmarkgs990908.tar.gz
lxm3200-tweaked-20030501.tar.gz
pcl3-3.3.tar.gz
espgs-8.15rc3-source.tar.bz2
adobe-cmaps-200204.tar.gz
espgs-8.15rc4-source.tar.bz2
espgs-8.15.1-source.tar.bz2
adobe-cmaps-200406.tar.gz
espgs-8.15.2-source.tar.bz2
espgs-8.15.3-source.tar.bz2
espgs-8.15.4-source.tar.bz2
ghostscript-8.60-r8117.tar.bz2
ghostscript-8.60.tar.bz2
ghostscript-8.61.tar.bz2
ghostscript-8.62.tar.bz2
ghostscript-8.63.tar.bz2
ghostscript-8.64.tar.bz2
ghostscript-8.70.tar.xz
ghostscript-8.71.tar.xz

9
CIDFnmap Normal file
View File

@ -0,0 +1,9 @@
%!
% following lines are for CJK fonts.
(CIDFnmap.ja) .runlibfileifexists
(CIDFnmap.ko) .runlibfileifexists
(CIDFnmap.zh_CN) .runlibfileifexists
(CIDFnmap.zh_TW) .runlibfileifexists
% must be at the bottom of line to allow people overriding everything.
(CIDFnmap.local) .runlibfileifexists

View File

@ -1,6 +0,0 @@
# Makefile for source rpm: ghostscript
# $Id$
NAME := ghostscript
SPECFILE = $(firstword $(wildcard *.spec))
include ../common/Makefile.common

10
cidfmap Normal file
View File

@ -0,0 +1,10 @@
%!
% Don't change following line. We should ensure that the original one is surely loaded.
(cidfmap.GS) .runlibfile
% following lines are for CJK fonts.
(cidfmap.ja) .runlibfileifexists
(cidfmap.ko) .runlibfileifexists
(cidfmap.zh_CN) .runlibfileifexists
(cidfmap.zh_TW) .runlibfileifexists
% must be at the bottom of line to allow people overriding everything.
(cidfmap.local) .runlibfileifexists

1414
ghostscript--P-.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
diff -up ghostscript-8.70/cups/gdevcups.c.gdevcups-debug ghostscript-8.70/cups/gdevcups.c
--- ghostscript-8.70/cups/gdevcups.c.gdevcups-debug 2009-05-20 23:30:48.000000000 +0100
+++ ghostscript-8.70/cups/gdevcups.c 2009-11-24 17:16:11.929250977 +0000
@@ -2816,11 +2816,11 @@ cups_put_params(gx_device *pdev, /*
} \
else if (code == 0) \
{ \
- dprintf2("DEBUG: Setting %s to \"%s\"...\n", sname, \
- (char *)stringval.data); \
strncpy(cups->header.name, (const char *)stringval.data, \
stringval.size); \
cups->header.name[stringval.size] = '\0'; \
+ dprintf2("DEBUG: Setting %s to \"%s\"...\n", sname, \
+ cups->header.name); \
}
#define intoption(name, sname, type) \

View File

@ -0,0 +1,124 @@
diff -up ghostscript-8.70/psi/ialloc.c.CVE-2010-1628 ghostscript-8.70/psi/ialloc.c
--- ghostscript-8.70/psi/ialloc.c.CVE-2010-1628 2008-08-28 23:48:19.000000000 +0100
+++ ghostscript-8.70/psi/ialloc.c 2010-07-16 12:15:45.230948203 +0100
@@ -185,7 +185,14 @@ gs_alloc_ref_array(gs_ref_memory_t * mem
*/
chunk_t *pcc = mem->pcc;
ref *end;
+ alloc_change_t *cp = 0;
+ int code = 0;
+ if ((gs_memory_t *)mem != mem->stable_memory) {
+ code = alloc_save_change_alloc(mem, "gs_alloc_ref_array", &cp);
+ if (code < 0)
+ return code;
+ }
obj = gs_alloc_struct_array((gs_memory_t *) mem, num_refs + 1,
ref, &st_refs, cname);
if (obj == 0)
@@ -210,14 +217,10 @@ gs_alloc_ref_array(gs_ref_memory_t * mem
chunk_locate_ptr(obj, &cl);
cl.cp->has_refs = true;
}
- if ((gs_memory_t *)mem != mem->stable_memory) {
- ref_packed **ppr = 0;
- int code = alloc_save_change_alloc(mem, "gs_alloc_ref_array", &ppr);
- if (code < 0)
- return code;
- if (ppr)
- *ppr = (ref_packed *)obj;
- }
+ if (cp) {
+ mem->changes = cp;
+ cp->where = (ref_packed *)obj;
+ }
}
make_array(parr, attrs | mem->space, num_refs, obj);
return 0;
diff -up ghostscript-8.70/psi/idosave.h.CVE-2010-1628 ghostscript-8.70/psi/idosave.h
--- ghostscript-8.70/psi/idosave.h.CVE-2010-1628 2008-08-28 23:48:19.000000000 +0100
+++ ghostscript-8.70/psi/idosave.h 2010-07-16 12:15:45.238073609 +0100
@@ -18,6 +18,22 @@
# define idosave_INCLUDED
/*
+ * Structure for saved change chain for save/restore. Because of the
+ * garbage collector, we need to distinguish the cases where the change
+ * is in a static object, a dynamic ref, or a dynamic struct.
+ */
+typedef struct alloc_change_s alloc_change_t;
+struct alloc_change_s {
+ alloc_change_t *next;
+ ref_packed *where;
+ ref contents;
+#define AC_OFFSET_STATIC (-2) /* static object */
+#define AC_OFFSET_REF (-1) /* dynamic ref */
+#define AC_OFFSET_ALLOCATED (-3) /* a newly allocated ref array */
+ short offset; /* if >= 0, offset within struct */
+};
+
+/*
* Save a change that must be undone by restore. We have to pass the
* pointer to the containing object to alloc_save_change for two reasons:
*
@@ -29,6 +45,7 @@
* relocate the pointer to it from the change record during garbage
* collection.
*/
+
int alloc_save_change(gs_dual_memory_t *dmem, const ref *pcont,
ref_packed *ptr, client_name_t cname);
int alloc_save_change_in(gs_ref_memory_t *mem, const ref *pcont,
@@ -36,6 +53,6 @@ int alloc_save_change_in(gs_ref_memory_t
/* Remove an AC_OFFSET_ALLOCATED element. */
void alloc_save_remove(gs_ref_memory_t *mem, ref_packed *obj, client_name_t cname);
/* Allocate a structure for recording an allocation event. */
-int alloc_save_change_alloc(gs_ref_memory_t *mem, client_name_t cname, ref_packed ***ppr);
+int alloc_save_change_alloc(gs_ref_memory_t *mem, client_name_t cname, alloc_change_t **pcp);
#endif /* idosave_INCLUDED */
diff -up ghostscript-8.70/psi/isave.c.CVE-2010-1628 ghostscript-8.70/psi/isave.c
--- ghostscript-8.70/psi/isave.c.CVE-2010-1628 2008-08-28 23:48:19.000000000 +0100
+++ ghostscript-8.70/psi/isave.c 2010-07-16 12:15:45.245073557 +0100
@@ -156,22 +156,6 @@ print_save(const char *str, uint spacen,
/* A link to igcref.c . */
ptr_proc_reloc(igc_reloc_ref_ptr_nocheck, ref_packed);
-/*
- * Structure for saved change chain for save/restore. Because of the
- * garbage collector, we need to distinguish the cases where the change
- * is in a static object, a dynamic ref, or a dynamic struct.
- */
-typedef struct alloc_change_s alloc_change_t;
-struct alloc_change_s {
- alloc_change_t *next;
- ref_packed *where;
- ref contents;
-#define AC_OFFSET_STATIC (-2) /* static object */
-#define AC_OFFSET_REF (-1) /* dynamic ref */
-#define AC_OFFSET_ALLOCATED (-3) /* a newly allocated ref array */
- short offset; /* if >= 0, offset within struct */
-};
-
static
CLEAR_MARKS_PROC(change_clear_marks)
{
@@ -519,7 +503,7 @@ alloc_save_change(gs_dual_memory_t * dme
/* Allocate a structure for recording an allocation event. */
int
-alloc_save_change_alloc(gs_ref_memory_t *mem, client_name_t cname, ref_packed ***ppr)
+alloc_save_change_alloc(gs_ref_memory_t *mem, client_name_t cname, alloc_change_t **pcp)
{
register alloc_change_t *cp;
@@ -533,8 +517,7 @@ alloc_save_change_alloc(gs_ref_memory_t
cp->where = 0;
cp->offset = AC_OFFSET_ALLOCATED;
make_null(&cp->contents);
- mem->changes = cp;
- *ppr = &cp->where;
+ *pcp = cp;
return 1;
}

View File

@ -0,0 +1,9 @@
diff -up ghostscript-8.71/Resource/Init/Fontmap.Fontmap.local ghostscript-8.71/Resource/Init/Fontmap
--- ghostscript-8.71/Resource/Init/Fontmap.Fontmap.local 2008-08-08 05:22:38.000000000 +0100
+++ ghostscript-8.71/Resource/Init/Fontmap 2010-09-03 11:53:47.273865979 +0100
@@ -2,3 +2,5 @@
% See Fontmap.GS for the syntax of real Fontmap files.
%% Replace 1 (Fontmap.GS)
(Fontmap.GS) .runlibfile
+% must be at the bottom of line to allow people overriding everything.
+(Fontmap.local) .runlibfileifexists

View File

@ -0,0 +1,704 @@
diff -up ghostscript-8.71/base/bcwin32.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/bcwin32.mak
--- ghostscript-8.71/base/bcwin32.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000
+++ ghostscript-8.71/base/bcwin32.mak 2011-02-01 11:47:56.202759760 +0000
@@ -78,13 +78,10 @@ GS_LIB_DEFAULT=$(GSROOTDIR)/Resource/Ini
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
+# and confusion problems, but may be convenient sometimes.
!ifndef SEARCH_HERE_FIRST
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
!endif
# Define the name of the interpreter initialization file.
diff -up ghostscript-8.71/base/macos-mcp.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/macos-mcp.mak
--- ghostscript-8.71/base/macos-mcp.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000
+++ ghostscript-8.71/base/macos-mcp.mak 2011-02-01 11:47:56.203759868 +0000
@@ -53,12 +53,9 @@ GS_DOCDIR=:doc
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
+# and confusion problems, but may be convenient sometimes.
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
# Define the name of the interpreter initialization file.
# (There is no reason to change this.)
diff -up ghostscript-8.71/base/macosx.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/macosx.mak
--- ghostscript-8.71/base/macosx.mak.SEARCH_HERE_FIRST 2008-10-02 20:33:22.000000000 +0100
+++ ghostscript-8.71/base/macosx.mak 2011-02-01 11:47:56.204759975 +0000
@@ -78,12 +78,9 @@ GS_LIB_DEFAULT=$(gsdatadir)/Resource/Ini
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
+# and confusion problems, but may be convenient sometimes.
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
# Define the name of the interpreter initialization file.
# (There is no reason to change this.)
diff -up ghostscript-8.71/base/Makefile.in.SEARCH_HERE_FIRST ghostscript-8.71/base/Makefile.in
--- ghostscript-8.71/base/Makefile.in.SEARCH_HERE_FIRST 2009-12-18 07:04:10.000000000 +0000
+++ ghostscript-8.71/base/Makefile.in 2011-02-01 11:47:56.209760511 +0000
@@ -96,12 +96,9 @@ GS_CACHE_DIR="~/.ghostscript/cache/"
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
+# and confusion problems, but may be convenient sometimes.
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
# Define the name of the interpreter initialization file.
# (There is no reason to change this.)
diff -up ghostscript-8.71/base/msvclib.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/msvclib.mak
--- ghostscript-8.71/base/msvclib.mak.SEARCH_HERE_FIRST 2010-01-07 10:53:36.000000000 +0000
+++ ghostscript-8.71/base/msvclib.mak 2011-02-01 11:47:56.210760618 +0000
@@ -49,13 +49,10 @@ GS_LIB_DEFAULT=$(GSROOTDIR)/Resource/Ini
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
+# and confusion problems, but may be convenient sometimes.
!ifndef SEARCH_HERE_FIRST
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
!endif
# Define the name of the interpreter initialization file.
diff -up ghostscript-8.71/base/openvms.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/openvms.mak
--- ghostscript-8.71/base/openvms.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000
+++ ghostscript-8.71/base/openvms.mak 2011-02-01 11:47:56.211760726 +0000
@@ -68,12 +68,9 @@ GS_LIB_DEFAULT=GS_ROOT:[RESOURCE.INIT],G
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
+# and confusion problems, but may be convenient sometimes.
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
# Define the name of the interpreter initialization file.
# (There is no reason to change this.)
diff -up ghostscript-8.71/base/openvms.mmk.SEARCH_HERE_FIRST ghostscript-8.71/base/openvms.mmk
--- ghostscript-8.71/base/openvms.mmk.SEARCH_HERE_FIRST 2009-01-08 09:17:18.000000000 +0000
+++ ghostscript-8.71/base/openvms.mmk 2011-02-01 11:47:56.213760940 +0000
@@ -73,12 +73,9 @@ GS_LIB_DEFAULT=GS_LIB
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
+# and confusion problems, but may be convenient sometimes.
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
# Define the name of the interpreter initialization file.
# (There is no reason to change this.)
diff -up ghostscript-8.71/base/ugcclib.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/ugcclib.mak
--- ghostscript-8.71/base/ugcclib.mak.SEARCH_HERE_FIRST 2008-11-05 20:41:22.000000000 +0000
+++ ghostscript-8.71/base/ugcclib.mak 2011-02-01 11:47:56.214761048 +0000
@@ -30,7 +30,7 @@ gsdir = /usr/local/share/ghostscript
gsdatadir = $(gsdir)/$(GS_DOT_VERSION)
GS_DOCDIR=$(gsdatadir)/doc
GS_LIB_DEFAULT=$(gsdatadir)/Resource/Init:$(gsdatadir)/lib:$(gsdatadir)/Resource/Font
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
GS_INIT=gs_init.ps
#GENOPT=-DDEBUG
diff -up ghostscript-8.71/base/unixansi.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/unixansi.mak
--- ghostscript-8.71/base/unixansi.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000
+++ ghostscript-8.71/base/unixansi.mak 2011-02-01 11:47:56.215761155 +0000
@@ -73,12 +73,9 @@ GS_LIB_DEFAULT=$(gsdatadir)/Resource/Ini
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
+# and confusion problems, but may be convenient sometimes.
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
# Define the name of the interpreter initialization file.
# (There is no reason to change this.)
diff -up ghostscript-8.71/base/unix-gcc.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/unix-gcc.mak
--- ghostscript-8.71/base/unix-gcc.mak.SEARCH_HERE_FIRST 2009-11-11 15:50:28.000000000 +0000
+++ ghostscript-8.71/base/unix-gcc.mak 2011-02-01 11:47:56.216761262 +0000
@@ -77,12 +77,9 @@ GS_LIB_DEFAULT=$(gsdatadir)/Resource/Ini
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
+# and confusion problems, but may be convenient sometimes.
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
# Define the name of the interpreter initialization file.
# (There is no reason to change this.)
diff -up ghostscript-8.71/base/watclib.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/watclib.mak
--- ghostscript-8.71/base/watclib.mak.SEARCH_HERE_FIRST 2009-01-08 09:17:18.000000000 +0000
+++ ghostscript-8.71/base/watclib.mak 2011-02-01 11:47:56.217761369 +0000
@@ -20,7 +20,7 @@ AROOTDIR=c:/gs
GSROOTDIR=$(AROOTDIR)/gs$(GS_DOT_VERSION)
GS_DOCDIR=$(GSROOTDIR)/doc
GS_LIB_DEFAULT=$(GSROOTDIR)/Resource/Init\;$(GSROOTDIR)/lib\;$(GSROOTDIR)/Resource/Font\;$(AROOTDIR)/fonts
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
GS_INIT=gs_init.ps
!ifndef DEBUG
diff -up ghostscript-8.71/base/watcw32.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/watcw32.mak
--- ghostscript-8.71/base/watcw32.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000
+++ ghostscript-8.71/base/watcw32.mak 2011-02-01 11:47:56.218761477 +0000
@@ -54,11 +54,8 @@ GS_LIB_DEFAULT=$(GSROOTDIR)/Resource/Ini
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
# Define the name of the interpreter initialization file.
# (There is no reason to change this.)
diff -up ghostscript-8.71/doc/Use.htm.SEARCH_HERE_FIRST ghostscript-8.71/doc/Use.htm
--- ghostscript-8.71/doc/Use.htm.SEARCH_HERE_FIRST 2010-02-10 18:17:48.000000000 +0000
+++ ghostscript-8.71/doc/Use.htm 2011-02-01 11:47:56.222761906 +0000
@@ -823,8 +823,8 @@ file name specifies an absolute path.
using the name given. Otherwise it tries directories in this order:
<ol>
-<li>The current directory (unless disabled by the
-<a href="#P-_switch"><code>-P-</code> switch</a>);
+<li>The current directory if enabled by the
+<a href="#P-_switch"><code>-P</code> switch</a>;
<li>The directories specified by <a href="#I_switch"><code>-I</code>
switches</a> in the command line, if any;
@@ -847,13 +847,10 @@ into the executable ;
directory or a list of directories separated by a character appropriate for
the operating system ("<code>:</code>" on Unix systems,
"<code>,</code>" on VMS systems, and
-"<code>;</code>" on MS Windows systems). We think that trying
-the current directory first is a very bad idea -- it opens serious security
-loopholes and can lead to very confusing errors if one has more than one
-version of Ghostscript in one's environment -- but when we attempted to
-change it, users insisted that we change it back. You can disable looking
-in the current directory first by using the
-<a href="#P_switch"><code>-P-</code> switch</a>.
+"<code>;</code>" on MS Windows systems).
+By default, Ghostscript no longer searches the current directory first
+but provides <a href="#P_switch"><code>-P</code> switch</a> for a degree
+of backward compatibility.
<p>
Note that Ghostscript does not use this file searching algorithm for the
@@ -2061,14 +2058,14 @@ for library files.
<dl>
<dt><a name="P_switch"></a><code>-P</code>
<dd>Makes Ghostscript look first in the current directory for library
-files. This is currently the default.
+files.
</dl>
<dl>
<dt><a name="P-_switch"></a><code>-P-</code>
<dd>Makes Ghostscript <b><em>not</em></b> look first in the current
directory for library files (unless, of course, the first explicitly
-supplied directory is "<code>.</code>").
+supplied directory is "<code>.</code>"). This is now the default.
</dl>
<h4><a name="Parameters"></a>Setting parameters</h4>
diff -up ghostscript-8.71/man/gs.1.SEARCH_HERE_FIRST ghostscript-8.71/man/gs.1
--- ghostscript-8.71/man/gs.1.SEARCH_HERE_FIRST 2010-02-10 18:17:48.000000000 +0000
+++ ghostscript-8.71/man/gs.1 2011-02-01 11:47:56.229762657 +0000
@@ -208,6 +208,12 @@ whereas \fB\-sname=35\fR is equivalent t
.br
/name (35) def
.TP
+.B \-P
+Makes Ghostscript to look first in the current directory for library files.
+By default, Ghostscript no longer looks in the current directory,
+unless, of course, the first explicitly supplied directory is "." in \fB-I\fR.
+See also the \fBINITIALIZATION FILES\fR section below, and bundled
+\fBUse.htm\fR for detailed discussion on search paths and how Ghostcript finds files.
.B \-q
Quiet startup: suppress normal startup messages, and also do the
equivalent of \fB\-dQUIET\fR.
diff -up ghostscript-8.71/psi/msvc32.mak.SEARCH_HERE_FIRST ghostscript-8.71/psi/msvc32.mak
--- ghostscript-8.71/psi/msvc32.mak.SEARCH_HERE_FIRST 2010-02-02 18:14:37.000000000 +0000
+++ ghostscript-8.71/psi/msvc32.mak 2011-02-01 11:47:56.230762764 +0000
@@ -100,13 +100,10 @@ GS_LIB_DEFAULT=$(GSROOTDIR)/Resource/Ini
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
+# and confusion problems, but may be convenient sometimes.
!ifndef SEARCH_HERE_FIRST
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
!endif
# Define the name of the interpreter initialization file.
diff -up ghostscript-8.71/psi/os2.mak.SEARCH_HERE_FIRST ghostscript-8.71/psi/os2.mak
--- ghostscript-8.71/psi/os2.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000
+++ ghostscript-8.71/psi/os2.mak 2011-02-01 11:47:56.232762979 +0000
@@ -54,12 +54,9 @@ GS_LIB_DEFAULT=$(GSROOTDIR)/Resource/Ini
# Define whether or not searching for initialization files should always
# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
+# and confusion problems, but may be convenient sometimes.
-SEARCH_HERE_FIRST=1
+SEARCH_HERE_FIRST=0
# Define the name of the interpreter initialization file.
# (There is no reason to change this.)
diff -up ghostscript-8.71/psi/zfile.c.SEARCH_HERE_FIRST ghostscript-8.71/psi/zfile.c
--- ghostscript-8.71/psi/zfile.c.SEARCH_HERE_FIRST 2009-10-04 13:42:07.000000000 +0100
+++ ghostscript-8.71/psi/zfile.c 2011-02-01 11:47:56.234763193 +0000
@@ -486,8 +486,13 @@ zstatus(i_ctx_t *i_ctx_p)
struct stat fstat;
int code = parse_file_name(op, &pname, i_ctx_p->LockFilePermissions);
- if (code < 0)
+ if (code < 0) {
+ if (code == e_undefinedfilename) {
+ make_bool(op, 0);
+ code = 0;
+ }
return code;
+ }
code = gs_terminate_file_name(&pname, imemory, "status");
if (code < 0)
return code;
@@ -903,6 +908,91 @@ check_file_permissions_aux(i_ctx_t *i_ct
}
+/* return zero for success, -ve for error, +1 for continue */
+static int
+lib_file_open_search_with_no_combine(gs_file_path_ptr lib_path, const gs_memory_t *mem, i_ctx_t *i_ctx_p,
+ const char *fname, uint flen, char *buffer, int blen, uint *pclen, ref *pfile,
+ gx_io_device *iodev, bool starting_arg_file, char *fmode)
+{
+ stream *s;
+ uint blen1 = blen;
+ if (gp_file_name_reduce(fname, flen, buffer, &blen1) != gp_combine_success)
+ goto skip;
+ if (iodev_os_open_file(iodev, (const char *)buffer, blen1,
+ (const char *)fmode, &s, (gs_memory_t *)mem) == 0) {
+ if (starting_arg_file ||
+ check_file_permissions_aux(i_ctx_p, buffer, blen1) >= 0) {
+ *pclen = blen1;
+ make_stream_file(pfile, s, "r");
+ return 0;
+ }
+ sclose(s);
+ return_error(e_invalidfileaccess);
+ }
+ skip:;
+ return 1;
+}
+
+/* return zero for success, -ve for error, +1 for continue */
+static int
+lib_file_open_search_with_combine(gs_file_path_ptr lib_path, const gs_memory_t *mem, i_ctx_t *i_ctx_p,
+ const char *fname, uint flen, char *buffer, int blen, uint *pclen, ref *pfile,
+ gx_io_device *iodev, bool starting_arg_file, char *fmode)
+{
+ stream *s;
+ const gs_file_path *pfpath = lib_path;
+ uint pi;
+
+ for (pi = 0; pi < r_size(&pfpath->list); ++pi) {
+ const ref *prdir = pfpath->list.value.refs + pi;
+ const char *pstr = (const char *)prdir->value.const_bytes;
+ uint plen = r_size(prdir), blen1 = blen;
+ gs_parsed_file_name_t pname;
+ gp_file_name_combine_result r;
+
+ /* We need to concatenate and parse the file name here
+ * if this path has a %device% prefix. */
+ if (pstr[0] == '%') {
+ int code;
+
+ /* We concatenate directly since gp_file_name_combine_*
+ * rules are not correct for other devices such as %rom% */
+ code = gs_parse_file_name(&pname, pstr, plen);
+ if (code < 0)
+ continue;
+ memcpy(buffer, pname.fname, pname.len);
+ memcpy(buffer+pname.len, fname, flen);
+ code = pname.iodev->procs.open_file(pname.iodev, buffer, pname.len + flen, fmode,
+ &s, (gs_memory_t *)mem);
+ if (code < 0)
+ continue;
+ make_stream_file(pfile, s, "r");
+ /* fill in the buffer with the device concatenated */
+ memcpy(buffer, pstr, plen);
+ memcpy(buffer+plen, fname, flen);
+ *pclen = plen + flen;
+ return 0;
+ } else {
+ r = gp_file_name_combine(pstr, plen,
+ fname, flen, false, buffer, &blen1);
+ if (r != gp_combine_success)
+ continue;
+ if (iodev_os_open_file(iodev, (const char *)buffer, blen1, (const char *)fmode,
+ &s, (gs_memory_t *)mem) == 0) {
+ if (starting_arg_file ||
+ check_file_permissions_aux(i_ctx_p, buffer, blen1) >= 0) {
+ *pclen = blen1;
+ make_stream_file(pfile, s, "r");
+ return 0;
+ }
+ sclose(s);
+ return_error(e_invalidfileaccess);
+ }
+ }
+ }
+ return 1;
+}
+
/* Return a file object of of the file searched for using the search paths. */
/* The fname cannot contain a device part (%...%) but the lib paths might. */
/* The startup code calls this to open the initialization file gs_init.ps. */
@@ -917,8 +1007,9 @@ lib_file_open(gs_file_path_ptr lib_path
bool search_with_no_combine = false;
bool search_with_combine = false;
char fmode[4] = { 'r', 0, 0, 0 }; /* room for binary suffix */
- stream *s;
gx_io_device *iodev = iodev_default;
+ gs_main_instance *minst = get_minst_from_memory(mem);
+ int code;
/* when starting arg files (@ files) iodev_default is not yet set */
if (iodev == 0)
@@ -932,75 +1023,36 @@ lib_file_open(gs_file_path_ptr lib_path
search_with_no_combine = starting_arg_file;
search_with_combine = true;
}
- if (search_with_no_combine) {
- uint blen1 = blen;
-
- if (gp_file_name_reduce(fname, flen, buffer, &blen1) != gp_combine_success)
- goto skip;
- if (iodev_os_open_file(iodev, (const char *)buffer, blen1,
- (const char *)fmode, &s, (gs_memory_t *)mem) == 0) {
- if (starting_arg_file ||
- check_file_permissions_aux(i_ctx_p, buffer, blen1) >= 0) {
- *pclen = blen1;
- make_stream_file(pfile, s, "r");
- return 0;
- }
- sclose(s);
- return_error(e_invalidfileaccess);
- }
- skip:;
- }
- if (search_with_combine) {
- const gs_file_path *pfpath = lib_path;
- uint pi;
-
- for (pi = 0; pi < r_size(&pfpath->list); ++pi) {
- const ref *prdir = pfpath->list.value.refs + pi;
- const char *pstr = (const char *)prdir->value.const_bytes;
- uint plen = r_size(prdir), blen1 = blen;
- gs_parsed_file_name_t pname;
- gp_file_name_combine_result r;
-
- /* We need to concatenate and parse the file name here
- * if this path has a %device% prefix. */
- if (pstr[0] == '%') {
- int code;
-
- /* We concatenate directly since gp_file_name_combine_*
- * rules are not correct for other devices such as %rom% */
- code = gs_parse_file_name(&pname, pstr, plen);
- if (code < 0)
- continue;
- memcpy(buffer, pname.fname, pname.len);
- memcpy(buffer+pname.len, fname, flen);
- code = pname.iodev->procs.open_file(pname.iodev, buffer, pname.len + flen, fmode,
- &s, (gs_memory_t *)mem);
- if (code < 0)
- continue;
- make_stream_file(pfile, s, "r");
- /* fill in the buffer with the device concatenated */
- memcpy(buffer, pstr, plen);
- memcpy(buffer+plen, fname, flen);
- *pclen = plen + flen;
- return 0;
- } else {
- r = gp_file_name_combine(pstr, plen,
- fname, flen, false, buffer, &blen1);
- if (r != gp_combine_success)
- continue;
- if (iodev_os_open_file(iodev, (const char *)buffer, blen1, (const char *)fmode,
- &s, (gs_memory_t *)mem) == 0) {
- if (starting_arg_file ||
- check_file_permissions_aux(i_ctx_p, buffer, blen1) >= 0) {
- *pclen = blen1;
- make_stream_file(pfile, s, "r");
- return 0;
- }
- sclose(s);
- return_error(e_invalidfileaccess);
- }
- }
- }
+ if (minst->search_here_first) {
+ if (search_with_no_combine) {
+ code = lib_file_open_search_with_no_combine(lib_path, mem, i_ctx_p,
+ fname, flen, buffer, blen, pclen, pfile,
+ iodev, starting_arg_file, fmode);
+ if (code <= 0) /* +ve means continue continue */
+ return code;
+ }
+ if (search_with_combine) {
+ code = lib_file_open_search_with_combine(lib_path, mem, i_ctx_p,
+ fname, flen, buffer, blen, pclen, pfile,
+ iodev, starting_arg_file, fmode);
+ if (code <= 0) /* +ve means continue searching */
+ return code;
+ }
+ } else {
+ if (search_with_combine) {
+ code = lib_file_open_search_with_combine(lib_path, mem, i_ctx_p,
+ fname, flen, buffer, blen, pclen, pfile,
+ iodev, starting_arg_file, fmode);
+ if (code <= 0) /* +ve means continue searching */
+ return code;
+ }
+ if (search_with_no_combine) {
+ code = lib_file_open_search_with_no_combine(lib_path, mem, i_ctx_p,
+ fname, flen, buffer, blen, pclen, pfile,
+ iodev, starting_arg_file, fmode);
+ if (code <= 0) /* +ve means continue searching */
+ return code;
+ }
}
return_error(e_undefinedfilename);
}
diff -up ghostscript-8.71/Resource/Init/gs_fonts.ps.SEARCH_HERE_FIRST ghostscript-8.71/Resource/Init/gs_fonts.ps
--- ghostscript-8.71/Resource/Init/gs_fonts.ps.SEARCH_HERE_FIRST 2011-02-01 11:47:56.111749998 +0000
+++ ghostscript-8.71/Resource/Init/gs_fonts.ps 2011-02-01 11:47:56.236763408 +0000
@@ -948,7 +948,7 @@ $error /SubstituteFont { } put
if
}
{ % Font file name
- .loadfontloop { true exit } if
+ //true .loadfontloop { //true exit } if
}
ifelse
}
@@ -991,39 +991,47 @@ $error /SubstituteFont { } put
/.genericrfn where {
pop
pop dup .fonttempstring /FontResourceDir getsystemparam .genericrfn
- .loadfontloop {
+ //false .loadfontloop {
//true
} {
- dup .nametostring .loadfontloop
+ dup .nametostring
+ //true .loadfontloop
} ifelse
} {
- .loadfontloop
+ //true .loadfontloop
} ifelse
} bind def
-/.loadfontloop { % <fontname> <filename> .loadfontloop
+/.loadfontloop { % <fontname> <filename> <libflag> .loadfontloop
% <font> true
% -or-
% <fontname> false
% See above regarding the use of 'loop'.
{ % Is the font name a string?
- dup type /stringtype ne
- { QUIET not
+ 1 index type /stringtype ne
+ { pop
+ QUIET not
{ (Can't find font with non-string name: ) print dup =only (.) = flush
}
- if pop false exit
- }
- if
- % Can we open the file?
- findlibfile not
- { QUIET not
+ if pop //false exit
+ } if
+
+ % check <libflag>
+ {
+ findlibfile not
+ } {
+ dup (r) { file } stopped {
+ pop pop //true
+ } {
+ //false
+ } ifelse
+ } ifelse {
+ QUIET not
{ (Can't find \(or can't open\) font file ) print dup print
(.) = flush
}
if pop false exit
- }
- if
-
- % Stack: fontname fontfilename fontfile
+ } if
+ % Stack: fontname fontfilename fontfile
DISKFONTS
{ .currentglobal true .setglobal
2 index (r) file
diff -up ghostscript-8.71/Resource/Init/gs_res.ps.SEARCH_HERE_FIRST ghostscript-8.71/Resource/Init/gs_res.ps
--- ghostscript-8.71/Resource/Init/gs_res.ps.SEARCH_HERE_FIRST 2010-01-31 20:30:13.000000000 +0000
+++ ghostscript-8.71/Resource/Init/gs_res.ps 2011-02-01 11:47:56.238763622 +0000
@@ -287,7 +287,8 @@ systemdict begin
} {
(Resource) search {
exch concatstrings
- exch 0 1 getinterval concatstrings exit
+ exch pop
+ .file_name_separator concatstrings exit
} {
pop
} ifelse
@@ -557,46 +558,29 @@ status {
{ forall } 0 get
currentdict end 2 .execn begin
} bind
-/.file_name_is_iodevice_or_absolute
-{ {
- dup length 0 gt {
- dup 0 get (%) 0 get eq {
- pop true exit
- } if
- } if
- .file_name_is_absolute exit
- } loop
-} bind def
-/ResourceFileName
- { % /in (scr)
- exch //.rfnstring cvs % (scr) (n)
- /GenericResourcePathSep getsystemparam exch % (scr) (/) (n)
- Category .namestring % (scr) (/) (n) (c)
- 3 1 roll % (scr) (c) (/) (n)
- concatstrings concatstrings % (scr) (c/n)
- /GenericResourceDir getsystemparam //.file_name_is_iodevice_or_absolute exec not {
- /GenericResourceDir getsystemparam exch concatstrings
- findlibfile
- { % (scr) (p/c/n) file
- pop exch copy true % (p/c/n) true
- } { % (scr) (c/n)
- false % (scr) (c/n) false
- } ifelse
- } { % (scr) (c/n)
- false % (scr) (c/n) false
- } ifelse
- not { % (scr) (c/n)
- /GenericResourceDir getsystemparam % (scr) (c/n) (d/)
- dup length exch % (scr) (c/n) Ld (d/)
- 3 index copy pop % (scr') (c/n) Ld
- 1 index length % (scr') (c/n) Ld Lcn
- 3 index 3 copy pop % (scr') (c/n) Ld Lcn (scr') Ld Lcn
- getinterval % (scr') (c/n) Ld Lcn (scr[Ld:Lcn])
- 4 3 roll exch % (scr') Ld Lcn (c/n) (scr[Ld:Lcn])
- copy pop % (scr'') Ld Lcn
- add 0 exch getinterval % (scr''[0:Ld+Lcn])
- } if
- } bind
+
+/ResourceFileName { % /in (scr) --> (p/c/n)
+ exch //.rfnstring cvs % (scr) (n)
+ /GenericResourcePathSep getsystemparam exch % (scr) (/) (n)
+ Category .namestring % (scr) (/) (n) (c)
+ 3 1 roll % (scr) (c) (/) (n)
+ concatstrings concatstrings % (scr) (c/n)
+ /GenericResourceDir getsystemparam 1 index % (scr) (c/n) (p/) (c/n)
+ concatstrings % (scr) (c/n) (p/c/n)
+ dup status {
+ pop pop pop pop exch pop % (scr) (p/c/n)
+ } {
+ exch % (scr) (p/c/n) (c/n)
+ .libfile {
+ dup .filename pop % (scr) (p/c/n) file (p/c/n')
+ exch closefile % (scr) (p/c/n) (p/c/n')
+ exch pop % (scr) (p/c/n')
+ } {
+ pop % (scr) (p/c/n)
+ } ifelse
+ } ifelse
+ exch copy % (p/c/n)
+} bind
% Additional entries
diff -up ghostscript-8.71/toolbin/msvcxml.bat.SEARCH_HERE_FIRST ghostscript-8.71/toolbin/msvcxml.bat
--- ghostscript-8.71/toolbin/msvcxml.bat.SEARCH_HERE_FIRST 2009-01-26 17:16:47.000000000 +0000
+++ ghostscript-8.71/toolbin/msvcxml.bat 2011-02-01 11:47:56.241763944 +0000
@@ -1428,7 +1428,7 @@ echo ^<UserMacro Name="GS_DOCDIR" Valu
echo ^<UserMacro Name="GS_INIT" Value="gs_init.ps" /^>
echo ^<UserMacro Name="GS_LIB_DEFAULT" Value="$(GSROOTDIR)/lib;$(GSROOTDIR)/Resource/Font;$(AROOTDIR)/fonts" /^>
echo ^<UserMacro Name="GS_REVISION" Value="$(GS_VERSION)" /^>
-echo ^<UserMacro Name="SEARCH_HERE_FIRST" Value="1" /^>
+echo ^<UserMacro Name="SEARCH_HERE_FIRST" Value="0" /^>
echo ^</VisualStudioPropertySheet^>
goto end

View File

@ -0,0 +1,12 @@
diff -up ghostscript-8.71/base/gdevbbox.c.bbox-close ghostscript-8.71/base/gdevbbox.c
--- ghostscript-8.71/base/gdevbbox.c.bbox-close 2010-01-19 15:48:57.000000000 +0000
+++ ghostscript-8.71/base/gdevbbox.c 2010-09-02 13:03:37.742943978 +0100
@@ -249,7 +249,7 @@ bbox_close_device(gx_device * dev)
* This device was created as a wrapper for a compositor.
* Just free the devices.
*/
- int code = (bdev->forward_open_close ? gs_closedevice(tdev) : 0);
+ int code = (tdev && bdev->forward_open_close ? gs_closedevice(tdev) : 0);
gs_free_object(dev->memory, dev, "bbox_close_device(composite)");
return code;

View File

@ -0,0 +1,17 @@
diff -up ghostscript-8.70/cups/cups.mak.cups-filters ghostscript-8.70/cups/cups.mak
--- ghostscript-8.70/cups/cups.mak.cups-filters 2009-10-15 12:42:27.531402610 +0100
+++ ghostscript-8.70/cups/cups.mak 2009-10-15 12:44:14.835402533 +0100
@@ -63,10 +63,10 @@ install-cups: cups
$(INSTALL_PROGRAM) $(PDFTORASTER_XE) $(DESTDIR)$(CUPSSERVERBIN)/filter; \
fi
$(INSTALL_PROGRAM) cups/pstopxl $(DESTDIR)$(CUPSSERVERBIN)/filter
- -mkdir -p $(DESTDIR)$(CUPSSERVERROOT)
- $(INSTALL_DATA) cups/pstoraster.convs $(DESTDIR)$(CUPSSERVERROOT)
+ -mkdir -p $(DESTDIR)$(CUPSDATA)/mime
+ $(INSTALL_DATA) cups/pstoraster.convs $(DESTDIR)$(CUPSDATA)/mime
if [ "$(CUPSPDFTORASTER)" = "1" ]; then \
- $(INSTALL_DATA) cups/pdftoraster.convs $(DESTDIR)$(CUPSSERVERROOT); \
+ $(INSTALL_DATA) cups/pdftoraster.convs $(DESTDIR)$(CUPSDATA)/mime; \
fi
-mkdir -p $(DESTDIR)$(CUPSDATA)/model
$(INSTALL_DATA) cups/pxlcolor.ppd $(DESTDIR)$(CUPSDATA)/model

View File

@ -0,0 +1,78 @@
diff -up ghostscript-8.71/cups/gdevcups.c.cups-realloc-color-depth ghostscript-8.71/cups/gdevcups.c
--- ghostscript-8.71/cups/gdevcups.c.cups-realloc-color-depth 2010-03-15 14:38:08.155372454 +0000
+++ ghostscript-8.71/cups/gdevcups.c 2010-03-15 14:38:12.208372310 +0000
@@ -975,7 +975,8 @@ cups_map_cmyk(gx_device *pdev, /* I - D
frac k, /* I - Black value */
frac *out) /* O - Device colors */
{
- int c0, c1, c2, c3; /* Temporary color values */
+ int c0 = 0, c1 = 0,
+ c2 = 0, c3 = 0; /* Temporary color values */
float rr, rg, rb, /* Real RGB colors */
ciex, ciey, ciez, /* CIE XYZ colors */
ciey_yn, /* Normalized luminance */
@@ -2703,9 +2704,13 @@ cups_put_params(gx_device *pdev, /*
int color_set; /* Were the color attrs set? */
gdev_prn_space_params sp; /* Space parameter data */
int width, /* New width of page */
- height; /* New height of page */
+ height, /* New height of page */
+ colorspace, /* New color space */
+ bitspercolor; /* New bits per color */
static int width_old = 0, /* Previous width */
- height_old = 0; /* Previous height */
+ height_old = 0, /* Previous height */
+ colorspace_old = 0,/* Previous color space */
+ bitspercolor_old = 0;/* Previous bits per color */
ppd_attr_t *backside = NULL,
*backsiderequiresflippedmargins = NULL;
float swap;
@@ -2800,9 +2805,10 @@ cups_put_params(gx_device *pdev, /*
else if (code == 0) \
{ \
dprintf1("DEBUG: Setting %s to", sname); \
- for (i = 0; i < count; i ++) \
- dprintf1(" %d", (unsigned)(arrayval.data[i])); \
- cups->header.name[i] = (unsigned)arrayval.data[i]; \
+ for (i = 0; i < count; i ++) { \
+ dprintf1(" %d", (unsigned)(arrayval.data[i])); \
+ cups->header.name[i] = (unsigned)(arrayval.data[i]); \
+ } \
dprintf("...\n"); \
}
@@ -3243,23 +3249,31 @@ cups_put_params(gx_device *pdev, /*
}
#endif /* CUPS_RASTER_SYNCv1 */
+ colorspace = cups->header.cupsColorSpace;
+ bitspercolor = cups->header.cupsBitsPerColor;
+
/*
* Don't reallocate memory unless the device has been opened...
* Also reallocate only if the size has actually changed...
*/
- if (pdev->is_open && (width != width_old || height != height_old))
+ if (pdev->is_open &&
+ (width != width_old || height != height_old ||
+ colorspace != colorspace_old || bitspercolor != bitspercolor_old))
{
width_old = width;
height_old = height;
+ colorspace_old = colorspace;
+ bitspercolor_old = bitspercolor;
/*
* Device is open and size has changed, so reallocate...
*/
- dprintf4("DEBUG2: Reallocating memory, [%.0f %.0f] = %dx%d pixels...\n",
- pdev->MediaSize[0], pdev->MediaSize[1], width, height);
+ dprintf6("DEBUG2: Reallocating memory, [%.0f %.0f] = %dx%d pixels, color space: %d, bits per color: %d...\n",
+ pdev->MediaSize[0], pdev->MediaSize[1], width, height,
+ colorspace, bitspercolor);
sp = ((gx_device_printer *)pdev)->space_params;

View File

@ -0,0 +1,50 @@
diff -up ghostscript-8.71/base/seexec.c.epstopdf-failure ghostscript-8.71/base/seexec.c
--- ghostscript-8.71/base/seexec.c.epstopdf-failure 2009-08-14 05:12:58.000000000 +0100
+++ ghostscript-8.71/base/seexec.c 2010-08-26 14:53:05.662840885 +0100
@@ -165,7 +165,11 @@ hp: r = *pr;
r.limit = r.ptr + ss->hex_left;
status = s_hex_process(&r, pw, &ss->odd,
(ss->is_leading_space ? hex_ignore_leading_whitespace : hex_break_on_whitespace));
- ss->is_leading_space = (status == 2);
+ if (status == 2) {
+ ss->is_leading_space = true;
+ status = 1;
+ } else
+ ss->is_leading_space = false;
pr->ptr = r.ptr;
ss->hex_left -= r.ptr - start;
/*
diff -up ghostscript-8.71/base/sstring.c.epstopdf-failure ghostscript-8.71/base/sstring.c
--- ghostscript-8.71/base/sstring.c.epstopdf-failure 2009-08-13 20:04:34.000000000 +0100
+++ ghostscript-8.71/base/sstring.c 2010-08-26 14:53:05.663840592 +0100
@@ -355,8 +355,12 @@ const stream_template s_PSSD_template =
/* ------ Utilities ------ */
/*
- * Convert hex data to binary. Return 1 if we filled the string, 0 if
- * we ran out of input data before filling the string, or ERRC on error.
+ * Convert hex data to binary.
+ * Return 1 if we filled the string,
+ * 0 if we ran out of input data before filling the string,
+ * 2 if hex_break_on_whitespace is on and we encounrered
+ * a white space.
+ * ERRC on error.
* The caller must set *odd_digit to -1 before the first call;
* after each call, if an odd number of hex digits has been read (total),
* *odd_digit is the odd digit value, otherwise *odd_digit = -1.
diff -up ghostscript-8.71/psi/iscan.c.epstopdf-failure ghostscript-8.71/psi/iscan.c
--- ghostscript-8.71/psi/iscan.c.epstopdf-failure 2009-11-11 13:52:23.000000000 +0000
+++ ghostscript-8.71/psi/iscan.c 2010-08-26 14:53:05.665840572 +0100
@@ -329,9 +329,9 @@ scan_handle_refill(i_ctx_t *i_ctx_p, sca
rstate, 1, cont);
}
}
- /* No more data available, but no exception. How can this be? */
- lprintf("Can't refill scanner input buffer!");
- return_error(e_Fatal);
+ /* No more data available, but no exception. */
+ /* A filter is consuming headers but returns nothing. */
+ return 0;
}
/*

33
ghostscript-fPIC.patch Normal file
View File

@ -0,0 +1,33 @@
diff -up ghostscript-8.64/base/devs.mak.fPIC ghostscript-8.64/base/devs.mak
--- ghostscript-8.64/base/devs.mak.fPIC 2008-11-07 18:49:34.000000000 +0000
+++ ghostscript-8.64/base/devs.mak 2009-02-04 11:34:21.000000000 +0000
@@ -456,7 +456,7 @@ $(GLOBJ)gdevx.$(OBJ) : $(GLSRC)gdevx.c $
$(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevx.$(OBJ) $(C_) $(GLSRC)gdevx.c
$(GLOBJ)gdevxcmp.$(OBJ) : $(GLSRC)gdevxcmp.c $(GDEVX) $(math__h)
- $(GLCC) $(XINCLUDE) $(GLO_)gdevxcmp.$(OBJ) $(C_) $(GLSRC)gdevxcmp.c
+ $(GLCCSHARED) $(XINCLUDE) $(GLO_)gdevxcmp.$(OBJ) $(C_) $(GLSRC)gdevxcmp.c
$(GLOBJ)gdevxini.$(OBJ) : $(GLSRC)gdevxini.c $(GDEVX) $(memory__h)\
$(gserrors_h) $(gsparamx_h) $(gxdevmem_h) $(gdevbbox_h)
diff -up ghostscript-8.64/base/lib.mak.fPIC ghostscript-8.64/base/lib.mak
--- ghostscript-8.64/base/lib.mak.fPIC 2009-01-08 09:17:18.000000000 +0000
+++ ghostscript-8.64/base/lib.mak 2009-02-04 11:34:21.000000000 +0000
@@ -894,7 +894,7 @@ $(GLOBJ)gsparam.$(OBJ) : $(GLSRC)gsparam
$(GLOBJ)gsparamx.$(OBJ) : $(GLSRC)gsparamx.c $(string__h)\
$(gserror_h) $(gserrors_h) $(gsmemory_h) $(gsparam_h) $(gsparamx_h)\
$(gstypes_h)
- $(GLCC) $(GLO_)gsparamx.$(OBJ) $(C_) $(GLSRC)gsparamx.c
+ $(GLCCSHARED) $(GLO_)gsparamx.$(OBJ) $(C_) $(GLSRC)gsparamx.c
# Future replacement for gsparams.c
$(GLOBJ)gsparam2.$(OBJ) : $(GLSRC)gsparam2.c $(GXERR) $(memory__h)\
@@ -1085,7 +1085,7 @@ $(GLOBJ)gdevnfwd.$(OBJ) : $(GLSRC)gdevnf
# Provide a mapping between StandardEncoding and ISOLatin1Encoding.
$(GLOBJ)gdevemap.$(OBJ) : $(GLSRC)gdevemap.c $(AK) $(std_h)
- $(GLCC) $(GLO_)gdevemap.$(OBJ) $(C_) $(GLSRC)gdevemap.c
+ $(GLCCSHARED) $(GLO_)gdevemap.$(OBJ) $(C_) $(GLSRC)gdevemap.c
###### Create a pseudo-"feature" for the entire graphics library.

View File

@ -0,0 +1,15 @@
diff -up ghostscript-8.71/cups/gdevcups.c.gdevcups-debug-uninit ghostscript-8.71/cups/gdevcups.c
--- ghostscript-8.71/cups/gdevcups.c.gdevcups-debug-uninit 2010-10-14 15:08:41.243869988 +0100
+++ ghostscript-8.71/cups/gdevcups.c 2010-10-14 15:09:45.151869961 +0100
@@ -3299,8 +3299,9 @@ cups_put_params(gx_device *pdev, /*
dprintf1("DEBUG2: ppd = %p\n", cupsPPD);
dprintf2("DEBUG2: PageSize = [ %.3f %.3f ]\n",
pdev->MediaSize[0], pdev->MediaSize[1]);
- dprintf4("DEBUG2: margins = [ %.3f %.3f %.3f %.3f ]\n",
- margins[0], margins[1], margins[2], margins[3]);
+ if (size_set)
+ dprintf4("DEBUG2: margins = [ %.3f %.3f %.3f %.3f ]\n",
+ margins[0], margins[1], margins[2], margins[3]);
dprintf2("DEBUG2: HWResolution = [ %.3f %.3f ]\n",
pdev->HWResolution[0], pdev->HWResolution[1]);
dprintf2("DEBUG2: width = %d, height = %d\n",

View File

@ -0,0 +1,31 @@
diff -up ghostscript-8.71/cups/gdevcups.c.gdevcups-ripcache ghostscript-8.71/cups/gdevcups.c
--- ghostscript-8.71/cups/gdevcups.c.gdevcups-ripcache 2010-09-02 14:38:53.886818591 +0100
+++ ghostscript-8.71/cups/gdevcups.c 2010-09-02 14:40:49.925943426 +0100
@@ -915,8 +915,7 @@ cups_get_space_params(const gx_device_pr
switch (sscanf(cache_env, "%f%254s", &cache_size, cache_units))
{
case 0 :
- cache_size = 8 * 1024 * 1024;
- break;
+ return;
case 1 :
cache_size *= 4 * CUPS_TILE_SIZE * CUPS_TILE_SIZE;
break;
@@ -933,12 +932,15 @@ cups_get_space_params(const gx_device_pr
}
}
else
- cache_size = 8 * 1024 * 1024;
+ return;
+
+ if (cache_size == 0)
+ return;
dprintf1("DEBUG2: cache_size = %.0f\n", cache_size);
space_params->MaxBitmap = (int)cache_size;
- space_params->BufferSpace = (int)cache_size / 10;
+ space_params->BufferSpace = (int)cache_size;
}

View File

@ -0,0 +1,90 @@
diff -up ghostscript-8.71/psi/iname.c.iname-segfault ghostscript-8.71/psi/iname.c
--- ghostscript-8.71/psi/iname.c.iname-segfault 2008-10-21 17:26:09.000000000 +0100
+++ ghostscript-8.71/psi/iname.c 2010-09-02 12:13:02.833819490 +0100
@@ -47,8 +47,8 @@ gs_private_st_composite(st_name_table, n
/* Forward references */
static int name_alloc_sub(name_table *);
-static void name_free_sub(name_table *, uint);
-static void name_scan_sub(name_table *, uint, bool);
+static void name_free_sub(name_table *, uint, bool);
+static void name_scan_sub(name_table *, uint, bool, bool);
/* Debugging printout */
#ifdef DEBUG
@@ -99,7 +99,7 @@ names_init(ulong count, gs_ref_memory_t
if (code < 0) {
while (nt->sub_next > 0)
- name_free_sub(nt, --(nt->sub_next));
+ name_free_sub(nt, --(nt->sub_next), false);
gs_free_object(mem, nt, "name_init(nt)");
return 0;
}
@@ -413,16 +413,7 @@ names_trace_finish(name_table * nt, gc_s
if (sub != 0) {
int save_count = nt->sub_count;
- name_scan_sub(nt, i, true);
- if (save_count != nt->sub_count) {
- /* name_scan_sub has released the i-th entry. */
- continue;
- }
- if (nt->sub[i].names == 0 && gcst != 0) {
- /* Mark the just-freed sub-table as unmarked. */
- o_set_unmarked((obj_header_t *)sub - 1);
- o_set_unmarked((obj_header_t *)ssub - 1);
- }
+ name_scan_sub(nt, i, true, true && (gcst != 0));
}
}
nt->sub_next = 0;
@@ -506,7 +497,7 @@ name_alloc_sub(name_table * nt)
/* Add the newly allocated entries to the free list. */
/* Note that the free list will only be properly sorted if */
/* it was empty initially. */
- name_scan_sub(nt, sub_index, false);
+ name_scan_sub(nt, sub_index, false, false);
#ifdef DEBUG
if (gs_debug_c('n')) { /* Print the lengths of the hash chains. */
int i0;
@@ -535,8 +526,20 @@ name_alloc_sub(name_table * nt)
/* Free a sub-table. */
static void
-name_free_sub(name_table * nt, uint sub_index)
+name_free_sub(name_table * nt, uint sub_index, bool unmark)
{
+ /* If the subtable is in a previous save level, gs_free_object()
+ * may not actually free the memory, in case that happens, we need
+ * to explicitly remove the gc mark.
+ */
+ if (unmark) {
+ name_sub_table *sub = nt->sub[sub_index].names;
+ name_string_sub_table_t *ssub = nt->sub[sub_index].strings;
+
+ o_set_unmarked((obj_header_t *)sub - 1);
+ o_set_unmarked((obj_header_t *)ssub - 1);
+ }
+
gs_free_object(nt->memory, nt->sub[sub_index].strings,
"name_free_sub(string sub-table)");
gs_free_object(nt->memory, nt->sub[sub_index].names,
@@ -550,7 +553,7 @@ name_free_sub(name_table * nt, uint sub_
/* will stay sorted. If all entries are unmarked and free_empty is true, */
/* free the sub-table. */
static void
-name_scan_sub(name_table * nt, uint sub_index, bool free_empty)
+name_scan_sub(name_table * nt, uint sub_index, bool free_empty, bool unmark)
{
name_string_sub_table_t *ssub = nt->sub[sub_index].strings;
uint free = nt->free;
@@ -579,7 +582,7 @@ name_scan_sub(name_table * nt, uint sub_
nt->free = free;
else {
/* No marked entries, free the sub-table. */
- name_free_sub(nt, sub_index);
+ name_free_sub(nt, sub_index, unmark);
if (sub_index == nt->sub_count - 1) {
/* Back up over a final run of deleted sub-tables. */
do {

View File

@ -0,0 +1,25 @@
diff -up ghostscript-8.71/jbig2dec/jbig2_image.c.jbig2-image-refcount ghostscript-8.71/jbig2dec/jbig2_image.c
--- ghostscript-8.71/jbig2dec/jbig2_image.c.jbig2-image-refcount 2010-08-05 14:55:56.417043303 +0100
+++ ghostscript-8.71/jbig2dec/jbig2_image.c 2010-08-05 14:56:46.796169065 +0100
@@ -60,15 +60,18 @@ Jbig2Image* jbig2_image_new(Jbig2Ctx *ct
/* clone an image pointer by bumping its reference count */
Jbig2Image* jbig2_image_clone(Jbig2Ctx *ctx, Jbig2Image *image)
{
- image->refcount++;
+ if (image)
+ image->refcount++;
return image;
}
/* release an image pointer, freeing it it appropriate */
void jbig2_image_release(Jbig2Ctx *ctx, Jbig2Image *image)
{
- image->refcount--;
- if (!image->refcount) jbig2_image_free(ctx, image);
+ if (image) {
+ image->refcount--;
+ if (!image->refcount) jbig2_image_free(ctx, image);
+ }
}
/* free a Jbig2Image structure and its associated memory */

View File

@ -0,0 +1,44 @@
diff -up ghostscript-8.71/jbig2dec/jbig2_symbol_dict.c.jbig2dec-nullderef ghostscript-8.71/jbig2dec/jbig2_symbol_dict.c
--- ghostscript-8.71/jbig2dec/jbig2_symbol_dict.c.jbig2dec-nullderef 2009-05-29 07:48:44.000000000 +0100
+++ ghostscript-8.71/jbig2dec/jbig2_symbol_dict.c 2010-02-17 12:06:42.040614797 +0000
@@ -367,6 +367,11 @@ jbig2_decode_symbol_dict(Jbig2Ctx *ctx,
memcpy(region_params.gbat, params->sdat, sdat_bytes);
image = jbig2_image_new(ctx, SYMWIDTH, HCHEIGHT);
+ if (image == NULL) {
+ jbig2_error(ctx, JBIG2_SEVERITY_FATAL, segment->number,
+ "failed to allocate image storage");
+ return NULL;
+ }
code = jbig2_decode_generic_region(ctx, segment, &region_params,
as, image, GB_stats);
@@ -517,6 +522,11 @@ jbig2_decode_symbol_dict(Jbig2Ctx *ctx,
ID, RDX, RDY);
image = jbig2_image_new(ctx, SYMWIDTH, HCHEIGHT);
+ if (image == NULL) {
+ jbig2_error(ctx, JBIG2_SEVERITY_FATAL, segment->number,
+ "failed to allocate image storage");
+ return NULL;
+ }
/* Table 18 */
rparams.GRTEMPLATE = params->SDRTEMPLATE;
@@ -635,6 +645,16 @@ jbig2_decode_symbol_dict(Jbig2Ctx *ctx,
for (j = HCFIRSTSYM; j < NSYMSDECODED; j++) {
Jbig2Image *glyph;
glyph = jbig2_image_new(ctx, SDNEWSYMWIDTHS[j], HCHEIGHT);
+ if (glyph == NULL) {
+ jbig2_error(ctx, JBIG2_SEVERITY_FATAL, segment->number,
+ "error allocating image storage for glyph");
+ while (--j >= HCFIRSTSYM) {
+ jbig2_image_release(ctx, SDNEWSYMS->glyphs[j]);
+ SDNEWSYMS->glyphs[j] = NULL;
+ }
+ jbig2_image_release(ctx, image);
+ return NULL;
+ }
jbig2_image_compose(ctx, glyph, image,
-x, 0, JBIG2_COMPOSE_REPLACE);
x += SDNEWSYMWIDTHS[j];

24
ghostscript-ldflags.patch Normal file
View File

@ -0,0 +1,24 @@
--- ghostscript-8.71/base/unix-dll.mak 2009-10-19 21:24:53.000000000 +0100
+++ ghostscript-8.71/base/unix-dll.mak.ldflags 2010-02-19 10:07:06.645044318 +0000
@@ -88,8 +88,9 @@ $(GSSOX_XE): $(GS_SO) $(PSSRC)$(SOC_LOAD
# ------------------------- Recursive make targets ------------------------- #
-SODEFS=LDFLAGS='$(LDFLAGS) $(LDFLAGS_SO)'\
+SODEFS=\
GS_XE=$(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR_MINOR)\
+ GS_XE_LDFLAGS='$(LDFLAGS_SO)'\
STDIO_IMPLEMENTATION=c\
DISPLAY_DEV=$(DD)$(SOOBJRELDIR)/display.dev\
BINDIR=$(BINDIR)/$(SOBINRELDIR)\
--- ghostscript-8.71/base/unixlink.mak 2008-02-29 08:13:08.000000000 +0000
+++ ghostscript-8.71/base/unixlink.mak.ldflags 2010-02-19 10:07:06.646044276 +0000
@@ -50,7 +50,7 @@ $(GS_A): $(obj_tr) $(ECHOGS_XE) $(INT_AR
# which has limited environment space.
ldt_tr=$(PSOBJ)ldt.tr
$(GS_XE): $(ld_tr) $(ECHOGS_XE) $(XE_ALL) $(PSOBJ)gsromfs$(COMPILE_INITS).$(OBJ)
- $(ECHOGS_XE) -w $(ldt_tr) -n - $(CCLD) $(LDFLAGS) -o $(GS_XE)
+ $(ECHOGS_XE) -w $(ldt_tr) -n - $(CCLD) $(GS_XE_LDFLAGS) $(LDFLAGS) -o $(GS_XE)
$(ECHOGS_XE) -a $(ldt_tr) -n -s $(PSOBJ)gsromfs$(COMPILE_INITS).$(OBJ) $(PSOBJ)gs.$(OBJ) -s
cat $(ld_tr) >>$(ldt_tr)
$(ECHOGS_XE) -a $(ldt_tr) -s - $(EXTRALIBS) $(STDLIBS)

View File

@ -0,0 +1,14 @@
diff -up ghostscript-8.61/ijs/Makefile.am.multilib ghostscript-8.61/ijs/Makefile.am
diff -up ghostscript-8.61/ijs/ijs-config.in.multilib ghostscript-8.61/ijs/ijs-config.in
--- ghostscript-8.61/ijs/ijs-config.in.multilib 2002-01-31 19:09:46.000000000 +0000
+++ ghostscript-8.61/ijs/ijs-config.in 2007-11-23 09:19:18.000000000 +0000
@@ -43,8 +43,7 @@ while test $# -gt 0; do
echo $includes
;;
--libs)
- libdirs=-L@libdir@
- echo $libdirs -lijs
+ echo -lijs
;;
*)
echo "${usage}" 1>&2

12
ghostscript-noopt.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up ghostscript-8.64/psi/int.mak.noopt ghostscript-8.64/psi/int.mak
--- ghostscript-8.64/psi/int.mak.noopt 2008-12-26 07:25:31.000000000 +0000
+++ ghostscript-8.64/psi/int.mak 2009-02-04 11:33:48.000000000 +0000
@@ -111,7 +111,7 @@ $(PSOBJ)igc.$(OBJ) : $(PSSRC)igc.c $(GH)
$(PSOBJ)igcref.$(OBJ) : $(PSSRC)igcref.c $(GH) $(memory__h)\
$(gsexit_h) $(gsstruct_h)\
$(iastate_h) $(idebug_h) $(igc_h) $(iname_h) $(ipacked_h) $(store_h)
- $(PSCC) $(PSO_)igcref.$(OBJ) $(C_) $(PSSRC)igcref.c
+ $(PSCC) -O0 $(PSO_)igcref.$(OBJ) $(C_) $(PSSRC)igcref.c
$(PSOBJ)igcstr.$(OBJ) : $(PSSRC)igcstr.c $(GH) $(memory__h)\
$(gsmdebug_h) $(gsstruct_h) $(iastate_h) $(igcstr_h)

12
ghostscript-pdf2dsc.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up ghostscript-8.71/lib/pdf2dsc.ps.pdf2dsc ghostscript-8.71/lib/pdf2dsc.ps
--- ghostscript-8.71/lib/pdf2dsc.ps.pdf2dsc 2010-02-20 15:50:51.287734970 +0000
+++ ghostscript-8.71/lib/pdf2dsc.ps 2010-02-20 15:51:02.902609964 +0000
@@ -116,7 +116,7 @@ systemdict /.setsafe known { .setsafe }
DSCfile PDFname write==only
( \(r\) file { DELAYSAFER { .setsafe } if } stopped pop\n) puts
( pdfopen begin\n) puts
- ( copy_trailer_attrs\n) puts
+ ( process_trailer_attrs\n) puts
(%%EndSetup\n) puts
/.hasPageLabels false def % see "Page Labels" in the PDF Reference

View File

@ -0,0 +1,39 @@
diff -up ghostscript-8.70/cups/pdftoraster.c.pdftoraster-exit ghostscript-8.70/cups/pdftoraster.c
--- ghostscript-8.70/cups/pdftoraster.c.pdftoraster-exit 2008-10-17 23:58:21.000000000 +0100
+++ ghostscript-8.70/cups/pdftoraster.c 2010-01-25 10:15:42.269209639 +0000
@@ -35,6 +35,8 @@ MIT Open Source License - http://www.o
#include <stdarg.h>
#include <fcntl.h>
#include <cups/raster.h>
+#include <sys/types.h>
+#include <sys/wait.h>
#define MAX_CHECK_COMMENT_LINES 20
#ifndef GS
@@ -123,6 +125,7 @@ int main(int argc, char *argv[], char *e
const char* apos;
int fds[2];
int pid;
+ int status;
parseOpts(argc, argv);
@@ -502,8 +505,17 @@ int main(int argc, char *argv[], char *e
}
}
fclose(fp);
+ close (fds[1]);
}
- exit(0);
+ if (waitpid (pid, &status, 0) == -1) {
+ perror (GS);
+ exit (1);
+ }
+
+ if (WIFEXITED (status))
+ exit(WEXITSTATUS (status));
+ else
+ exit(1);
}

12
ghostscript-pksmraw.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up ghostscript-8.64/base/gxclrast.c.pksmraw ghostscript-8.64/base/gxclrast.c
--- ghostscript-8.64/base/gxclrast.c.pksmraw 2008-12-13 20:05:37.000000000 +0000
+++ ghostscript-8.64/base/gxclrast.c 2009-02-04 11:36:25.000000000 +0000
@@ -2685,8 +2685,6 @@ static int apply_create_compositor(gx_de
rc_increment(tdev);
*ptarget = tdev;
}
- if (code < 0)
- return code;
/* Perform any updates for the clist device required */
code = pcomp->type->procs.clist_compositor_read_update(pcomp,

View File

@ -0,0 +1,52 @@
diff -up ghostscript-8.71/Resource/Init/gs_fonts.ps.runlibfileifexists ghostscript-8.71/Resource/Init/gs_fonts.ps
--- ghostscript-8.71/Resource/Init/gs_fonts.ps.runlibfileifexists 2010-09-13 15:00:22.566812041 +0100
+++ ghostscript-8.71/Resource/Init/gs_fonts.ps 2010-09-13 15:03:24.520814577 +0100
@@ -96,10 +96,19 @@ userdict /Fontmap .FontDirectory maxleng
% stack: dict file fontname filename|aliasname
1 index type /stringtype eq
1 index type /nametype eq and 1 index xcheck and
- 1 index /run eq 2 index /.runlibfile eq or and {
+ 1 index /run eq 2 index /.runlibfile eq 3 index /.runlibfileifexists eq or or and {
% This is an inclusion entry.
- pop findlibfile { exch pop } { file } ifelse
- 2 index exch .readFontmap pop
+ 0 index /.runlibfileifexists eq {
+ pop findlibfile {
+ exch pop
+ 2 index exch .readFontmap pop
+ } {
+ pop
+ } ifelse
+ } {
+ pop findlibfile { exch pop } { file } ifelse
+ 2 index exch .readFontmap pop
+ } ifelse
} {
% This is a real entry.
% Read and pop tokens until a semicolon.
diff -up ghostscript-8.64/Resource/Init/gs_init.ps.runlibfileifexists ghostscript-8.64/Resource/Init/gs_init.ps
--- ghostscript-8.64/Resource/Init/gs_init.ps.runlibfileifexists 2009-01-08 09:17:18.000000000 +0000
+++ ghostscript-8.64/Resource/Init/gs_init.ps 2009-02-04 11:35:19.000000000 +0000
@@ -672,6 +672,14 @@ systemdict /internaldict dup .makeintern
{ /undefinedfilename signalerror }
ifelse
} bind def
+/runlibfileifexists
+ { % We don't want to bind 'run' into this procedure,
+ % since run may get redefined.
+ findlibfile
+ { exch pop /run .systemvar exec }
+ { pop }
+ ifelse
+ } bind def
/selectdevice
{ finddevice setdevice .setdefaultscreen } bind def
/signalerror % <object> <errorname> signalerror -
@@ -840,6 +848,7 @@ userdict /.currentresourcefile //null pu
} bind def
% Temporarily substitute it for the real runlibfile.
/.runlibfile /runlibfile load def
+/.runlibfileifexists /runlibfileifexists load def
/runlibfile /runlibfile0 load def
% Create the error handling machinery.

31
ghostscript-scripts.patch Normal file
View File

@ -0,0 +1,31 @@
diff -up ghostscript-8.64/lib/dvipdf.scripts ghostscript-8.64/lib/dvipdf
--- ghostscript-8.64/lib/dvipdf.scripts 2009-01-10 22:11:18.000000000 +0000
+++ ghostscript-8.64/lib/dvipdf 2009-02-04 11:32:31.000000000 +0000
@@ -44,4 +44,4 @@ fi
# We have to include the options twice because -I only takes effect if it
# appears before other options.
-exec dvips -Ppdf $DVIPSOPTIONS -q -f "$infile" | $GS_EXECUTABLE $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%stderr -sOutputFile="$outfile" $OPTIONS -c .setpdfwrite -
+exec dvips -R -Ppdf $DVIPSOPTIONS -q -f "$infile" | $GS_EXECUTABLE $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%stderr -sOutputFile="$outfile" $OPTIONS -c .setpdfwrite -
diff -up ghostscript-8.64/lib/pv.sh.scripts ghostscript-8.64/lib/pv.sh
--- ghostscript-8.64/lib/pv.sh.scripts 2007-07-05 11:41:52.000000000 +0100
+++ ghostscript-8.64/lib/pv.sh 2009-02-04 11:31:32.000000000 +0000
@@ -31,7 +31,7 @@ fi
GS_EXECUTABLE=gs
TEMPDIR=.
-PAGE=$1
+PAGE="$1"
shift
FILE="$1"
shift
@@ -44,7 +44,7 @@ else
tmpfile="$TEMPDIR/$FILE.$$.pv"
fi
trap "rm -rf $tmpfile" 0 1 2 15
-#dvips -D$RESOLUTION -p $PAGE -n 1 "$FILE" "$@" -o $tmpfile
-dvips -p $PAGE -n 1 "$FILE" "$@" -o $tmpfile
+#dvips -R -D$RESOLUTION -p $PAGE -n 1 "$FILE" "$@" -o $tmpfile
+dvips -R -p $PAGE -n 1 "$FILE" "$@" -o $tmpfile
$GS_EXECUTABLE $tmpfile
exit 0

View File

@ -0,0 +1,26 @@
diff -up ghostscript-8.64/base/sjpx.c.system-jasper ghostscript-8.64/base/sjpx.c
--- ghostscript-8.64/base/sjpx.c.system-jasper 2008-08-21 00:22:49.000000000 +0100
+++ ghostscript-8.64/base/sjpx.c 2009-02-04 11:35:56.000000000 +0000
@@ -34,14 +34,6 @@ static void s_jpxd_set_defaults(stream_s
private_st_jpxd_state(); /* creates a gc object for our state,
defined in sjpx.h */
-/* error reporting callback for the jpx library */
-static void
-s_jpx_jas_error_cb(jas_error_t err, char *msg)
-{
- dprintf2("jasper (code %d) %s", (int)err, msg);
-}
-
-
/* initialize the steam.
this involves allocating the stream and image structures, and
initializing the decoder.
@@ -59,7 +51,6 @@ s_jpxd_init(stream_state * ss)
}
status = jas_init();
- jas_set_error_cb(s_jpx_jas_error_cb);
#ifdef JPX_DEBUG
/* raise the error reporting threshold from the default (0) */
jas_setdbglevel(1);

View File

@ -0,0 +1,13 @@
diff -up ghostscript-8.71/base/gdevtfax.c.tif-fail-close ghostscript-8.71/base/gdevtfax.c
--- ghostscript-8.71/base/gdevtfax.c.tif-fail-close 2010-03-12 10:57:43.514750465 +0000
+++ ghostscript-8.71/base/gdevtfax.c 2010-03-12 10:58:38.253627230 +0000
@@ -97,7 +97,8 @@ tfax_close(gx_device * pdev)
{
gx_device_tfax *const tfdev = (gx_device_tfax *)pdev;
- TIFFCleanup(tfdev->tif);
+ if (tfdev->tif)
+ TIFFCleanup(tfdev->tif);
return gdev_prn_close(pdev);
}

View File

@ -0,0 +1,12 @@
diff -up ghostscript-8.71/base/gdevtifs.h.tiff-default-strip-size ghostscript-8.71/base/gdevtifs.h
--- ghostscript-8.71/base/gdevtifs.h.tiff-default-strip-size 2010-02-04 17:47:57.000000000 +0000
+++ ghostscript-8.71/base/gdevtifs.h 2010-03-16 09:58:29.269600052 +0000
@@ -50,7 +50,7 @@ int tiff_print_page(gx_device_printer *d
* Sets the compression tag for TIFF and updates the rows_per_strip tag to
* reflect max_strip_size under the new compression scheme.
*/
-#define TIFF_DEFAULT_STRIP_SIZE 8192
+#define TIFF_DEFAULT_STRIP_SIZE 1048576
int tiff_set_compression(gx_device_printer *pdev,
TIFF *tif,

View File

@ -0,0 +1,59 @@
diff -up ghostscript-8.71/base/gdevtfnx.c.tiff-fixes ghostscript-8.71/base/gdevtfnx.c
--- ghostscript-8.71/base/gdevtfnx.c.tiff-fixes 2010-02-04 17:47:57.000000000 +0000
+++ ghostscript-8.71/base/gdevtfnx.c 2010-03-16 10:04:00.686600827 +0000
@@ -105,6 +105,8 @@ tiff12_print_page(gx_device_printer * pd
TIFFSetField(tfdev->tif, TIFFTAG_BITSPERSAMPLE, 4);
tiff_set_rgb_fields(tfdev);
+ TIFFCheckpointDirectory(tfdev->tif);
+
/* Write the page data. */
{
int y;
diff -up ghostscript-8.71/base/gdevtifs.c.tiff-fixes ghostscript-8.71/base/gdevtifs.c
--- ghostscript-8.71/base/gdevtifs.c.tiff-fixes 2010-02-04 17:47:57.000000000 +0000
+++ ghostscript-8.71/base/gdevtifs.c 2010-03-16 10:04:00.689600292 +0000
@@ -243,8 +243,8 @@ int tiff_set_fields_for_printer(gx_devic
TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
TIFFSetField(tif, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH);
- TIFFSetField(tif, TIFFTAG_XRESOLUTION, pdev->x_pixels_per_inch);
- TIFFSetField(tif, TIFFTAG_YRESOLUTION, pdev->y_pixels_per_inch);
+ TIFFSetField(tif, TIFFTAG_XRESOLUTION, (float)pdev->x_pixels_per_inch);
+ TIFFSetField(tif, TIFFTAG_YRESOLUTION, (float)pdev->y_pixels_per_inch);
{
char revs[10];
@@ -293,6 +293,8 @@ tiff_print_page(gx_device_printer *dev,
if (data == NULL)
return_error(gs_error_VMerror);
+ TIFFCheckpointDirectory(tif);
+
memset(data, 0, max_size);
for (row = 0; row < dev->height; row++) {
code = gdev_prn_copy_scan_lines(dev, row, data, size);
diff -up ghostscript-8.71/base/gdevtsep.c.tiff-fixes ghostscript-8.71/base/gdevtsep.c
--- ghostscript-8.71/base/gdevtsep.c.tiff-fixes 2010-02-04 17:47:57.000000000 +0000
+++ ghostscript-8.71/base/gdevtsep.c 2010-03-16 10:04:00.700601143 +0000
@@ -1438,6 +1438,10 @@ tiffsep_print_page(gx_device_printer * p
return_error(gs_error_VMerror);
}
+ for (comp_num = 0; comp_num < num_comp; comp_num++ )
+ TIFFCheckpointDirectory(tfdev->tiff[comp_num]);
+ TIFFCheckpointDirectory(tfdev->tiff_comp);
+
/* Write the page data. */
for (y = 0; y < pdev->height; ++y) {
code = gdev_prn_get_bits(pdev, y, line, &row);
@@ -1603,6 +1607,9 @@ tiffsep1_print_page(gx_device_printer *
if (line == NULL || unpacked == NULL || dithered_line == NULL)
return_error(gs_error_VMerror);
+ for (comp_num = 0; comp_num < num_comp; comp_num++ )
+ TIFFCheckpointDirectory(tfdev->tiff[comp_num]);
+
/* Loop for the lines */
for (y = 0; y < pdev->height; ++y) {
code = gdev_prn_get_bits(pdev, y, line, &row);

View File

@ -0,0 +1,36 @@
diff -up ghostscript-8.71/base/gsmisc.c.vsnprintf ghostscript-8.71/base/gsmisc.c
--- ghostscript-8.71/base/gsmisc.c.vsnprintf 2010-01-05 00:52:07.000000000 +0000
+++ ghostscript-8.71/base/gsmisc.c 2010-02-17 11:30:13.777615156 +0000
@@ -235,7 +235,7 @@ int gs_throw_imp(const char *func, const
va_list ap;
va_start(ap, fmt);
- vsprintf(msg, fmt, ap);
+ vsnprintf(msg, sizeof (msg), fmt, ap);
msg[sizeof(msg) - 1] = 0;
va_end(ap);
diff -up ghostscript-8.71/base/gxttfb.c.vsnprintf ghostscript-8.71/base/gxttfb.c
--- ghostscript-8.71/base/gxttfb.c.vsnprintf 2009-12-06 19:12:08.000000000 +0000
+++ ghostscript-8.71/base/gxttfb.c 2010-02-17 11:30:13.778616076 +0000
@@ -246,7 +246,7 @@ static int DebugPrint(ttfFont *ttf, cons
if (gs_debug_c('Y')) {
va_start(args, fmt);
- count = vsprintf(buf, fmt, args);
+ count = vsnprintf(buf, sizeof (buf), fmt, args);
/* NB: moved debug output from stdout to stderr
*/
errwrite(buf, count);
diff -up ghostscript-8.71/base/rinkj/rinkj-byte-stream.c.vsnprintf ghostscript-8.71/base/rinkj/rinkj-byte-stream.c
--- ghostscript-8.71/base/rinkj/rinkj-byte-stream.c.vsnprintf 2008-04-04 02:02:16.000000000 +0100
+++ ghostscript-8.71/base/rinkj/rinkj-byte-stream.c 2010-02-17 11:30:13.791615392 +0000
@@ -43,7 +43,7 @@ rinkj_byte_stream_printf (RinkjByteStrea
va_list ap;
va_start (ap, fmt);
- len = vsprintf (str, fmt, ap);
+ len = vsnprintf (str, sizeof (str), fmt, ap);
va_end (ap);
return rinkj_byte_stream_write (bs, str, len);
}

File diff suppressed because it is too large Load Diff

17
sources
View File

@ -1,16 +1,3 @@
75fbe1a1c474d67fbc71cc4b1dbfb833 CIDFnmap-cjk-20030115.tar.gz
2fbae60417d42779f6488ab897dcaaf6 acro5-cmaps-2001.tar.gz
e8fbffadb8d70ce5f92708a699ae7765 adobe-cmaps-200202.tar.gz
911c7865a83a69135417989dee53f8fc eplaseren-1.0.2-550.tgz
2c6ebfe51cab34ee61e3dd524c8640cc epson740.tgz
5ed2b4218b8f77cb411f3d2e4509ed24 gdevmd2k-0.2a.tar.gz
821caada7e265ea5b698a78e6b029734 ghostscript-7.05.tar.bz2
9b25d4dd54d3297f33a8f7609fba70dd gnu-drivers.tar.gz
d202cd105c496b7f0eb5221316fb7b7f gs550j1.tar.gz
6f8e90effe12527a4c3b36ea4ce47b3c gs6.51-cjk-M2-R3.tar.gz
b32da7d61421384a0874037576033861 gs704-j-vlib.zip
9d0b79d0fae39f3efc5b8db60f51a8fa hpijs-1.3.tar.gz
dbd5f3b47ed13132f04c685d608a7547 jpegsrc.v6b.tar.gz
aea08da4e37ab68ed6f1dc451f24b30b lexmarkgs990908.tar.gz
ec11b9ef72ecaabb61eeba27e93f9f2b lxm3200-0.4.1-gs5.50-src.tar.gz
34e664c2a98b847598f8441f8cac7ab6 pcl3-3.3.tar.gz
dfc93dd2aaaf2b86d2fd55f654c13261 adobe-cmaps-200406.tar.gz
5005d68f7395c2bfc4b05c1a60d9b6ba ghostscript-8.71.tar.xz