This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
PATCH: [perl 134335], gh115,Assert fail in regmatch
authorKarl Williamson <khw@cpan.org>
Fri, 23 Aug 2019 19:00:49 +0000 (13:00 -0600)
committerKarl Williamson <khw@cpan.org>
Sat, 26 Oct 2019 22:04:36 +0000 (16:04 -0600)
commit2df0dd21423ddf295fe2e5d2a6665300f4c5dd94
treeb953c2b1277b56e75d4be415736fe6c19ea6cfaf
parent1f633c5e06518e71b74b90787fb1ce1c31ba3d23
PATCH: [perl 134335], gh115,Assert fail in regmatch

This happens when the regular expression pattern, compiling under /il,
ends up with a node attempting to match one of 17 Unicode characters
that fold (/i) to multiple characters in the 0-FF range, and the match
is run when a UTF-8 locale is in effect that makes such a match legal.
The node was being marked as SIMPLE, but only nodes that match a single
character should be SIMPLE.

This ticket was originally filed as a security issue, but I don't think
it is.  If I remove the assertion, the match fails, without an
out-of-bounds access.  And we do not consider the interpreter crashing
on a DEBUGGING build a security issue.
regcomp.c
t/re/pat.t