In perl.git, the branch smoke-me/khw-regcomp has been created <https://perl5.git.perl.org/perl.git/commitdiff/d3da165e2b608548cfe537aa8589fd9892b14fcd?hp=0000000000000000000000000000000000000000>
at d3da165e2b608548cfe537aa8589fd9892b14fcd (commit) - Log ----------------------------------------------------------------- commit d3da165e2b608548cfe537aa8589fd9892b14fcd Author: Karl Williamson <k...@cpan.org> Date: Tue Mar 6 12:32:58 2018 -0700 PATCH: [perl #132163] regex assertion failure The original test case has already been fixed; but modifying it slightly showed some other issues that are now fixed by this commit. The deepest problem is that this code in some paths creates a string to parse instead of what was in effect at the time; and in some circumstances what is in effect at the time is already a string that is different from the original. Any messages that are raised should be output in terms of the original. regcomp.c already has the infrastructure to handle the case where a message is raised during parsing of a constructed string, but it can't handle a 2nd level constructed string. That was what led to the segfault in the original ticket. Unrelated fixes caused the original ticket to no longer be applicable, and so this fix adds tests for that still would cause a problem. The method chosen here is to just make sure that the string constructed here to parse is error free, so no messages will be raised. Instead it does the error checking as it constructs the string, so if what is being parsed to construct a new string is an already constructed one, the existing infrastructure handles it. A side benefit is that this fixes some unreported bugs dealing with an input code point that overflows. Prior to this patch, it would error ungracefully. ----------------------------------------------------------------------- -- Perl5 Master Repository