<pre style='margin:0'>
Jeremy Huddleston Sequoia (jeremyhu) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/14451f57e899ba3bd8672830944209cf0bbb87a7">https://github.com/macports/macports-ports/commit/14451f57e899ba3bd8672830944209cf0bbb87a7</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 14451f57e899ba3bd8672830944209cf0bbb87a7
</span>Author: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
AuthorDate: Thu Jun 22 15:27:40 2017 -0700

<span style='display:block; white-space:pre;color:#404040;'>    bison: Better fix for crash on High Sierra due to usage of %n in dynamic format strings
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
</span>---
 devel/bison/Portfile                    | 21 ++++-----------------
 devel/bison/files/secure_snprintf.patch | 15 +++++++++++++++
 2 files changed, 19 insertions(+), 17 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/bison/Portfile b/devel/bison/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 63575fd..6a6bcb7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/bison/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/bison/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8,9 +8,9 @@ subport             bison-runtime {}
</span> epoch               1
 version             3.0.4
 if {${subport} eq "bison"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision        2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision        3
</span> } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision 2
</span> }
 categories          devel
 platforms           darwin
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -57,26 +57,13 @@ checksums           rmd160  414959f3d619d8e4875e241ee02852b2ff13c2cb \
</span> 
 configure.args      --disable-silent-rules
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # This is a reinplace hack simply because I am unable to look a the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # current (GPLv3) source to come up with a proper fix.  This hack was
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # derived by looking at the last GPLv2 version and making a guess that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # this workaround would be successful.  If someone able to look at GPLv3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # code wants to come up with a proper fix, note that the solution is to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # not pass %n in dynamic strings to snprintf (rather than completely
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # disabling it).  There is likely some code to control that already
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # since multiple Libcs (including glibc) disallow the usage of %n in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # dynamic strings.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    reinplace "/define USE_SNPRINTF/s/USE_SNPRINTF.*$/USE_SNPRINTF 0/" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${worksrcpath}/lib/vasnprintf.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          secure_snprintf.patch
</span> 
 if {${subport} eq "bison-runtime"} {
     build.dir       ${worksrcpath}/runtime-po
     livecheck.type  none
 } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles      skip-runtime-po.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append skip-runtime-po.patch
</span>     test.run        yes
     test.target     check
 }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/bison/files/secure_snprintf.patch b/devel/bison/files/secure_snprintf.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0dff749
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/bison/files/secure_snprintf.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+With format string strictness, High Sierra also enforces that %n isn't used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+in dynamic format strings, but we should just disable its use on darwin in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+general.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- lib/vasnprintf.c.orig  2017-06-22 15:19:15.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ lib/vasnprintf.c       2017-06-22 15:20:20.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4869,7 +4869,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   *fbp = dp->conversion;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if USE_SNPRINTF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if !defined(__APPLE__) && !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 fbp[1] = '%';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 fbp[2] = 'n';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 fbp[3] = '\0';
</span></pre><pre style='margin:0'>

</pre>