[149109] trunk/dports/x11/xorg-libXfont
jeremyhu at macports.org
jeremyhu at macports.org
Mon May 30 21:32:15 PDT 2016
Revision: 149109
https://trac.macports.org/changeset/149109
Author: jeremyhu at macports.org
Date: 2016-05-30 21:32:15 -0700 (Mon, 30 May 2016)
Log Message:
-----------
xorg-libXfont: Fix a buffer overrun and some static analysis warnings
Modified Paths:
--------------
trunk/dports/x11/xorg-libXfont/Portfile
Added Paths:
-----------
trunk/dports/x11/xorg-libXfont/files/0001-doc-add-a-couple-olinks-to-fsproto-xfs-design-docs.patch
trunk/dports/x11/xorg-libXfont/files/0002-bdfReadCharacters-Allow-negative-DWIDTH-values.patch
trunk/dports/x11/xorg-libXfont/files/0003-Fix-is-usage.patch
trunk/dports/x11/xorg-libXfont/files/0004-stubs-Add-missing-externs-for-declarations-in-the-NO.patch
trunk/dports/x11/xorg-libXfont/files/0005-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch
trunk/dports/x11/xorg-libXfont/files/0006-Fix-warnings.patch
trunk/dports/x11/xorg-libXfont/files/0007-FreeType-Correct-an-allocation-size.patch
trunk/dports/x11/xorg-libXfont/files/0008-bitmap-Bail-out-on-invalid-input-to-FontFileMakeDir-.patch
trunk/dports/x11/xorg-libXfont/files/0009-fserve-Silence-a-Wformat-warning.patch
trunk/dports/x11/xorg-libXfont/files/0010-fserve-Fix-a-buffer-read-overrun-in-_fs_client_acces.patch
Removed Paths:
-------------
trunk/dports/x11/xorg-libXfont/files/0001-stubs-Add-missing-externs-for-declarations-in-the-NO.patch
trunk/dports/x11/xorg-libXfont/files/0002-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch
Modified: trunk/dports/x11/xorg-libXfont/Portfile
===================================================================
--- trunk/dports/x11/xorg-libXfont/Portfile 2016-05-31 00:14:51 UTC (rev 149108)
+++ trunk/dports/x11/xorg-libXfont/Portfile 2016-05-31 04:32:15 UTC (rev 149109)
@@ -4,7 +4,7 @@
name xorg-libXfont
version 1.5.1
-revision 1
+revision 2
categories x11 devel
license X11 BSD
maintainers jeremyhu openmaintainer
@@ -36,8 +36,16 @@
port:xorg-fontsproto
patchfiles \
- 0001-stubs-Add-missing-externs-for-declarations-in-the-NO.patch \
- 0002-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch
+ 0001-doc-add-a-couple-olinks-to-fsproto-xfs-design-docs.patch \
+ 0002-bdfReadCharacters-Allow-negative-DWIDTH-values.patch \
+ 0003-Fix-is-usage.patch \
+ 0004-stubs-Add-missing-externs-for-declarations-in-the-NO.patch \
+ 0005-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch \
+ 0006-Fix-warnings.patch \
+ 0007-FreeType-Correct-an-allocation-size.patch \
+ 0008-bitmap-Bail-out-on-invalid-input-to-FontFileMakeDir-.patch \
+ 0009-fserve-Silence-a-Wformat-warning.patch \
+ 0010-fserve-Fix-a-buffer-read-overrun-in-_fs_client_acces.patch
patch.pre_args -p1
Added: trunk/dports/x11/xorg-libXfont/files/0001-doc-add-a-couple-olinks-to-fsproto-xfs-design-docs.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0001-doc-add-a-couple-olinks-to-fsproto-xfs-design-docs.patch (rev 0)
+++ trunk/dports/x11/xorg-libXfont/files/0001-doc-add-a-couple-olinks-to-fsproto-xfs-design-docs.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -0,0 +1,40 @@
+From 159bfa4ec094e7d342c9b59c31bfea7dccbac58a Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith at oracle.com>
+Date: Sat, 7 Feb 2015 17:24:48 -0800
+Subject: [PATCH 01/10] doc: add a couple olinks to fsproto & xfs-design docs
+
+Don't seem to have ability to link to BDF or Xserver internals docs yet
+
+Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
+---
+ doc/fontlib.xml | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/doc/fontlib.xml b/doc/fontlib.xml
+index c5079c8..ce31bb5 100644
+--- a/doc/fontlib.xml
++++ b/doc/fontlib.xml
+@@ -111,8 +111,9 @@
+ </listitem>
+ <listitem>
+ <para>
++ <olink targetdoc='xfs-design' targetptr='xfs-design'>
+ <citetitle pubwork="article">Font Server Implementation
+- Overview</citetitle> which discusses the design of the font
++ Overview</citetitle></olink> which discusses the design of the font
+ server.
+ </para>
+ </listitem>
+@@ -126,7 +127,9 @@
+ </listitem>
+ <listitem>
+ <para>
++ <olink targetdoc='fsproto' targetptr='fsproto'>
+ <citetitle pubwork="article">The X Font Service Protocol</citetitle>
++ </olink>
+ for a description of the constraints placed on the design by
+ including support for this font service mechanism.
+ </para>
+--
+2.8.3
+
Deleted: trunk/dports/x11/xorg-libXfont/files/0001-stubs-Add-missing-externs-for-declarations-in-the-NO.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0001-stubs-Add-missing-externs-for-declarations-in-the-NO.patch 2016-05-31 00:14:51 UTC (rev 149108)
+++ trunk/dports/x11/xorg-libXfont/files/0001-stubs-Add-missing-externs-for-declarations-in-the-NO.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -1,71 +0,0 @@
-From 2788c6984bc54bfba61b2dbdb5353978199d8a37 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
-Date: Wed, 21 Oct 2015 21:27:26 -0700
-Subject: [PATCH 1/2] stubs: Add missing externs for declarations in the
- NO_WEAK_SYMBOLS && PIC stubs resolution
-
-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
----
- src/stubs/stubs.h | 46 +++++++++++++++++++++++-----------------------
- 1 file changed, 23 insertions(+), 23 deletions(-)
-
-diff --git a/src/stubs/stubs.h b/src/stubs/stubs.h
-index 7d499d5..c09c675 100644
---- a/src/stubs/stubs.h
-+++ b/src/stubs/stubs.h
-@@ -38,29 +38,29 @@ extern int _font_init_stubs(void);
- (*__##sym)(f, _args); \
- va_end(_args)
-
--int (*__client_auth_generation)(ClientPtr);
--Bool (*__ClientSignal)(ClientPtr);
--void (*__DeleteFontClientID)(Font);
--void (*__VErrorF)(const char *, va_list);
--FontPtr (*__find_old_font)(FSID);
--FontResolutionPtr (*__GetClientResolutions)(int *);
--int (*__GetDefaultPointSize)(void);
--Font (*__GetNewFontClientID)(void);
--unsigned long (*__GetTimeInMillis)(void);
--int (*__init_fs_handlers)(FontPathElementPtr, BlockHandlerProcPtr);
--int (*__RegisterFPEFunctions)(NameCheckFunc, InitFpeFunc, FreeFpeFunc,
-- ResetFpeFunc, OpenFontFunc, CloseFontFunc, ListFontsFunc,
-- StartLfwiFunc, NextLfwiFunc, WakeupFpeFunc, ClientDiedFunc,
-- LoadGlyphsFunc, StartLaFunc, NextLaFunc, SetPathFunc);
--void (*__remove_fs_handlers)(FontPathElementPtr, BlockHandlerProcPtr, Bool);
--void **__ptr_serverClient;
--int (*__set_font_authorizations)(char **, int *, ClientPtr);
--int (*__StoreFontClientFont)(FontPtr, Font);
--Atom (*__MakeAtom)(const char *, unsigned, int);
--int (*__ValidAtom)(Atom);
--char *(*__NameForAtom)(Atom);
--unsigned long *__ptr_serverGeneration;
--void (*__register_fpe_functions)(void);
-+extern int (*__client_auth_generation)(ClientPtr);
-+extern Bool (*__ClientSignal)(ClientPtr);
-+extern void (*__DeleteFontClientID)(Font);
-+extern void (*__VErrorF)(const char *, va_list);
-+extern FontPtr (*__find_old_font)(FSID);
-+extern FontResolutionPtr (*__GetClientResolutions)(int *);
-+extern int (*__GetDefaultPointSize)(void);
-+extern Font (*__GetNewFontClientID)(void);
-+extern unsigned long (*__GetTimeInMillis)(void);
-+extern int (*__init_fs_handlers)(FontPathElementPtr, BlockHandlerProcPtr);
-+extern int (*__RegisterFPEFunctions)(NameCheckFunc, InitFpeFunc, FreeFpeFunc,
-+ ResetFpeFunc, OpenFontFunc, CloseFontFunc, ListFontsFunc,
-+ StartLfwiFunc, NextLfwiFunc, WakeupFpeFunc, ClientDiedFunc,
-+ LoadGlyphsFunc, StartLaFunc, NextLaFunc, SetPathFunc);
-+extern void (*__remove_fs_handlers)(FontPathElementPtr, BlockHandlerProcPtr, Bool);
-+extern void **__ptr_serverClient;
-+extern int (*__set_font_authorizations)(char **, int *, ClientPtr);
-+extern int (*__StoreFontClientFont)(FontPtr, Font);
-+extern Atom (*__MakeAtom)(const char *, unsigned, int);
-+extern int (*__ValidAtom)(Atom);
-+extern char *(*__NameForAtom)(Atom);
-+extern unsigned long *__ptr_serverGeneration;
-+extern void (*__register_fpe_functions)(void);
- #else /* NO_WEAK_SYMBOLS && PIC */
- #define OVERRIDE_DATA(sym)
- #define OVERRIDE_SYMBOL(sym,...)
---
-2.6.2
-
Deleted: trunk/dports/x11/xorg-libXfont/files/0002-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0002-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch 2016-05-31 00:14:51 UTC (rev 149108)
+++ trunk/dports/x11/xorg-libXfont/files/0002-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -1,59 +0,0 @@
-From d6877a7c1c35985f6a75b6cd4e814595e781adc4 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
-Date: Wed, 21 Oct 2015 21:03:00 -0700
-Subject: [PATCH 2/2] Use NO_WEAK_SYMBOLS instead of -flat_namespace
-
-Lesser of two evil hacks, I suppose...
-
-This reverts commit 0386fa77367a305deea3cc27f8a3865cc3c467c0.
----
- configure.ac | 3 ---
- src/stubs/stubs.h | 11 +----------
- 2 files changed, 1 insertion(+), 13 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 7cb6bdf..640cc92 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -213,9 +213,6 @@ case $host_os in
- linux*)
- OS_CFLAGS="-D_XOPEN_SOURCE"
- ;;
-- darwin*)
-- OS_CFLAGS="-Wl,-flat_namespace"
-- ;;
- *)
- OS_CFLAGS=
- ;;
-diff --git a/src/stubs/stubs.h b/src/stubs/stubs.h
-index c09c675..9e71806 100644
---- a/src/stubs/stubs.h
-+++ b/src/stubs/stubs.h
-@@ -10,7 +10,7 @@
- #endif
-
- /* this probably works for Mach-O too, but probably not for PE */
--#if (defined(__APPLE__) || defined(__ELF__)) && defined(__GNUC__) && (__GNUC__ >= 3)
-+#if defined(__ELF__) && defined(__GNUC__) && (__GNUC__ >= 3)
- #define weak __attribute__((weak))
- #else
- #define weak
-@@ -67,15 +67,6 @@ extern void (*__register_fpe_functions)(void);
- #define OVERRIDE_VA_SYMBOL(sym,f)
- #endif
-
--/* This is really just a hack for now... __APPLE__ really should be using
-- * the weak symbols route above, but it's causing an as-yet unresolved issue,
-- * so we're instead building with flat_namespace.
-- */
--#ifdef __APPLE__
--#undef weak
--#define weak
--#endif
--
- extern FontPtr find_old_font ( FSID id );
- extern int set_font_authorizations ( char **authorizations,
- int *authlen,
---
-2.6.2
-
Added: trunk/dports/x11/xorg-libXfont/files/0002-bdfReadCharacters-Allow-negative-DWIDTH-values.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0002-bdfReadCharacters-Allow-negative-DWIDTH-values.patch (rev 0)
+++ trunk/dports/x11/xorg-libXfont/files/0002-bdfReadCharacters-Allow-negative-DWIDTH-values.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -0,0 +1,39 @@
+From 1a73d6828dfa03924f2d68644fb5b99afd9c78e2 Mon Sep 17 00:00:00 2001
+From: Benjamin Tissoires <benjamin.tissoires at gmail.com>
+Date: Mon, 13 Jul 2015 14:43:06 -0400
+Subject: [PATCH 02/10] bdfReadCharacters: Allow negative DWIDTH values
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The fix for CVE-2015-1804 prevent DWIDTH to be negative.
+However, the spec states that "DWIDTH [...] is a vector indicating the
+position of the next glyph’s origin relative to the origin of this glyph."
+
+So negative values are correct.
+
+Found by trying to compile XTS.
+
+Signed-off-by: Benjamin Tissoires <benjamin.tissoires at gmail.com>
+Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
+Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
+---
+ src/bitmap/bdfread.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/bitmap/bdfread.c b/src/bitmap/bdfread.c
+index a0ace8f..eccd7b7 100644
+--- a/src/bitmap/bdfread.c
++++ b/src/bitmap/bdfread.c
+@@ -426,7 +426,7 @@ bdfReadCharacters(FontFilePtr file, FontPtr pFont, bdfFileState *pState,
+ goto BAILOUT;
+ }
+ /* xCharInfo metrics are stored as INT16 */
+- if ((wx < 0) || (wx > INT16_MAX)) {
++ if ((wx < INT16_MIN) || (wx > INT16_MAX)) {
+ bdfError("character '%s' has out of range width, %d\n",
+ charName, wx);
+ goto BAILOUT;
+--
+2.8.3
+
Added: trunk/dports/x11/xorg-libXfont/files/0003-Fix-is-usage.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0003-Fix-is-usage.patch (rev 0)
+++ trunk/dports/x11/xorg-libXfont/files/0003-Fix-is-usage.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -0,0 +1,124 @@
+From d66f107d6e714a54515f39d94caf46aef9be7416 Mon Sep 17 00:00:00 2001
+From: Thomas Klausner <wiz at NetBSD.org>
+Date: Wed, 25 Feb 2015 21:45:50 +0100
+Subject: [PATCH 03/10] Fix is*() usage.
+
+The argument must be an unsigned char or -1; in these cases
+we know it's not -1 so cast it to unsigned char.
+Fixes
+warning: array subscript is of type 'char' [-Wchar-subscripts]
+
+Signed-off-by: Thomas Klausner <wiz at NetBSD.org>
+---
+ src/FreeType/ftfuncs.c | 6 +++---
+ src/FreeType/xttcap.c | 2 +-
+ src/bitmap/bdfutils.c | 4 ++--
+ src/util/fontxlfd.c | 10 +++++-----
+ 4 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/src/FreeType/ftfuncs.c b/src/FreeType/ftfuncs.c
+index a4969d1..c440fde 100644
+--- a/src/FreeType/ftfuncs.c
++++ b/src/FreeType/ftfuncs.c
+@@ -2061,7 +2061,7 @@ restrict_code_range_by_str(int count,unsigned short *refFirstCol,
+ long val;
+
+ /* skip comma and/or space */
+- while (',' == *p || isspace(*p))
++ while (',' == *p || isspace((unsigned char)*p))
+ p++;
+
+ /* begin point */
+@@ -2079,7 +2079,7 @@ restrict_code_range_by_str(int count,unsigned short *refFirstCol,
+ }
+
+ /* skip space */
+- while (isspace(*p))
++ while (isspace((unsigned char)*p))
+ p++;
+
+ if (',' != *p && '\0' != *p) {
+@@ -2092,7 +2092,7 @@ restrict_code_range_by_str(int count,unsigned short *refFirstCol,
+ break;
+
+ /* skip space */
+- while (isspace(*p))
++ while (isspace((unsigned char)*p))
+ p++;
+
+ val = strtol(p, (char **)&q, 0);
+diff --git a/src/FreeType/xttcap.c b/src/FreeType/xttcap.c
+index cee752e..e30e0f9 100644
+--- a/src/FreeType/xttcap.c
++++ b/src/FreeType/xttcap.c
+@@ -632,7 +632,7 @@ SPropRecValList_add_by_font_cap(SDynPropRecValList *pThisList,
+ }
+ break;
+ }
+- if ( !isdigit(*p) )
++ if ( !isdigit((unsigned char)*p) )
+ break;
+ }
+ }
+diff --git a/src/bitmap/bdfutils.c b/src/bitmap/bdfutils.c
+index 288148b..438d197 100644
+--- a/src/bitmap/bdfutils.c
++++ b/src/bitmap/bdfutils.c
+@@ -207,11 +207,11 @@ bdfIsInteger(char *str)
+ char c;
+
+ c = *str++;
+- if (!(isdigit(c) || c == '-' || c == '+'))
++ if (!(isdigit((unsigned char)c) || c == '-' || c == '+'))
+ return (FALSE);
+
+ while ((c = *str++))
+- if (!isdigit(c))
++ if (!isdigit((unsigned char)c))
+ return (FALSE);
+
+ return (TRUE);
+diff --git a/src/util/fontxlfd.c b/src/util/fontxlfd.c
+index 974128e..99a3679 100644
+--- a/src/util/fontxlfd.c
++++ b/src/util/fontxlfd.c
+@@ -145,9 +145,9 @@ xlfd_double_to_text(double value, char *buffer, int space_required)
+ if (value == 0.0) exponent = 0;
+
+ /* Figure out how many digits are significant */
+- while (p1 >= buffer && (!isdigit(*p1) || *p1 == '0')) p1--;
++ while (p1 >= buffer && (!isdigit((unsigned char)*p1) || *p1 == '0')) p1--;
+ ndigits = 0;
+- while (p1 >= buffer) if (isdigit(*p1--)) ndigits++;
++ while (p1 >= buffer) if (isdigit((unsigned char)*p1--)) ndigits++;
+
+ /* Figure out notation to use */
+ if (exponent >= XLFD_NDIGITS || ndigits - exponent > XLFD_NDIGITS + 1)
+@@ -278,7 +278,7 @@ GetMatrix(char *ptr, FontScalablePtr vals, int which)
+ matrix = vals->point_matrix;
+ else return (char *)0;
+
+- while (isspace(*ptr)) ptr++;
++ while (isspace((unsigned char)*ptr)) ptr++;
+ if (*ptr == '[')
+ {
+ /* This is a matrix containing real numbers. It would be nice
+@@ -292,13 +292,13 @@ GetMatrix(char *ptr, FontScalablePtr vals, int which)
+ (ptr = readreal(ptr, matrix + 2)) &&
+ (ptr = readreal(ptr, matrix + 3)))
+ {
+- while (isspace(*ptr)) ptr++;
++ while (isspace((unsigned char)*ptr)) ptr++;
+ if (*ptr != ']')
+ ptr = (char *)0;
+ else
+ {
+ ptr++;
+- while (isspace(*ptr)) ptr++;
++ while (isspace((unsigned char)*ptr)) ptr++;
+ if (*ptr == '-')
+ {
+ if (which == POINTSIZE_MASK)
+--
+2.8.3
+
Added: trunk/dports/x11/xorg-libXfont/files/0004-stubs-Add-missing-externs-for-declarations-in-the-NO.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0004-stubs-Add-missing-externs-for-declarations-in-the-NO.patch (rev 0)
+++ trunk/dports/x11/xorg-libXfont/files/0004-stubs-Add-missing-externs-for-declarations-in-the-NO.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -0,0 +1,71 @@
+From 2788c6984bc54bfba61b2dbdb5353978199d8a37 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Wed, 21 Oct 2015 21:27:26 -0700
+Subject: [PATCH 04/10] stubs: Add missing externs for declarations in the
+ NO_WEAK_SYMBOLS && PIC stubs resolution
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ src/stubs/stubs.h | 46 +++++++++++++++++++++++-----------------------
+ 1 file changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/src/stubs/stubs.h b/src/stubs/stubs.h
+index 7d499d5..c09c675 100644
+--- a/src/stubs/stubs.h
++++ b/src/stubs/stubs.h
+@@ -38,29 +38,29 @@ extern int _font_init_stubs(void);
+ (*__##sym)(f, _args); \
+ va_end(_args)
+
+-int (*__client_auth_generation)(ClientPtr);
+-Bool (*__ClientSignal)(ClientPtr);
+-void (*__DeleteFontClientID)(Font);
+-void (*__VErrorF)(const char *, va_list);
+-FontPtr (*__find_old_font)(FSID);
+-FontResolutionPtr (*__GetClientResolutions)(int *);
+-int (*__GetDefaultPointSize)(void);
+-Font (*__GetNewFontClientID)(void);
+-unsigned long (*__GetTimeInMillis)(void);
+-int (*__init_fs_handlers)(FontPathElementPtr, BlockHandlerProcPtr);
+-int (*__RegisterFPEFunctions)(NameCheckFunc, InitFpeFunc, FreeFpeFunc,
+- ResetFpeFunc, OpenFontFunc, CloseFontFunc, ListFontsFunc,
+- StartLfwiFunc, NextLfwiFunc, WakeupFpeFunc, ClientDiedFunc,
+- LoadGlyphsFunc, StartLaFunc, NextLaFunc, SetPathFunc);
+-void (*__remove_fs_handlers)(FontPathElementPtr, BlockHandlerProcPtr, Bool);
+-void **__ptr_serverClient;
+-int (*__set_font_authorizations)(char **, int *, ClientPtr);
+-int (*__StoreFontClientFont)(FontPtr, Font);
+-Atom (*__MakeAtom)(const char *, unsigned, int);
+-int (*__ValidAtom)(Atom);
+-char *(*__NameForAtom)(Atom);
+-unsigned long *__ptr_serverGeneration;
+-void (*__register_fpe_functions)(void);
++extern int (*__client_auth_generation)(ClientPtr);
++extern Bool (*__ClientSignal)(ClientPtr);
++extern void (*__DeleteFontClientID)(Font);
++extern void (*__VErrorF)(const char *, va_list);
++extern FontPtr (*__find_old_font)(FSID);
++extern FontResolutionPtr (*__GetClientResolutions)(int *);
++extern int (*__GetDefaultPointSize)(void);
++extern Font (*__GetNewFontClientID)(void);
++extern unsigned long (*__GetTimeInMillis)(void);
++extern int (*__init_fs_handlers)(FontPathElementPtr, BlockHandlerProcPtr);
++extern int (*__RegisterFPEFunctions)(NameCheckFunc, InitFpeFunc, FreeFpeFunc,
++ ResetFpeFunc, OpenFontFunc, CloseFontFunc, ListFontsFunc,
++ StartLfwiFunc, NextLfwiFunc, WakeupFpeFunc, ClientDiedFunc,
++ LoadGlyphsFunc, StartLaFunc, NextLaFunc, SetPathFunc);
++extern void (*__remove_fs_handlers)(FontPathElementPtr, BlockHandlerProcPtr, Bool);
++extern void **__ptr_serverClient;
++extern int (*__set_font_authorizations)(char **, int *, ClientPtr);
++extern int (*__StoreFontClientFont)(FontPtr, Font);
++extern Atom (*__MakeAtom)(const char *, unsigned, int);
++extern int (*__ValidAtom)(Atom);
++extern char *(*__NameForAtom)(Atom);
++extern unsigned long *__ptr_serverGeneration;
++extern void (*__register_fpe_functions)(void);
+ #else /* NO_WEAK_SYMBOLS && PIC */
+ #define OVERRIDE_DATA(sym)
+ #define OVERRIDE_SYMBOL(sym,...)
+--
+2.8.3
+
Added: trunk/dports/x11/xorg-libXfont/files/0005-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0005-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch (rev 0)
+++ trunk/dports/x11/xorg-libXfont/files/0005-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -0,0 +1,59 @@
+From d6877a7c1c35985f6a75b6cd4e814595e781adc4 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Wed, 21 Oct 2015 21:03:00 -0700
+Subject: [PATCH 05/10] Use NO_WEAK_SYMBOLS instead of -flat_namespace
+
+Lesser of two evil hacks, I suppose...
+
+This reverts commit 0386fa77367a305deea3cc27f8a3865cc3c467c0.
+---
+ configure.ac | 3 ---
+ src/stubs/stubs.h | 11 +----------
+ 2 files changed, 1 insertion(+), 13 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 7cb6bdf..640cc92 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -213,9 +213,6 @@ case $host_os in
+ linux*)
+ OS_CFLAGS="-D_XOPEN_SOURCE"
+ ;;
+- darwin*)
+- OS_CFLAGS="-Wl,-flat_namespace"
+- ;;
+ *)
+ OS_CFLAGS=
+ ;;
+diff --git a/src/stubs/stubs.h b/src/stubs/stubs.h
+index c09c675..9e71806 100644
+--- a/src/stubs/stubs.h
++++ b/src/stubs/stubs.h
+@@ -10,7 +10,7 @@
+ #endif
+
+ /* this probably works for Mach-O too, but probably not for PE */
+-#if (defined(__APPLE__) || defined(__ELF__)) && defined(__GNUC__) && (__GNUC__ >= 3)
++#if defined(__ELF__) && defined(__GNUC__) && (__GNUC__ >= 3)
+ #define weak __attribute__((weak))
+ #else
+ #define weak
+@@ -67,15 +67,6 @@ extern void (*__register_fpe_functions)(void);
+ #define OVERRIDE_VA_SYMBOL(sym,f)
+ #endif
+
+-/* This is really just a hack for now... __APPLE__ really should be using
+- * the weak symbols route above, but it's causing an as-yet unresolved issue,
+- * so we're instead building with flat_namespace.
+- */
+-#ifdef __APPLE__
+-#undef weak
+-#define weak
+-#endif
+-
+ extern FontPtr find_old_font ( FSID id );
+ extern int set_font_authorizations ( char **authorizations,
+ int *authlen,
+--
+2.8.3
+
Added: trunk/dports/x11/xorg-libXfont/files/0006-Fix-warnings.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0006-Fix-warnings.patch (rev 0)
+++ trunk/dports/x11/xorg-libXfont/files/0006-Fix-warnings.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -0,0 +1,96 @@
+From bee4a764ccef46101dca03c70d4ad1793a5a5d78 Mon Sep 17 00:00:00 2001
+From: Keith Packard <keithp at keithp.com>
+Date: Mon, 7 Dec 2015 15:46:13 -0800
+Subject: [PATCH 06/10] Fix warnings
+
+Mostly signed vs unsigned comparisons
+
+Signed-off-by: Keith Packard <keithp at keithp.com>
+
+Squashed commit of three cherry-picks from master:
+(cherry picked from commit eb67d10ae82b364a4324e96ce53baaa4e5e75f97)
+(cherry picked from commit eefc0b0b908eb8533e704d7156ce983ad7891cc5)
+(cherry picked from commit d967caa988eaabd9e84c82879e2f21bd33b952a7)
+---
+ src/FreeType/ftfuncs.c | 12 ++++++------
+ src/bitmap/bdfread.c | 4 ++--
+ src/bitmap/pcfread.c | 1 -
+ 3 files changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/src/FreeType/ftfuncs.c b/src/FreeType/ftfuncs.c
+index c440fde..df64f5e 100644
+--- a/src/FreeType/ftfuncs.c
++++ b/src/FreeType/ftfuncs.c
+@@ -474,7 +474,7 @@ FreeTypeOpenInstance(FTInstancePtr *instance_return, FTFacePtr face,
+ if( FT_IS_SFNT( face->face ) ) {
+ #if 1
+ FT_F26Dot6 tt_char_width, tt_char_height, tt_dim_x, tt_dim_y;
+- FT_UInt nn;
++ FT_Int nn;
+
+ instance->strike_index=0xFFFFU;
+
+@@ -1454,7 +1454,7 @@ FreeTypeRasteriseGlyph(unsigned idx, int flags, CharInfoPtr tgp,
+ }
+ for( i = MAX(0, dy) ; i<ht ; i++ ){
+ int prev_jj,jj;
+- if( bitmap->rows <= i-dy ) break;
++ if( bitmap->rows <= (unsigned) (i-dy) ) break;
+ current_buffer=(unsigned char *)(bitmap->buffer+bitmap->pitch*(i-dy));
+ current_raster=(unsigned char *)(raster+i*bpr);
+ j = MAX(0,div_dx);
+@@ -2985,13 +2985,13 @@ ft_compute_bounds(FTFontPtr font, FontInfoPtr pinfo, FontScalablePtr vals )
+ c = row<<8|col;
+ flags=0;
+ if ( !force_c_outside ) {
+- if ( c <= instance->ttcap.forceConstantSpacingEnd
+- && instance->ttcap.forceConstantSpacingBegin <= c )
++ if ( (signed) c <= instance->ttcap.forceConstantSpacingEnd
++ && instance->ttcap.forceConstantSpacingBegin <= (signed) c )
+ flags|=FT_FORCE_CONSTANT_SPACING;
+ }
+ else { /* for GB18030 proportional */
+- if ( c <= instance->ttcap.forceConstantSpacingEnd
+- || instance->ttcap.forceConstantSpacingBegin <= c )
++ if ( (signed) c <= instance->ttcap.forceConstantSpacingEnd
++ || instance->ttcap.forceConstantSpacingBegin <= (signed) c )
+ flags|=FT_FORCE_CONSTANT_SPACING;
+ }
+ #if 0
+diff --git a/src/bitmap/bdfread.c b/src/bitmap/bdfread.c
+index eccd7b7..f343eed 100644
+--- a/src/bitmap/bdfread.c
++++ b/src/bitmap/bdfread.c
+@@ -298,7 +298,7 @@ bdfReadCharacters(FontFilePtr file, FontPtr pFont, bdfFileState *pState,
+ bdfError("invalid number of CHARS in BDF file\n");
+ return (FALSE);
+ }
+- if (nchars > INT32_MAX / sizeof(CharInfoRec)) {
++ if (nchars > (signed) (INT32_MAX / sizeof(CharInfoRec))) {
+ bdfError("Couldn't allocate pCI (%d*%d)\n", nchars,
+ (int) sizeof(CharInfoRec));
+ goto BAILOUT;
+@@ -631,7 +631,7 @@ bdfReadProperties(FontFilePtr file, FontPtr pFont, bdfFileState *pState)
+ }
+ if ((sscanf((char *) line, "STARTPROPERTIES %d", &nProps) != 1) ||
+ (nProps <= 0) ||
+- (nProps > ((INT32_MAX / sizeof(FontPropRec)) - BDF_GENPROPS))) {
++ (nProps > (signed) ((INT32_MAX / sizeof(FontPropRec)) - BDF_GENPROPS))) {
+ bdfError("bad 'STARTPROPERTIES'\n");
+ return (FALSE);
+ }
+diff --git a/src/bitmap/pcfread.c b/src/bitmap/pcfread.c
+index 34eeeb7..33871ae 100644
+--- a/src/bitmap/pcfread.c
++++ b/src/bitmap/pcfread.c
+@@ -487,7 +487,6 @@ pcfReadFont(FontPtr pFont, FontFilePtr file,
+ for (i = 0; i < GLYPHPADOPTIONS; i++) {
+ bitmapSizes[i] = pcfGetINT32(file, format);
+ if (IS_EOF(file)) goto Bail;
+- if (bitmapSizes[i] < 0) goto Bail;
+ }
+
+ sizebitmaps = bitmapSizes[PCF_GLYPH_PAD_INDEX(format)];
+--
+2.8.3
+
Added: trunk/dports/x11/xorg-libXfont/files/0007-FreeType-Correct-an-allocation-size.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0007-FreeType-Correct-an-allocation-size.patch (rev 0)
+++ trunk/dports/x11/xorg-libXfont/files/0007-FreeType-Correct-an-allocation-size.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -0,0 +1,34 @@
+From dfa572ea522a3019e91f2de7854b252c629342f2 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sun, 29 May 2016 23:29:50 -0700
+Subject: [PATCH 07/10] FreeType: Correct an allocation size
+
+Found by clang static analysis:
+ Result of 'calloc' is converted to a pointer of type 'int', which is
+ incompatible with sizeof operand type 'int *'
+
+This is likely benign because the old size was larger on any platform where
+sizeof(int) <= sizeof(void *), which is everywhere.
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+(cherry picked from commit d0fff111992fed9d9bfbf0c19e136bda9ba1db55)
+---
+ src/FreeType/ftfuncs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/FreeType/ftfuncs.c b/src/FreeType/ftfuncs.c
+index df64f5e..703353d 100644
+--- a/src/FreeType/ftfuncs.c
++++ b/src/FreeType/ftfuncs.c
+@@ -622,7 +622,7 @@ FreeTypeInstanceFindGlyph(unsigned idx_in, int flags, FTInstancePtr instance,
+ offset = idx - segment * FONTSEGMENTSIZE;
+
+ if((*available)[segment] == NULL) {
+- (*available)[segment] = calloc(FONTSEGMENTSIZE, sizeof(int *));
++ (*available)[segment] = calloc(FONTSEGMENTSIZE, sizeof(int));
+ if((*available)[segment] == NULL)
+ return AllocError;
+ }
+--
+2.8.3
+
Added: trunk/dports/x11/xorg-libXfont/files/0008-bitmap-Bail-out-on-invalid-input-to-FontFileMakeDir-.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0008-bitmap-Bail-out-on-invalid-input-to-FontFileMakeDir-.patch (rev 0)
+++ trunk/dports/x11/xorg-libXfont/files/0008-bitmap-Bail-out-on-invalid-input-to-FontFileMakeDir-.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -0,0 +1,33 @@
+From 3eddbca2690381bbbaf14adadb2679eea702095f Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sun, 29 May 2016 23:34:35 -0700
+Subject: [PATCH 08/10] bitmap: Bail out on invalid input to FontFileMakeDir
+ instead of calling calloc for 0 bytes
+
+Found by clang static analysis:
+ Call to 'calloc' has an allocation size of 0 bytes
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+(cherry picked from commit ac559fad20bbae45332c758abb6a790c3fd341a2)
+---
+ src/bitmap/bitscale.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/bitmap/bitscale.c b/src/bitmap/bitscale.c
+index c9af4c0..13ed924 100644
+--- a/src/bitmap/bitscale.c
++++ b/src/bitmap/bitscale.c
+@@ -1479,6 +1479,10 @@ BitmapScaleBitmaps(FontPtr pf, /* scaled font */
+ lastRow = pfi->lastRow;
+
+ nchars = (lastRow - firstRow + 1) * (lastCol - firstCol + 1);
++ if (nchars <= 0) {
++ goto bail;
++ }
++
+ glyph = pf->glyph;
+ for (i = 0; i < nchars; i++)
+ {
+--
+2.8.3
+
Added: trunk/dports/x11/xorg-libXfont/files/0009-fserve-Silence-a-Wformat-warning.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0009-fserve-Silence-a-Wformat-warning.patch (rev 0)
+++ trunk/dports/x11/xorg-libXfont/files/0009-fserve-Silence-a-Wformat-warning.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -0,0 +1,34 @@
+From 2b09a7af9f19db886567e524f978ad393593f7c0 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sun, 29 May 2016 23:37:13 -0700
+Subject: [PATCH 09/10] fserve: Silence a -Wformat warning
+
+src/fc/fserve.c:653:32: warning: format specifies type 'int' but the argument has type 'CARD32' (aka 'unsigned long') [-Wformat]
+ " from font server\n", rep->length);
+ ^~~~~~~~~~~
+1 warning generated.
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+(cherry picked from commit e6009adbc89ec3e1f924bcb57b333c1c02f5e66d)
+---
+ src/fc/fserve.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/fc/fserve.c b/src/fc/fserve.c
+index 92b0d53..bbaa8bf 100644
+--- a/src/fc/fserve.c
++++ b/src/fc/fserve.c
+@@ -631,8 +631,8 @@ fs_get_reply (FSFpePtr conn, int *error)
+ */
+ if (rep->length > MAX_REPLY_LENGTH)
+ {
+- ErrorF("fserve: reply length %d > MAX_REPLY_LENGTH, disconnecting"
+- " from font server\n", rep->length);
++ ErrorF("fserve: reply length %ld > MAX_REPLY_LENGTH, disconnecting"
++ " from font server\n", (long)rep->length);
+ _fs_connection_died (conn);
+ *error = FSIO_ERROR;
+ return 0;
+--
+2.8.3
+
Added: trunk/dports/x11/xorg-libXfont/files/0010-fserve-Fix-a-buffer-read-overrun-in-_fs_client_acces.patch
===================================================================
--- trunk/dports/x11/xorg-libXfont/files/0010-fserve-Fix-a-buffer-read-overrun-in-_fs_client_acces.patch (rev 0)
+++ trunk/dports/x11/xorg-libXfont/files/0010-fserve-Fix-a-buffer-read-overrun-in-_fs_client_acces.patch 2016-05-31 04:32:15 UTC (rev 149109)
@@ -0,0 +1,62 @@
+From 42d85d1293b2753f3f200de0e960bacef0c973c7 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Mon, 30 May 2016 00:46:21 -0700
+Subject: [PATCH 10/10] fserve: Fix a buffer read overrun in _fs_client_access
+
+https://bugs.freedesktop.org/show_bug.cgi?id=83224
+
+Found by clang's Address Sanitizer
+
+ crac.num_auths = set_font_authorizations(&authorizations, &authlen,
+ client);
+ /* Work around bug in xfs versions up through modular release 1.0.8
+ which rejects CreateAC packets with num_auths = 0 & authlen < 4 */
+ if (crac.num_auths == 0) {
+ authorizations = padding;
+ authlen = 4;
+ } else {
+ authlen = (authlen + 3) & ~0x3;
+ }
+ crac.length = (sizeof (fsCreateACReq) + authlen) >> 2;
+ crac.acid = cur->acid;
+ _fs_add_req_log(conn, FS_CreateAC);
+ _fs_write(conn, (char *) &crac, sizeof (fsCreateACReq));
+ _fs_write(conn, authorizations, authlen);
+
+In the case in the report, set_font_authorizations setup authorizations as a
+34 byte buffer (and authlen set to 34 as one would expect). The following
+block changed authlen to 36 to make it 4byte aligned and the final _fs_write()
+caused us to read 36 bytes from this 34 byte buffer.
+
+This changes the incorrect size increase to instead use _fs_write_pad which
+takes care of the padding for us.
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+(cherry picked from commit 6972ea08ee5b2ef1cfbdc2fcaf14f06bbd391561)
+---
+ src/fc/fserve.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/src/fc/fserve.c b/src/fc/fserve.c
+index bbaa8bf..4fb5551 100644
+--- a/src/fc/fserve.c
++++ b/src/fc/fserve.c
+@@ -2850,14 +2850,12 @@ _fs_client_access (FSFpePtr conn, pointer client, Bool sync)
+ if (crac.num_auths == 0) {
+ authorizations = padding;
+ authlen = 4;
+- } else {
+- authlen = (authlen + 3) & ~0x3;
+ }
+ crac.length = (sizeof (fsCreateACReq) + authlen) >> 2;
+ crac.acid = cur->acid;
+ _fs_add_req_log(conn, FS_CreateAC);
+ _fs_write(conn, (char *) &crac, sizeof (fsCreateACReq));
+- _fs_write(conn, authorizations, authlen);
++ _fs_write_pad(conn, authorizations, authlen);
+ /* ignore reply; we don't even care about it */
+ conn->curacid = 0;
+ cur->auth_generation = client_auth_generation(client);
+--
+2.8.3
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20160530/7c531b96/attachment-0001.html>
More information about the macports-changes
mailing list