/(?[\ &!])/ segfaults #14933
/(?[\ &!])/ segfaults #14933
Comments
From victor@drawall.ccCreated by @GrimyHow to reproduce
Using any of [+-|^] instead of & yields the same results. Expected behavior Perl should die with the following diagnostics:
(This was the behavior in perl5.20.2) Actual behavior Perl is forcefully terminated by a SIGSEGV signal.
gdb gives the following backtrace: Affected versions Current blead (2d9b5f1) is affected. Perl Info
|
From @dcollinsnA -DDEBUGGING build of blead reports: dcollins@nightshade:~/perl$ ./miniperl -e '/(?[\ &!])/' Also valgrind on the segfaulting (not debugging) version: dcollins@nightshade:~/perl$ valgrind --track-origins=yes ./perl -e '/(?[\ &!])/' dcollins@nightshade:~/perl$ ./perl -Ilib -V Characteristics of this binary (from libperl): |
From [Unknown Contact. See original ticket]A -DDEBUGGING build of blead reports: dcollins@nightshade:~/perl$ ./miniperl -e '/(?[\ &!])/' Also valgrind on the segfaulting (not debugging) version: dcollins@nightshade:~/perl$ valgrind --track-origins=yes ./perl -e '/(?[\ &!])/' dcollins@nightshade:~/perl$ ./perl -Ilib -V Characteristics of this binary (from libperl): |
From @dcollinsnGreetings Porters, 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 a segmentation fault in the perl interpreter. The testcase is the 11-character file: /(?[()-!])/ This segfaults even in perls that have the patch for the very similar bug [perl #125805], which documents a segfault on the 12-character file 00./(?[()])/ The present bug also occurs in a different function and with a different valgrind signature than the remarkably similar [perl #126180], which documents a segfault on the 11-character file /(?[\ &!])/ **GDB** dcollins@nightshade64:/usr/local/perl-afl/out$ gdb --args ../bin/perl -e '/(?[()-!])/' Program received signal SIGSEGV, Segmentation fault. Inferior 1 [process 60040] will be killed. Quit anyway? (y or n) y **VALGRIND** dcollins@nightshade64:/usr/local/perl-afl/out$ valgrind ../bin/perl -e '/(?[()-!])/' **PERL -V** dcollins@nightshade64:/usr/local/perl-afl/out$ ../bin/perl -V Characteristics of this binary (from libperl): |
@khwilliamson - Status changed from 'new' to 'open' |
From @khwilliamsonThanks for your report on this regression. Now fixed by 5a55ed3 |
@khwilliamson - Status changed from 'open' to 'pending release' |
From @dcollinsnThis appears to have been fixed in blead, please close. |
From @khwilliamsonOn 10/19/2015 02:29 PM, Dan Collins via RT wrote:
I merged this with #126180, whose fix fixed this one as well. But I |
@mauke - Status changed from 'pending release' to 'resolved' |
Migrated from rt.perl.org#126180 (status was 'resolved')
Searchable as RT126180$
The text was updated successfully, but these errors were encountered: