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
Coredump in Perl_sv_cmp_flags #15807
Comments
From @dur-randirCreated by @dur-randirWhile fuzzing perl v5.25.8-207-gcbe2fc5001 built with afl and run @0=s//0/; to crash. This is a regression in blead since v5.24. Bisect points to commit 8b0c337 Better optimise array and hash assignment [perl #127999] Slowdown in split + list assign GDB info about the crash location: (gdb) bt Perl Info
|
From @tonycozOn Sat, 14 Jan 2017 14:44:54 -0800, randir wrote:
The crash is new, unfortunately the brokenness isn't: $ ./miniperl -le '@0=s//0/; @0=sort(2,@t00=3,@t00=4,@0=s///); print join(",", @0)' which is immediately before Dave's commit. So this at base is a stack-not-refcounted issue, but why is pv2 NULL? I tried a watchpoint on the address of the pv in the SV head that was failing: (gdb) watch *(IV*)0x621000010990 Old value = 105690555275376 Program received signal SIGSEGV, Segmentation fault. So that SV has its PV being set to zero by this code: SvCUR_set(TARG, SvCUR(dstr)); SPAGAIN; The dstr SV is a temp and normally shouldn't be in use anywhere else, When Perl_sv_cmp() then SvPV()'s that SV on the stack it receives the NULL pointer and we crash. Which might be better than returning the rubbish it returned before. Tony |
The RT System itself - Status changed from 'new' to 'open' |
Migrated from rt.perl.org#130559 (status was 'open')
Searchable as RT130559$
The text was updated successfully, but these errors were encountered: