<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[149109] trunk/dports/x11/xorg-libXfont</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/149109">149109</a></dd>
<dt>Author</dt> <dd>jeremyhu@macports.org</dd>
<dt>Date</dt> <dd>2016-05-30 21:32:15 -0700 (Mon, 30 May 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>xorg-libXfont: Fix a buffer overrun and some static analysis warnings</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsx11xorglibXfontPortfile">trunk/dports/x11/xorg-libXfont/Portfile</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdportsx11xorglibXfontfiles0001docaddacoupleolinkstofsprotoxfsdesigndocspatch">trunk/dports/x11/xorg-libXfont/files/0001-doc-add-a-couple-olinks-to-fsproto-xfs-design-docs.patch</a></li>
<li><a href="#trunkdportsx11xorglibXfontfiles0002bdfReadCharactersAllownegativeDWIDTHvaluespatch">trunk/dports/x11/xorg-libXfont/files/0002-bdfReadCharacters-Allow-negative-DWIDTH-values.patch</a></li>
<li><a href="#trunkdportsx11xorglibXfontfiles0003Fixisusagepatch">trunk/dports/x11/xorg-libXfont/files/0003-Fix-is-usage.patch</a></li>
<li><a href="#trunkdportsx11xorglibXfontfiles0004stubsAddmissingexternsfordeclarationsintheNOpatch">trunk/dports/x11/xorg-libXfont/files/0004-stubs-Add-missing-externs-for-declarations-in-the-NO.patch</a></li>
<li><a href="#trunkdportsx11xorglibXfontfiles0005UseNO_WEAK_SYMBOLSinsteadofflat_namespacepatch">trunk/dports/x11/xorg-libXfont/files/0005-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch</a></li>
<li><a href="#trunkdportsx11xorglibXfontfiles0006Fixwarningspatch">trunk/dports/x11/xorg-libXfont/files/0006-Fix-warnings.patch</a></li>
<li><a href="#trunkdportsx11xorglibXfontfiles0007FreeTypeCorrectanallocationsizepatch">trunk/dports/x11/xorg-libXfont/files/0007-FreeType-Correct-an-allocation-size.patch</a></li>
<li><a href="#trunkdportsx11xorglibXfontfiles0008bitmapBailoutoninvalidinputtoFontFileMakeDirpatch">trunk/dports/x11/xorg-libXfont/files/0008-bitmap-Bail-out-on-invalid-input-to-FontFileMakeDir-.patch</a></li>
<li><a href="#trunkdportsx11xorglibXfontfiles0009fserveSilenceaWformatwarningpatch">trunk/dports/x11/xorg-libXfont/files/0009-fserve-Silence-a-Wformat-warning.patch</a></li>
<li><a href="#trunkdportsx11xorglibXfontfiles0010fserveFixabufferreadoverrunin_fs_client_accespatch">trunk/dports/x11/xorg-libXfont/files/0010-fserve-Fix-a-buffer-read-overrun-in-_fs_client_acces.patch</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkdportsx11xorglibXfontfiles0001stubsAddmissingexternsfordeclarationsintheNOpatch">trunk/dports/x11/xorg-libXfont/files/0001-stubs-Add-missing-externs-for-declarations-in-the-NO.patch</a></li>
<li><a href="#trunkdportsx11xorglibXfontfiles0002UseNO_WEAK_SYMBOLSinsteadofflat_namespacepatch">trunk/dports/x11/xorg-libXfont/files/0002-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsx11xorglibXfontPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/x11/xorg-libXfont/Portfile (149108 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> 
</span><span class="cx"> name                xorg-libXfont
</span><span class="cx"> version                1.5.1
</span><del>-revision        1
</del><ins>+revision        2
</ins><span class="cx"> categories        x11 devel
</span><span class="cx"> license                X11 BSD
</span><span class="cx"> maintainers        jeremyhu openmaintainer
</span><span class="lines">@@ -36,8 +36,16 @@
</span><span class="cx">         port:xorg-fontsproto
</span><span class="cx"> 
</span><span class="cx"> patchfiles \
</span><del>-        0001-stubs-Add-missing-externs-for-declarations-in-the-NO.patch \
-        0002-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch
</del><ins>+        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
</ins><span class="cx"> 
</span><span class="cx"> patch.pre_args -p1
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0001docaddacoupleolinkstofsprotoxfsdesigndocspatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libXfont/files/0001-doc-add-a-couple-olinks-to-fsproto-xfs-design-docs.patch (0 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+From 159bfa4ec094e7d342c9b59c31bfea7dccbac58a Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith &lt;alan.coopersmith@oracle.com&gt;
+Date: Sat, 7 Feb 2015 17:24:48 -0800
+Subject: [PATCH 01/10] doc: add a couple olinks to fsproto &amp; xfs-design docs
+
+Don't seem to have ability to link to BDF or Xserver internals docs yet
+
+Signed-off-by: Alan Coopersmith &lt;alan.coopersmith@oracle.com&gt;
+---
+ 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 @@
+       &lt;/listitem&gt;
+       &lt;listitem&gt;
+         &lt;para&gt;
++          &lt;olink targetdoc='xfs-design' targetptr='xfs-design'&gt;
+           &lt;citetitle pubwork=&quot;article&quot;&gt;Font Server Implementation
+-            Overview&lt;/citetitle&gt; which discusses the design of the font
++            Overview&lt;/citetitle&gt;&lt;/olink&gt; which discusses the design of the font
+           server.
+         &lt;/para&gt;
+       &lt;/listitem&gt;
+@@ -126,7 +127,9 @@
+       &lt;/listitem&gt;
+       &lt;listitem&gt;
+         &lt;para&gt;
++          &lt;olink targetdoc='fsproto' targetptr='fsproto'&gt;
+           &lt;citetitle pubwork=&quot;article&quot;&gt;The X Font Service Protocol&lt;/citetitle&gt;
++          &lt;/olink&gt;
+           for a description of the constraints placed  on the design by
+           including support for this font service mechanism.
+         &lt;/para&gt;
+-- 
+2.8.3
+
</ins></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0001stubsAddmissingexternsfordeclarationsintheNOpatch"></a>
<div class="delfile"><h4>Deleted: trunk/dports/x11/xorg-libXfont/files/0001-stubs-Add-missing-externs-for-declarations-in-the-NO.patch (149108 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -1,71 +0,0 @@
</span><del>-From 2788c6984bc54bfba61b2dbdb5353978199d8a37 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
-Date: Wed, 21 Oct 2015 21:27:26 -0700
-Subject: [PATCH 1/2] stubs: Add missing externs for declarations in the
- NO_WEAK_SYMBOLS &amp;&amp; PIC stubs resolution
-
-Signed-off-by: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
----
- 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 &amp;&amp; PIC */
- #define OVERRIDE_DATA(sym)
- #define OVERRIDE_SYMBOL(sym,...)
--- 
-2.6.2
-
</del></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0002UseNO_WEAK_SYMBOLSinsteadofflat_namespacepatch"></a>
<div class="delfile"><h4>Deleted: trunk/dports/x11/xorg-libXfont/files/0002-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch (149108 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -1,59 +0,0 @@
</span><del>-From d6877a7c1c35985f6a75b6cd4e814595e781adc4 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
-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=&quot;-D_XOPEN_SOURCE&quot;
-         ;;
--    darwin*)
--        OS_CFLAGS=&quot;-Wl,-flat_namespace&quot;
--        ;
-     *)
-         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__)) &amp;&amp; defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 3)
-+#if defined(__ELF__) &amp;&amp; defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 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
-
</del></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0002bdfReadCharactersAllownegativeDWIDTHvaluespatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libXfont/files/0002-bdfReadCharacters-Allow-negative-DWIDTH-values.patch (0 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,39 @@
</span><ins>+From 1a73d6828dfa03924f2d68644fb5b99afd9c78e2 Mon Sep 17 00:00:00 2001
+From: Benjamin Tissoires &lt;benjamin.tissoires@gmail.com&gt;
+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 &quot;DWIDTH [...] is a vector indicating the
+position of the next glyph’s origin relative to the origin of this glyph.&quot;
+
+So negative values are correct.
+
+Found by trying to compile XTS.
+
+Signed-off-by: Benjamin Tissoires &lt;benjamin.tissoires@gmail.com&gt;
+Reviewed-by: Peter Hutterer &lt;peter.hutterer@who-t.net&gt;
+Signed-off-by: Alan Coopersmith &lt;alan.coopersmith@oracle.com&gt;
+---
+ 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 &lt; 0) || (wx &gt; INT16_MAX)) {
++        if ((wx &lt; INT16_MIN) || (wx &gt; INT16_MAX)) {
+             bdfError(&quot;character '%s' has out of range width, %d\n&quot;,
+                      charName, wx);
+             goto BAILOUT;
+-- 
+2.8.3
+
</ins></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0003Fixisusagepatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libXfont/files/0003-Fix-is-usage.patch (0 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,124 @@
</span><ins>+From d66f107d6e714a54515f39d94caf46aef9be7416 Mon Sep 17 00:00:00 2001
+From: Thomas Klausner &lt;wiz@NetBSD.org&gt;
+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 &lt;wiz@NetBSD.org&gt;
+---
+ 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 &amp;&amp; '\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 **)&amp;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 &gt;= buffer &amp;&amp; (!isdigit(*p1) || *p1 == '0')) p1--;
++    while (p1 &gt;= buffer &amp;&amp; (!isdigit((unsigned char)*p1) || *p1 == '0')) p1--;
+     ndigits = 0;
+-    while (p1 &gt;= buffer) if (isdigit(*p1--)) ndigits++;
++    while (p1 &gt;= buffer) if (isdigit((unsigned char)*p1--)) ndigits++;

+     /* Figure out notation to use */
+     if (exponent &gt;= XLFD_NDIGITS || ndigits - exponent &gt; XLFD_NDIGITS + 1)
+@@ -278,7 +278,7 @@ GetMatrix(char *ptr, FontScalablePtr vals, int which)
+         matrix = vals-&gt;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)) &amp;&amp;
+             (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
+
</ins></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0004stubsAddmissingexternsfordeclarationsintheNOpatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libXfont/files/0004-stubs-Add-missing-externs-for-declarations-in-the-NO.patch (0 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+From 2788c6984bc54bfba61b2dbdb5353978199d8a37 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+Date: Wed, 21 Oct 2015 21:27:26 -0700
+Subject: [PATCH 04/10] stubs: Add missing externs for declarations in the
+ NO_WEAK_SYMBOLS &amp;&amp; PIC stubs resolution
+
+Signed-off-by: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+---
+ 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 &amp;&amp; PIC */
+ #define OVERRIDE_DATA(sym)
+ #define OVERRIDE_SYMBOL(sym,...)
+-- 
+2.8.3
+
</ins></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0005UseNO_WEAK_SYMBOLSinsteadofflat_namespacepatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libXfont/files/0005-Use-NO_WEAK_SYMBOLS-instead-of-flat_namespace.patch (0 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+From d6877a7c1c35985f6a75b6cd4e814595e781adc4 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+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=&quot;-D_XOPEN_SOURCE&quot;
+         ;;
+-    darwin*)
+-        OS_CFLAGS=&quot;-Wl,-flat_namespace&quot;
+-        ;
+     *)
+         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__)) &amp;&amp; defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 3)
++#if defined(__ELF__) &amp;&amp; defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 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
+
</ins></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0006Fixwarningspatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libXfont/files/0006-Fix-warnings.patch (0 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,96 @@
</span><ins>+From bee4a764ccef46101dca03c70d4ad1793a5a5d78 Mon Sep 17 00:00:00 2001
+From: Keith Packard &lt;keithp@keithp.com&gt;
+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 &lt;keithp@keithp.com&gt;
+
+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-&gt;face ) ) {
+ #if 1
+         FT_F26Dot6  tt_char_width, tt_char_height, tt_dim_x, tt_dim_y;
+-        FT_UInt     nn;
++        FT_Int     nn;

+         instance-&gt;strike_index=0xFFFFU;

+@@ -1454,7 +1454,7 @@ FreeTypeRasteriseGlyph(unsigned idx, int flags, CharInfoPtr tgp,
+         }
+         for( i = MAX(0, dy) ; i&lt;ht ; i++ ){
+             int prev_jj,jj;
+-            if( bitmap-&gt;rows &lt;= i-dy ) break;
++            if( bitmap-&gt;rows &lt;= (unsigned) (i-dy) ) break;
+             current_buffer=(unsigned char *)(bitmap-&gt;buffer+bitmap-&gt;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&lt;&lt;8|col;
+           flags=0;
+           if ( !force_c_outside ) {
+-              if ( c &lt;= instance-&gt;ttcap.forceConstantSpacingEnd
+-                   &amp;&amp; instance-&gt;ttcap.forceConstantSpacingBegin &lt;= c )
++              if ( (signed) c &lt;= instance-&gt;ttcap.forceConstantSpacingEnd
++                   &amp;&amp; instance-&gt;ttcap.forceConstantSpacingBegin &lt;= (signed) c )
+                   flags|=FT_FORCE_CONSTANT_SPACING;
+           }
+           else {        /* for GB18030 proportional */
+-              if ( c &lt;= instance-&gt;ttcap.forceConstantSpacingEnd
+-                   || instance-&gt;ttcap.forceConstantSpacingBegin &lt;= c )
++              if ( (signed) c &lt;= instance-&gt;ttcap.forceConstantSpacingEnd
++                   || instance-&gt;ttcap.forceConstantSpacingBegin &lt;= (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(&quot;invalid number of CHARS in BDF file\n&quot;);
+         return (FALSE);
+     }
+-    if (nchars &gt; INT32_MAX / sizeof(CharInfoRec)) {
++    if (nchars &gt; (signed) (INT32_MAX / sizeof(CharInfoRec))) {
+         bdfError(&quot;Couldn't allocate pCI (%d*%d)\n&quot;, nchars,
+                  (int) sizeof(CharInfoRec));
+         goto BAILOUT;
+@@ -631,7 +631,7 @@ bdfReadProperties(FontFilePtr file, FontPtr pFont, bdfFileState *pState)
+     }
+     if ((sscanf((char *) line, &quot;STARTPROPERTIES %d&quot;, &amp;nProps) != 1) ||
+         (nProps &lt;= 0) ||
+-        (nProps &gt; ((INT32_MAX / sizeof(FontPropRec)) - BDF_GENPROPS))) {
++        (nProps &gt; (signed) ((INT32_MAX / sizeof(FontPropRec)) - BDF_GENPROPS))) {
+         bdfError(&quot;bad 'STARTPROPERTIES'\n&quot;);
+         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 &lt; GLYPHPADOPTIONS; i++) {
+         bitmapSizes[i] = pcfGetINT32(file, format);
+         if (IS_EOF(file)) goto Bail;
+-        if (bitmapSizes[i] &lt; 0) goto Bail;
+     }

+     sizebitmaps = bitmapSizes[PCF_GLYPH_PAD_INDEX(format)];
+-- 
+2.8.3
+
</ins></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0007FreeTypeCorrectanallocationsizepatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libXfont/files/0007-FreeType-Correct-an-allocation-size.patch (0 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+From dfa572ea522a3019e91f2de7854b252c629342f2 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+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) &lt;= sizeof(void *), which is everywhere.
+
+Signed-off-by: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+(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
+
</ins></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0008bitmapBailoutoninvalidinputtoFontFileMakeDirpatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libXfont/files/0008-bitmap-Bail-out-on-invalid-input-to-FontFileMakeDir-.patch (0 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+From 3eddbca2690381bbbaf14adadb2679eea702095f Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+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 &lt;jeremyhu@apple.com&gt;
+(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-&gt;lastRow;

+     nchars = (lastRow - firstRow + 1) * (lastCol - firstCol + 1);
++    if (nchars &lt;= 0) {
++        goto bail;
++    }
++
+     glyph = pf-&gt;glyph;
+     for (i = 0; i &lt; nchars; i++)
+     {
+-- 
+2.8.3
+
</ins></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0009fserveSilenceaWformatwarningpatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libXfont/files/0009-fserve-Silence-a-Wformat-warning.patch (0 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+From 2b09a7af9f19db886567e524f978ad393593f7c0 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+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]
+               &quot; from font server\n&quot;, rep-&gt;length);
+                                      ^~~~~~~~~~~
+1 warning generated.
+
+Signed-off-by: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+(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-&gt;length &gt; MAX_REPLY_LENGTH)
+     {
+-        ErrorF(&quot;fserve: reply length %d &gt; MAX_REPLY_LENGTH, disconnecting&quot;
+-               &quot; from font server\n&quot;, rep-&gt;length);
++        ErrorF(&quot;fserve: reply length %ld &gt; MAX_REPLY_LENGTH, disconnecting&quot;
++               &quot; from font server\n&quot;, (long)rep-&gt;length);
+         _fs_connection_died (conn);
+         *error = FSIO_ERROR;
+         return 0;
+-- 
+2.8.3
+
</ins></span></pre></div>
<a id="trunkdportsx11xorglibXfontfiles0010fserveFixabufferreadoverrunin_fs_client_accespatch"></a>
<div class="addfile"><h4>Added: trunk/dports/x11/xorg-libXfont/files/0010-fserve-Fix-a-buffer-read-overrun-in-_fs_client_acces.patch (0 => 149109)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,62 @@
</span><ins>+From 42d85d1293b2753f3f200de0e960bacef0c973c7 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia &lt;jeremyhu@apple.com&gt;
+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(&amp;authorizations, &amp;authlen,
+                                                 client);
+        /* Work around bug in xfs versions up through modular release 1.0.8
+           which rejects CreateAC packets with num_auths = 0 &amp; authlen &lt; 4 */
+        if (crac.num_auths == 0) {
+            authorizations = padding;
+            authlen = 4;
+        } else {
+            authlen = (authlen + 3) &amp; ~0x3;
+        }
+        crac.length = (sizeof (fsCreateACReq) + authlen) &gt;&gt; 2;
+        crac.acid = cur-&gt;acid;
+        _fs_add_req_log(conn, FS_CreateAC);
+        _fs_write(conn, (char *) &amp;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 &lt;jeremyhu@apple.com&gt;
+(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) &amp; ~0x3;
+         }
+         crac.length = (sizeof (fsCreateACReq) + authlen) &gt;&gt; 2;
+         crac.acid = cur-&gt;acid;
+         _fs_add_req_log(conn, FS_CreateAC);
+         _fs_write(conn, (char *) &amp;crac, sizeof (fsCreateACReq));
+-        _fs_write(conn, authorizations, authlen);
++        _fs_write_pad(conn, authorizations, authlen);
+         /* ignore reply; we don't even care about it */
+         conn-&gt;curacid = 0;
+         cur-&gt;auth_generation = client_auth_generation(client);
+-- 
+2.8.3
+
</ins></span></pre>
</div>
</div>

</body>
</html>