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-ibnum.c | 49 ++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 print/ghostscript7-x11/files/patch-src-ibnum.c (limited to 'print/ghostscript7-x11/files/patch-src-ibnum.c') diff --git a/print/ghostscript7-x11/files/patch-src-ibnum.c b/print/ghostscript7-x11/files/patch-src-ibnum.c new file mode 100644 index 000000000000..2df0a7d138c7 --- /dev/null +++ b/print/ghostscript7-x11/files/patch-src-ibnum.c @@ -0,0 +1,49 @@ +--- src/ibnum.c.orig 2003-01-17 09:49:04.000000000 +0900 ++++ src/ibnum.c 2013-04-30 11:18:27.000000000 +0900 +@@ -124,11 +124,11 @@ + case num_int32: + case num_int32 + 16: + if ((format & 31) == 0) { +- np->value.intval = sdecodelong(str, format); ++ np->value.intval = sdecodeint32(str, format); + return t_integer; + } else { + np->value.realval = +- (double)sdecodelong(str, format) * ++ (double)sdecodeint32(str, format) * + binary_scale[format & 31]; + return t_real; + } +@@ -171,18 +171,14 @@ + } + + /* Decode a (32-bit, signed) long. */ +-long +-sdecodelong(const byte * p, int format) ++int ++sdecodeint32(const byte * p, int format) + { + int a = p[0], b = p[1], c = p[2], d = p[3]; +- long v = (num_is_lsb(format) ? +- ((long)d << 24) + ((long)c << 16) + (b << 8) + a : +- ((long)a << 24) + ((long)b << 16) + (c << 8) + d); ++ int v = (num_is_lsb(format) ? ++ ((int)d << 24) + ((int)c << 16) + (b << 8) + a : ++ ((int)a << 24) + ((int)b << 16) + (c << 8) + d); + +-#if arch_sizeof_long > 4 +- /* Propagate bit 31 as the sign. */ +- v = (v ^ 0x80000000L) - 0x80000000L; +-#endif + return v; + } + +@@ -190,7 +186,7 @@ + float + sdecodefloat(const byte * p, int format) + { +- bits32 lnum = (bits32) sdecodelong(p, format); ++ bits32 lnum = (bits32) sdecodeint32(p, format); + float fnum; + + #if !arch_floats_are_IEEE -- cgit v1.2.3