-
Notifications
You must be signed in to change notification settings - Fork 540
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segfault in Perl_gv_setref: 'sub U::0{}undef*U::;*U::0=sub{}' #15368
Comments
From @dcollinsnGreetings Porters, I have compiled bleadperl with the afl-gcc compiler using: ./Configure -Dusedevel -Dprefix='/usr/local/perl-afl' -Dcc='ccache afl-gcc' -Uuselongdouble -Duse64bitall -Doptimize=-g -Uversiononly -Uman1dir -Uman3dir -Dusequadmath -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 segfault in the perl interpreter. The testcase is the file below. On normal builds and debug builds with -W, this segfaults. dcollins@nightshade64:~/perldebug$ ./perl -Ilib -e 'sub U::0{}undef*U::;*U::0=sub{}' This testcase *looks* suspiciously like [perl #128254], but it is rather different. This one has nothing to do with ISA or taint mode. It is, however, rather bizarre. It only crashes under -W. Perhaps we're freeing something while it's still on the stack? But if this was a context stack issue, I think it would segfault regardless of whether warnings are enabled. A bisect was attempted but this behavior has persisted since 5.12.0 at least. **GDB** dcollins@nightshade64:~/perldebug$ gdb --args ./perl -Ilib -W -e 'sub U::0{}undef*U::;*U::0=sub{}' Program received signal SIGSEGV, Segmentation fault. **VALGRIND** dcollins@nightshade64:~/perldebug$ valgrind ./perl -Ilib -W -e 'sub U::0{}undef*U::;*U::0=sub{}' **PERL -V** dcollins@nightshade64:~/perldebug$ ./perl -Ilib -V Characteristics of this binary (from libperl): |
From @iabynOn Thu, May 26, 2016 at 06:29:06PM -0700, Dan Collins wrote:
Fixed with the following commit: commit fc0fe26 SEGV in "Subroutine redefined" warning -- |
The RT System itself - Status changed from 'new' to 'open' |
@iabyn - Status changed from 'open' to 'pending release' |
From @khwilliamsonThank you for filing this report. You have helped make Perl better. With the release today of Perl 5.26.0, this and 210 other issues have been Perl 5.26.0 may be downloaded via: If you find that the problem persists, feel free to reopen this ticket. |
@khwilliamson - Status changed from 'pending release' to 'resolved' |
Migrated from rt.perl.org#128257 (status was 'resolved')
Searchable as RT128257$
The text was updated successfully, but these errors were encountered: