Assert fail with regex_sets error message, related to 125805 #14996
I have compiled bleadperl with the afl-gcc compiler using:
./Configure -Dusedevel -Dprefix='/usr/local/perl-afl' -Dcc='ccache afl-gcc' -Duselongdouble -Duse64bitall -Doptimize=-g -Uversiononly -Uman1dir -Uman3dir -des
And then fuzzed the resulting binary using:
AFL_NO_VAR_CHECK=1 afl-fuzz -i in -o out bin/perl @@
After reducing testcases using `afl-tmin` and performing additional minimization by hand, I have located the following testcase that triggers an assert fail in debugging builds of the perl interpreter. The testcase is the file:
This is related to bug 125805, in fact I didn't file this sooner because I thought it was the same bug. However after that was fixed, this assert still fails on debugging builds. Non-debugging builds emit the warning but exit normally. Valgrind is clean except for the backtrace from the SIGABRT.
Output on debugging perl:
The regex_sets feature is experimental in regex; marked by <-- HERE in m/(?[ <-- HERE !()])/ at -e line 1.
Program received signal SIGABRT, Aborted.
Summary of my perl5 (revision 5 version 23 subversion 4) configuration:
Characteristics of this binary (from libperl):
On Mon Oct 19 21:30:58 2015, khw wrote:
I'm sorry that commit number above is wrong (pasted from the wrong copy)
And the text of that commit message had a typo. It patches this ticket, #126406
Spotted by Steve Hay.