This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix panic in Unicode wildcard matching
authorKarl Williamson <khw@cpan.org>
Sun, 26 Apr 2020 14:27:25 +0000 (08:27 -0600)
committerKarl Williamson <khw@cpan.org>
Wed, 29 Apr 2020 19:26:45 +0000 (13:26 -0600)
commit5efad79033608816c24807b39ca3b76e62f5fb34
treee4afff3048e5cd154d120a3979709ad10b5f9684
parenta964bf354ede905cf62ebdd20fb08b8f6eaa137c
Fix panic in Unicode wildcard matching

The reason this bug occurs is that wildcard matching changes the anchor
assertions \A, \Z, and \z, without corresponding changes in regexec.c.

We earlier noticed that all these were being marked SIMPLE, and a
zero-width construct shouldn't really be.  But it was considered too
late in the development cycle to make that change.  So the plan was to
live with this bug in an experimental feature in 5.32.

But I eventually realized that the change could be effected for just the
wildcard versions, and this commit does that.  If there is some issue
with making these non-SIMPLE, it will affect only the wildcard feature,
and those potential bugs are better than a known bug.  I also seems
unlikely that this will introduce any bug.  What removing SIMPLE does is
merely remove potential optimizations in the handling.  The most general
case should work.\7f; it's doing an improper optimization that gets one
into trouble.

This fixes #17677
regcomp.c