In perl.git, the branch smoke-me/fix_129903_129897 has been created <http://perl5.git.perl.org/perl.git/commitdiff/527970e390bc88654b67b157f7c7b609ef06ae0c?hp=0000000000000000000000000000000000000000>
at 527970e390bc88654b67b157f7c7b609ef06ae0c (commit) - Log ----------------------------------------------------------------- commit 527970e390bc88654b67b157f7c7b609ef06ae0c Author: Yves Orton <demer...@gmail.com> Date: Tue Oct 18 13:11:49 2016 +0200 regexec.c: fix #129903: forbid empty pattern in regex code block PL_curpm provides access to the data needed to implement the regex magic vars like $1 and $&. These vars are defined to reference the last successfully matched pattern, or when in regex code blocks (?{ ... }) and (??{ ... }), they should refer to the currently executing pattern. Unfortunately this collides with its use to implement the empty pattern special behavior, which requires /just/ "the last successfully matched pattern" everwhere. This meant that a pattern match like /(?{ s!!! })/ will infinitely recurse. Fixing this would be difficult, on the other hand detecting it is not, so we can convert the infinite recursion/stack overflow into a normal exception. M pod/perldiag.pod M pp_ctl.c M pp_hot.c commit 4a25f596dc0534de8441cd24bd1d6c374c3d44b9 Author: Yves Orton <demer...@gmail.com> Date: Mon Oct 17 23:13:44 2016 +0200 regexec.c: add comment and add a test The test is from the existing comment. M regexec.c M t/re/re_tests commit 65cfc2edba7ad3e195b042425a67185eb50c1c24 Author: Yves Orton <demer...@gmail.com> Date: Mon Oct 17 23:13:16 2016 +0200 regexec.c: fixup annoying unbalanced whitespace M regexec.c commit b0be4b4f498cbda98e0813b144508356b9d57ecc Author: Yves Orton <demer...@gmail.com> Date: Mon Oct 17 23:12:24 2016 +0200 regexec.c: in debug fixup indents and TRIE/BUFFER debug output M embed.fnc M embed.h M proto.h M regexec.c commit c6dcf87eeb14d6d8f5ddb012a7169bc253212292 Author: Yves Orton <demer...@gmail.com> Date: Mon Oct 17 23:10:10 2016 +0200 regexec.c: in debug show whether TRIE nodes have a jump table M regcomp.c commit 5dc1331ce86ee5ff3925a796e496c9e973218397 Author: Yves Orton <demer...@gmail.com> Date: Mon Oct 17 23:09:11 2016 +0200 regexec.c: fix perl #129897: trie short circuit breaks capture buffers There is an optimisation when a trie matches only one thing which causes it to fall through to the following code without setting up a stack unwind frame. This breaks if we are using a trie jump table where we might change state that will need to be unwound on failure. M regexec.c M t/re/re_tests ----------------------------------------------------------------------- -- Perl5 Master Repository