<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/6bae0a51445146c29aa78bdde6f6d30610e0631c">https://github.com/macports/macports-ports/commit/6bae0a51445146c29aa78bdde6f6d30610e0631c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 6bae0a51445146c29aa78bdde6f6d30610e0631c
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Tue Apr 11 02:24:12 2017 -0500

<span style='display:block; white-space:pre;color:#404040;'>    flex: Fix crash in yyrestart
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/53959
</span>---
 devel/flex/Portfile              |  5 +++--
 devel/flex/files/yyrestart.patch | 41 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/flex/Portfile b/devel/flex/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 4814ff6..63a025c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/flex/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/flex/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,7 +4,7 @@ PortSystem          1.0
</span> PortGroup           github 1.0
 
 github.setup        westes flex 2.6.3 v
<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
 license             BSD
 platforms           darwin
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -31,7 +31,8 @@ depends_skip_archcheck-append m4
</span> installs_libs       yes
 
 patch.pre_args      -p1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles          yywrap.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          yyrestart.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    yywrap.patch
</span> 
 configure.args      ac_cv_prog_AWK=/usr/bin/awk
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/flex/files/yyrestart.patch b/devel/flex/files/yyrestart.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..a1a4303
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/flex/files/yyrestart.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,41 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From e666829949f82b3d8b7c722f7db5a8af38e93a2c Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Harald van Dijk <harald@gigawatt.nl>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 10 Jan 2017 22:37:49 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] c++: Fix yyrestart(NULL) SEGV.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Binding a reference to a dereferenced null pointer is invalid and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers optimise away the &file == 0 check. We need a real stream.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+yyin is available already, and yyrestart(NULL) is only supported when
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+yyin will not be used, so there is no harm in just passing in that.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Since we now always have a valid stream, we can skip the null check
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+too.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fixes #98.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/flex.skl | 5 ++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 4 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/flex.skl b/src/flex.skl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 23e7063..66b7c1e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/flex.skl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/flex.skl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1896,6 +1896,9 @@ m4_ifdef( [[M4_YY_USE_LINENO]],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void yyFlexLexer::yyrestart( std::istream* input_file )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if( ! input_file ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          input_file = &yyin;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   yyrestart( *input_file );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2057,7 +2060,7 @@ static void yy_load_buffer_state  (M4_YY_DEF_ONLY_ARG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   b->yy_input_file = file;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %if-c++-only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  b->yy_input_file = (&file == 0) ? NULL : file.rdbuf();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b->yy_input_file = file.rdbuf();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   b->yy_fill_buffer = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span></pre><pre style='margin:0'>

</pre>