-
Notifications
You must be signed in to change notification settings - Fork 584
Segfault due to stack overflow: 'sub UNIVERSAL::DESTROY{$e=bless[]}' #15369
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
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, this segfaults. dcollins@nightshade64:~/perl$ ./miniperl -Ilib -e 'sub UNIVERSAL::DESTROY{$e=bless[]}' This is a stack overflow issue due to infinite recursion. Here is the looping series of stack frames: #943 0x000000000053c07b in Perl_free_tmps () at scope.c:207 Valgrind concurs: ==7488== Stack overflow in thread #1: can't grow stack to 0xffe801000 A bisect was attempted but this behavior has persisted since 5.12.0 at least. **PERL -V** dcollins@nightshade64:~/perldebug$ ./perl -Ilib -V Characteristics of this binary (from libperl): |
From @iabynOn Thu, May 26, 2016 at 06:33:34PM -0700, Dan Collins wrote:
I've added it to the #111358: [META] C stack recursion ticket. -- |
The RT System itself - Status changed from 'new' to 'open' |
From @demerphqOne possibility is to forbid universal destroy hooks. Or to forbid use of This is a delightfully evil bug btw. I laughed with joy and dread when I
|
Migrated from rt.perl.org#128258 (status was 'open')
Searchable as RT128258$
The text was updated successfully, but these errors were encountered: