Closed p5pRT closed 14 years ago
]$ perl -e'&Internals::SvREADONLY(undef)' Segmentation fault
]$ /opt/p5122/bin/perl -e'&Internals::SvREADONLY( undef )' Segmentation fault
]$ gdb debugperl GNU gdb (GDB) 7.2-debian Copyright (C) 2010 Free Software Foundation\, Inc. License GPLv3+: GNU GPL version 3 or later \<http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY\, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu". For bug reporting instructions\, please see: \<http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/bin/debugperl...done. (gdb) r -e'&Internals::SvREADONLY(undef)' Starting program: /usr/bin/debugperl -e'&Internals::SvREADONLY(undef)' [Thread debugging using libthread_db enabled] Assertion ((svtype)((_svrv)->sv_flags & 0xff)) >= SVt_RV failed: file "universal.c"\, line 908 at -e line 1.
Program exited with code 0377.
ignited by Josh "evil code" ben Jore :) http://blogs.perl.org/users/josh_ben_jore/2010/08/ponies-are-the-truth.html
perls used: Debian's perl 5.10.1-14 perl-debug 5.10.1-14
custom 5.10.1 nothreads custom 5.12.2 nothreads
All output: Segmentation fault Expected output: slap user^W^Werror
On Fri\, Sep 10\, 2010 at 15:49\, zgrim \perlbug\-followup@​perl\.org wrote:
This is a bug report generated with the help of perlbug 1.39 running under perl 5.10.1.
----------------------------------------------------------------- [Please describe your issue here]
]$ perl -e'&Internals::SvREADONLY(undef)' Segmentation fault
]$ /opt/p5122/bin/perl -e'&Internals::SvREADONLY( undef )' Segmentation fault
Thanks for the report. I've fixed this with the attached patch (contains perldelta entry). The patch is also at:
http://github.com/avar/perl/compare/mirrors:blead...perl-77776 http://github.com/avar/perl/compare/mirrors:blead...perl-77776.patch
All of these functions could segfault due to this bug:
&Internals::SvREADONLY($arg); &Internals::SvREFCNT($arg); &Internals::hv_clear_placeholders($arg); &Internals::HvREHASH($arg);
The fix was just to call SvROK() before doing SvRV().
This patch is a canditate for backporting down to 5.10\, 5.12\, and maybe 5.8 if anyone still cares.
The RT System itself - Status changed from 'new' to 'open'
On Sat\, Sep 11\, 2010 at 10:50:17AM +0000\, Ævar Arnfjörð Bjarmason wrote:
Thanks for the report. I've fixed this with the attached patch (contains perldelta entry). The patch is also at:
Thanks\, applied as 80b6a949dbabd822cf5e1cf2ece76164d772f0b9
This patch is a canditate for backporting down to 5.10\, 5.12\, and maybe 5.8 if anyone still cares.
Realistically\, I think that's "5.12\, and if anyone cares 5.10 or earlier"\, because I see no activity on a 5.10.2\, and no-one looks like volunteering.
Nicholas Clark
@iabyn - Status changed from 'open' to 'resolved'
Migrated from rt.perl.org#77776 (status was 'resolved')
Searchable as RT77776$