This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
PATCH: [perl #133770] null pointer dereference in S_regclass()
authorKarl Williamson <khw@cpan.org>
Sat, 16 Feb 2019 18:11:59 +0000 (11:11 -0700)
committerKarl Williamson <khw@cpan.org>
Sat, 16 Feb 2019 18:21:51 +0000 (11:21 -0700)
commitc2d81cfd08d9a622c639058cd7eb870aa0991937
tree8426ad3e58fbdddecab7aea51ee7a462a0ed82e4
parent75451d8cc625c69a543f2bacf2312d369f8855ae
PATCH: [perl #133770] null pointer dereference in S_regclass()

The failing case can be reduced to

qr/\x{100}[\x{3030}\x{1fb2}/

(It only happens on UTF-8 patterns).

The bottom line is that it was assuming that there was at least one
character that folded to 1fb2 besides itself, even though the function
call said there weren't any such.  The solution is to pay attention to
the function return value.

I incorporated Hugo's++ patch as part of this one.

However, the original test case should never have gotten this far.  The
parser is getting passed garbage, and instead of croaking, it is somehow
interpreting it as valid and calling the regex compiler.  I will file a
ticket about that.
regcomp.c