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
Double-free in Perl_free_tmps #14943
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' -Duselongdouble -Duse64bitint -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 filtering out testcases that are merely iterations of "#!perl -u", I have located the following testcase that triggers a double free in the perl interpreter. The testcase is the 134-character file: du_S.Ak.SA.=$[.=_.Ak.SA.=$[.=$[=$$$_S.Ak.S.=$[.=$[=$$$A.k.SA.=$[.=*[=$$$_S.AkAk.SA.=%[=__S.Ak.SA.=$[.=$[=$S.Ak.SA.=$[.=_.Ak.SA.=$[.$$$ Any attempt to reduce this testcase causes the bug to disappear. dcollins@nightshade:/usr/local/perl-afl/out$ ../bin/perl f2/crashes/id\:000000\,sig\:06\,src\:006941+020231\,op\:splice\,rep\:2ig\:06\,src\ **GDB** Program received signal SIGABRT, Aborted. **VALGRIND** As usual, valgrind seems to modify the behavior slightly, but this call to memmove() on blocks of memory that are already freed seems to be quite relevant. dcollins@nightshade:/usr/local/perl-afl/out$ valgrind ../bin/perl f2/crashes/id\:000000\,sig\:06\,src\:006941+020231\,op\:splice\,rep\:2 **PERL -V** dcollins@nightshade:/usr/local/perl-afl/out$ ../bin/perl -V Characteristics of this binary (from libperl): |
From perl@profvince.comLe 26/09/2015 16:42, Dan Collins (via RT) a écrit :
Using a debugging and poisonous perl, I can reduce this to : $[ .= *[ = 'y' which seems to be yet another incarnation of the "stack is not Vincent |
The RT System itself - Status changed from 'new' to 'open' |
Migrated from rt.perl.org#126199 (status was 'open')
Searchable as RT126199$
The text was updated successfully, but these errors were encountered: