#1758: Segfault caused by new dynop mapping code
-----------------------+----------------------------------------------------
Reporter: nwellnhof | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: core | Version: 2.6.0
Severity: medium | Keywords:
Lang: | Patch:
Platform: |
-----------------------+----------------------------------------------------
When working on TT #1746, I accidentally discovered another bug. The
following script causes a segfault:
{{{
.loadlib 'perl6_ops'
.HLL "perl6"
.sub "" :load :init
load_language "perl6"
get_hll_global $P108, ["Perl6";"Module"], "Loader"
$P109 = "&infix:<,>"()
$P110 = "&circumfix:<{ }>"($P109)
set $S111, "$!storage"
getattribute $P112, $P110, $S111
$P108."need"("A", $P112)
.end
}}}
You must have Rakudo installed. The PIR code tries to load a non-existant
module 'A.pm' and segfaults in the exception code.
The segfault happens here:
http://trac.parrot.org/parrot/browser/trunk/src/sub.c#L197
The op_info pointer is invalid because the area it points to has been
reallocated here:
http://trac.parrot.org/parrot/browser/trunk/src/runcore/main.c#L417
It looks like this is caused by the new dynop mapping code.
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/1758>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets