From 27470e1676e69455acf06ae25ebd42ebd5bdecdb Mon Sep 17 00:00:00 2001 From: Hiroki Sato Date: Sat, 22 Aug 2015 17:48:35 +0000 Subject: - Split ghostscript into X11-independent and -dependent parts: * print/ghostscript{7,8,9,9-agpl}-base Installs Ghostscript binary, libgs, and related files. These ports do not depend on X11 libraries (i.e. x11* devices are not available). USES=ghostscript will set dependency on one of them depending on GHOSTSCRIPT_DEFAULT. The default device is set to "display" or "bbox". * print/ghostscript{7,8,9,9-agpl}-x11 Installs a shared library which provides X11 support to the installed Ghostscript binaries. x11* devices will be enabled when the library is available. This depends on *-base (RUN_DEPENDS). USES=ghostscript:x11 will set dependency on one of them. - Fix integer overflow reported as CVE-2015-3228. - Update Uses/ghostscript.mk: * Add x11 keyword. nox11 keyword is now obsolete. * Use packagename in *_DEPENDS line to prevent relationship between -base and -x11 packages from being broken. - Fix x11/nox11 keyword and bump PORTREVISION in ports using USES=ghostscript to update dependency of pre-compiled packages. --- print/ghostscript7-x11/files/patch-src:gdevpdfs.c | 41 +++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 print/ghostscript7-x11/files/patch-src:gdevpdfs.c (limited to 'print/ghostscript7-x11/files/patch-src:gdevpdfs.c') diff --git a/print/ghostscript7-x11/files/patch-src:gdevpdfs.c b/print/ghostscript7-x11/files/patch-src:gdevpdfs.c new file mode 100644 index 000000000000..0378f15c88ab --- /dev/null +++ b/print/ghostscript7-x11/files/patch-src:gdevpdfs.c @@ -0,0 +1,41 @@ +--- src/gdevpdfs.c.org 2003-09-20 00:11:16.000000000 +0900 ++++ src/gdevpdfs.c 2003-09-25 17:44:10.000000000 +0900 +@@ -481,15 +481,21 @@ + + if (cid < pfd->chars_count) { + int index = cid >> 3, mask = 0x80 >> (cid & 7); ++ int gid; ++ ++ if (!(pfd->chars_used.data[index] & mask) || ++ !(psubf->widths_known[index] & mask)) { + +- if (!(pfd->chars_used.data[index] & mask)) { +- pfd->chars_used.data[index] |= mask; + if (psubf->CIDToGIDMap) { + gs_font_cid2 *const subfont2 = + (gs_font_cid2 *)subfont; +- int gid = +- subfont2->cidata.CIDMap_proc(subfont2, glyph); + ++ gid = subfont2->cidata.CIDMap_proc(subfont2, glyph); ++ } ++ } ++ if (!(pfd->chars_used.data[index] & mask)) { ++ pfd->chars_used.data[index] |= mask; ++ if (psubf->CIDToGIDMap) { + if (gid >= 0) { + psubf->CIDToGIDMap[cid] = gid; + mark_glyphs_used(subfont, gid + gs_min_cid_glyph, +@@ -500,7 +506,11 @@ + if (!(psubf->widths_known[index] & mask)) { + int width; + +- code = pdf_glyph_width(psubf, glyph, subfont, &width); ++ if (psubf->CIDToGIDMap) ++ code = pdf_glyph_width(psubf, gid + gs_min_cid_glyph, ++ subfont, &width); ++ else ++ code = pdf_glyph_width(psubf, glyph, subfont, &width); + if (code == 0) { + psubf->Widths[cid] = width; + psubf->widths_known[index] |= mask; -- cgit v1.2.3