<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>